From 7e6294ca0f7e4edcf34f1e92a2af5ddde708b48a Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Mon, 12 Oct 2026 12:25:30 -0500 Subject: [PATCH 1/2] Make scriptc compilation native-only --- .gitignore | 4 +- AGENTS.md | 18 +- CHANGELOG.md | 2 + README.md | 12 +- docs/content/docs/cli.mdx | 16 +- docs/content/docs/coverage.mdx | 157 +- docs/content/docs/dependencies.mdx | 54 +- docs/content/docs/how-it-works.mdx | 14 +- docs/content/docs/index.mdx | 37 +- docs/content/docs/limitations.mdx | 52 +- docs/content/docs/native-objects.mdx | 2 +- docs/content/docs/platforms.mdx | 12 +- docs/content/docs/quickstart.mdx | 12 +- docs/src/app/page.tsx | 13 +- .../components/node-compatibility-matrix.tsx | 35 +- .../node-v24-compatibility-meta.json | 2 +- .../src/generated/node-v24-compatibility.json | 18807 +--------- docs/test/routes.test.mjs | 6 +- examples/native-object/README.md | 2 +- internal/compatibility/README.md | 7 +- internal/compatibility/dynamic-support.json | 133 - .../generated/node-v24-backlog.json | 30310 +--------------- .../generated/node-v24-internal.json | 22966 +----------- internal/compatibility/package.json | 2 +- internal/compatibility/src/backlog.mjs | 2 +- .../src/generate-island-header.mjs | 49 - internal/compatibility/src/generate.mjs | 260 +- internal/compatibility/src/update.mjs | 2 +- packages/cli/README.md | 6 +- packages/cli/src/bootstrap.ts | 5 +- packages/cli/test/native-link-info.test.ts | 4 +- .../ambient/scriptc-node-fallback.d.ts | 38 +- .../compiler/ambient/scriptc-overrides.d.ts | 26 +- packages/compiler/ambient/scriptc.d.ts | 10 +- .../src/backend/cycle-analysis.test.ts | 2 +- .../compiler/src/backend/cycle-mutability.ts | 22 +- .../src/backend/executable-features.ts | 16 +- .../compiler/src/backend/immutability.test.ts | 2 +- packages/compiler/src/backend/immutability.ts | 2 +- packages/compiler/src/backend/library-pack.ts | 2 - packages/compiler/src/backend/linker.ts | 2 +- .../src/backend/llvm/checked-narrows.test.ts | 2 +- .../compiler/src/backend/llvm/classes.test.ts | 14 +- packages/compiler/src/backend/llvm/classes.ts | 12 +- .../backend/llvm/constant-callbacks.test.ts | 2 +- .../src/backend/llvm/constant-callbacks.ts | 6 +- .../backend/llvm/dense-array-access.test.ts | 2 +- packages/compiler/src/backend/llvm/dyn.ts | 75 +- .../compiler/src/backend/llvm/emitter.test.ts | 6 +- packages/compiler/src/backend/llvm/emitter.ts | 241 +- .../src/backend/llvm/expr-async.test.ts | 2 +- .../src/backend/llvm/expr-containers.ts | 10 +- .../compiler/src/backend/llvm/expr-control.ts | 117 +- .../src/backend/llvm/expr-dispatch.ts | 48 +- .../compiler/src/backend/llvm/expr-dynamic.ts | 42 +- .../compiler/src/backend/llvm/expr-island.ts | 889 - .../src/backend/llvm/expr-primitives.test.ts | 4 +- .../backend/llvm/expr-stream-bridges.test.ts | 2 +- .../compiler/src/backend/llvm/lib-dispatch.ts | 1 - .../src/backend/llvm/lib-filesystem.ts | 13 - .../compiler/src/backend/llvm/lib-shared.ts | 8 - .../backend/llvm/local-array-reads.test.ts | 2 +- .../backend/llvm/local-union-storage.test.ts | 2 +- .../backend/llvm/map-read-lifetimes.test.ts | 2 +- .../compiler/src/backend/llvm/shapes.test.ts | 6 +- packages/compiler/src/backend/llvm/shapes.ts | 3 +- .../src/backend/llvm/stack-unions.test.ts | 2 +- .../backend/llvm/string-construction.test.ts | 2 +- .../src/backend/llvm/string-lifetimes.test.ts | 2 +- .../src/backend/llvm/switch-dispatch.test.ts | 2 +- .../compiler/src/backend/may-throw.test.ts | 2 +- packages/compiler/src/backend/may-throw.ts | 9 - .../src/backend/native-link-info-core.ts | 2 - .../src/backend/native-toolchain.test.ts | 73 +- .../src/backend/native/artifact-stamps.ts | 2 - .../compiler/src/backend/native/cache-warm.ts | 7 +- .../backend/native/compiler-fingerprint.ts | 11 +- .../compiler/src/backend/native/contracts.ts | 32 +- .../compiler/src/backend/native/driver.ts | 49 +- .../compiler/src/backend/native/executable.ts | 212 +- .../src/backend/native/tool-identity.ts | 1 - .../compiler/src/backend/native/vendor.ts | 6 - .../compiler/src/backend/publication.test.ts | 2 +- packages/compiler/src/backend/runtime-abi.ts | 4 +- .../compiler/src/backend/runtime-pack-core.ts | 28 +- .../src/backend/runtime-pack-targets.test.ts | 11 +- .../compiler/src/backend/runtime-pack.test.ts | 44 +- .../src/backend/target-diagnostics.test.ts | 2 +- .../src/backend/target-diagnostics.ts | 12 +- .../compiler/src/backend/vendor-archives.ts | 236 +- .../compiler/src/backend/vendor-inputs.ts | 1 - packages/compiler/src/backend/warm-cache.ts | 9 +- packages/compiler/src/cli/command.ts | 10 +- packages/compiler/src/cli/host.ts | 2 +- packages/compiler/src/cli/usage.ts | 13 +- packages/compiler/src/compat/fetch-profile.ts | 55 +- packages/compiler/src/compile-types.ts | 20 +- packages/compiler/src/contracts/check.ts | 8 +- packages/compiler/src/coverage/report.ts | 139 +- .../compiler/src/coverage/surface-manifest.ts | 54 +- .../compiler/src/coverage/verdict-cache.ts | 13 +- .../compiler/src/diagnostics/diagnostic.ts | 319 +- .../compiler/src/diagnostics/envelope.test.ts | 2 +- packages/compiler/src/diagnostics/envelope.ts | 13 +- .../src/executable/executable-cache.test.ts | 4 - .../src/executable/executable-cache.ts | 9 +- packages/compiler/src/executable/prepare.ts | 14 +- packages/compiler/src/frontend/analysis.ts | 33 +- packages/compiler/src/frontend/cjs-syntax.ts | 89 - packages/compiler/src/frontend/dts-paths.ts | 2 +- .../frontend/lowering/abstract-equality.ts | 7 +- .../src/frontend/lowering/array-values.ts | 17 +- .../frontend/lowering/builtins/arguments.ts | 13 - .../src/frontend/lowering/builtins/crypto.ts | 4 - .../src/frontend/lowering/builtins/json.ts | 43 +- .../lowering/builtins/module-resolution.ts | 49 +- .../src/frontend/lowering/builtins/numbers.ts | 65 +- .../frontend/lowering/builtins/promises.ts | 69 +- .../src/frontend/lowering/builtins/workers.ts | 2 +- .../src/frontend/lowering/call-arguments.ts | 111 +- .../src/frontend/lowering/call-signatures.ts | 101 +- .../lowering/class-method-mutations.ts | 1 - .../src/frontend/lowering/class-protocols.ts | 2 +- .../lowering/coercions/function-adapters.ts | 47 +- .../src/frontend/lowering/coercions/island.ts | 395 - .../src/frontend/lowering/coercions/state.ts | 1 - .../lowering/coercions/structural-plans.ts | 8 +- .../frontend/lowering/coercions/structural.ts | 16 +- .../src/frontend/lowering/coercions/unions.ts | 1 - .../lowering/containers/array-callbacks.ts | 43 +- .../lowering/containers/array-construction.ts | 3 +- .../lowering/containers/array-methods.ts | 72 +- .../src/frontend/lowering/containers/bytes.ts | 2 +- .../lowering/containers/callback-arguments.ts | 12 +- .../lowering/containers/collection-methods.ts | 10 +- .../lowering/containers/indexed-objects.ts | 2 +- .../lowering/containers/string-and-regexp.ts | 15 +- .../lowering/expressions/evaluation-safety.ts | 3 - .../lowering/expressions/native-proxy.ts | 2 +- .../expressions/nullish-assignment.ts | 1 - .../lowering/expressions/object-literals.ts | 46 +- .../lowering/expressions/optional-chains.ts | 72 +- .../src/frontend/lowering/function-context.ts | 2 +- .../frontend/lowering/generic-functions.ts | 1 - .../src/frontend/lowering/lib-boundary.ts | 113 +- .../lowering/lower-array-sort.test.ts | 4 +- .../src/frontend/lowering/lower-array-sort.ts | 11 +- .../src/frontend/lowering/lower-assert.ts | 5 +- .../lowering/lower-async-iteration.ts | 2 +- .../src/frontend/lowering/lower-calls.ts | 572 +- .../src/frontend/lowering/lower-classes.ts | 70 +- .../src/frontend/lowering/lower-comptime.ts | 5 +- .../src/frontend/lowering/lower-enums.ts | 18 +- .../frontend/lowering/lower-event-emitter.ts | 8 +- .../src/frontend/lowering/lower-expando.ts | 9 +- .../src/frontend/lowering/lower-exprs.ts | 1077 +- .../src/frontend/lowering/lower-functions.ts | 7 +- .../src/frontend/lowering/lower-inspect.ts | 55 +- .../frontend/lowering/lower-island.test.ts | 73 - .../frontend/lowering/lower-modules.test.ts | 5 - .../src/frontend/lowering/lower-modules.ts | 375 +- .../src/frontend/lowering/lower-server.ts | 31 +- .../{lower-island.ts => lower-stdlib.ts} | 1339 +- .../src/frontend/lowering/lower-stmts.test.ts | 2 +- .../src/frontend/lowering/lower-stmts.ts | 1129 +- .../src/frontend/lowering/lower-stream.ts | 6 +- .../src/frontend/lowering/lowerer.test.ts | 71 +- .../compiler/src/frontend/lowering/lowerer.ts | 975 +- .../frontend/lowering/narrowing-stability.ts | 2 +- .../frontend/lowering/optional-arguments.ts | 2 - .../lowering/sanitize-class-types.test.ts | 4 +- .../src/frontend/lowering/strict-equality.ts | 6 +- .../src/frontend/lowering/surfaces.ts | 92 +- .../compiler/src/frontend/module-syntax.ts | 4 +- .../src/frontend/npm-fetch-analysis.test.ts | 140 - .../src/frontend/npm-fetch-analysis.ts | 108 - .../compiler/src/frontend/npm-fetch-node.ts | 13 - .../compiler/src/frontend/npm-fetch-syntax.ts | 232 - packages/compiler/src/frontend/npm-node.ts | 8 - .../src/frontend/npm-static-rewrite-syntax.ts | 114 +- packages/compiler/src/frontend/npm-static.ts | 79 +- packages/compiler/src/frontend/npm.test.ts | 226 +- packages/compiler/src/frontend/npm.ts | 1183 +- .../compiler/src/frontend/pipeline-native.ts | 2 - .../compiler/src/frontend/pipeline.test.ts | 18 +- packages/compiler/src/frontend/pipeline.ts | 97 +- packages/compiler/src/frontend/program.ts | 114 +- .../compiler/src/frontend/provenance-core.ts | 44 +- .../src/frontend/provenance-registry.ts | 26 +- packages/compiler/src/frontend/resolve.ts | 35 +- .../compiler/src/frontend/runtime-resolve.ts | 4 +- .../compiler/src/frontend/services-node.ts | 4 +- .../compiler/src/frontend/services.test.ts | 48 - packages/compiler/src/frontend/services.ts | 33 +- packages/compiler/src/frontend/tsc-codes.ts | 11 - packages/compiler/src/frontend/type-mapper.ts | 230 +- packages/compiler/src/index.ts | 29 +- packages/compiler/src/ir/api.ts | 2 - packages/compiler/src/ir/builtin-effects.ts | 8 +- .../compiler/src/ir/builtin-signatures.ts | 58 +- .../compiler/src/ir/constant-globals.test.ts | 2 +- .../compiler/src/ir/constant-tables.test.ts | 2 +- packages/compiler/src/ir/final-fields.test.ts | 2 +- .../src/ir/initializer-bindings.test.ts | 2 +- packages/compiler/src/ir/int32-slots.test.ts | 2 +- packages/compiler/src/ir/int32-slots.ts | 23 +- packages/compiler/src/ir/ir.test.ts | 8 +- packages/compiler/src/ir/ir.ts | 516 +- packages/compiler/src/ir/runtime-features.ts | 51 +- .../compiler/src/ir/scalar-records.test.ts | 2 +- packages/compiler/src/ir/serialize.ts | 6 +- packages/compiler/src/ir/traverse.ts | 21 - packages/compiler/src/ir/unshare.test.ts | 2 +- packages/compiler/src/ir/validate.test.ts | 12 +- packages/compiler/src/ir/validate.ts | 241 +- .../compiler/src/library/fence-eval.test.ts | 2 +- .../compiler/src/library/int-infer.test.ts | 8 +- .../src/library/library-cache.test.ts | 10 +- packages/compiler/src/library/prepare.ts | 27 +- packages/compiler/src/native/cli.ts | 2 - packages/compiler/src/native/compiler.test.ts | 8 +- packages/compiler/src/native/prepare.ts | 6 +- .../src/native/runtime-typescript.test.ts | 66 - .../compiler/src/native/runtime-typescript.ts | 81 - .../compiler/src/native/sanitizer.test.ts | 3 - packages/compiler/src/native/sanitizer.ts | 17 +- packages/compiler/src/startup-cache.ts | 1 - packages/compiler/surface-manifest.json | 166 +- .../compiler/test/buffer-from-dynamic.test.ts | 1 - .../test/bytes-element-emission.test.ts | 8 +- packages/compiler/test/call-lifetimes.test.ts | 2 +- packages/compiler/test/cc-driver.test.ts | 63 +- .../compiler/test/class-field-updates.test.ts | 1 - .../test/class-narrowing-emission.test.ts | 1 - .../test/collection-ingestion.test.ts | 3 +- .../compiler/test/collection-keys.test.ts | 2 +- .../test/create-require-native-addon.test.ts | 116 +- packages/compiler/test/deep-equality.test.ts | 1 - .../compiler/test/discriminated-json.test.ts | 1 - packages/compiler/test/emit-llvm.test.ts | 6 +- .../compiler/test/emitter-flex-events.test.ts | 3 +- packages/compiler/test/fixtures/fib-ir.ts | 2 +- .../test/fromcharcode-emission.test.ts | 2 +- .../test/input-lifetime-emission.test.ts | 1 - packages/compiler/test/ir.test.ts | 4 +- .../compiler/test/js-override-returns.test.ts | 11 +- packages/compiler/test/json-callbacks.test.ts | 3 +- .../compiler/test/llvm-lib-dispatch.test.ts | 2 +- .../test/native-callable-values.test.ts | 8 +- .../native-class-array-boundaries.test.ts | 1 - .../test/native-class-descriptors.test.ts | 4 +- .../test/native-codegen-integration.test.ts | 4 +- .../test/native-codegen-lowering.test.ts | 2 +- .../compiler/test/npm-fetch-analysis.test.ts | 112 - packages/compiler/test/npm-fetch-cases.ts | 133 - .../test/process-builtin-values.test.ts | 1 - .../test/runtime-optional-precision.test.ts | 1 - .../test/self-hosting-boundaries.test.ts | 2 +- .../compiler/test/set-iterator-seeds.test.ts | 3 +- .../compiler/test/split-loop-emission.test.ts | 1 - .../test/string-accumulation-emission.test.ts | 2 +- .../test/string-and-array-lifetimes.test.ts | 1 - .../test/structural-value-boundaries.test.ts | 3 +- packages/compiler/test/style-text.test.ts | 1 - packages/compiler/test/symbol-fields.test.ts | 4 - .../corpus/1100-island-eval-basics.ts.json | 6 - .../1101-island-marshal-unicode.ts.json | 6 - .../corpus/1102-island-rc-stress.ts.json | 6 - .../tests/corpus/1112-number-methods.ts.json | 6 - .../corpus/1120-web-globals-encoders.ts.json | 6 - .../1123-any-conditional-spread.ts.json | 6 - .../corpus/1206-regex-dynamic-mix.ts.json | 6 - .../corpus/1421-number-parse-dynamic.ts.json | 6 - .../corpus/1421-number-parse-strings.ts.json | 6 + .../corpus/1587-any-field-unassigned.ts.json | 6 - .../2083-destructuring-island-decl.ts.json | 6 - ...84-destructuring-primitive-sources.ts.json | 6 - .../2086-destructuring-island-globals.ts.json | 6 - .../2103-optional-tuple-elements.ts.json | 6 - .../2104-computed-key-destructuring.ts.json | 6 - .../2122-import-refusal-crash/main.ts.json | 6 - .../2130-overload-island-returns.ts.json | 6 - .../corpus/2251-tagged-templates-dyn.ts.json | 6 - .../corpus/2449-js-dyn-worlds/main.js.json | 7 - .../2513-dyn-evolving-array-derived.ts.json | 6 - .../corpus/2667-array-to-sorted-any.ts.json | 6 - ...array-missing-tagged-substitutions.ts.json | 6 - .../corpus/3060-dynamic-host-global.ts.json | 6 - .../tests/corpus/760-any-arithmetic.ts.json | 6 - .../tests/corpus/761-any-objects.ts.json | 6 - .../tests/corpus/763-any-flow.ts.json | 6 - .../tests/corpus/968-jsval-lift.ts.json | 6 - .../corpus/native-any-timer-callback.ts.json | 6 + .../corpus/native-npm-imports/main.ts.json | 6 + .../tests/diagnostics/any-unit-exit.ts.json | 6 - .../tests/diagnostics/imports.ts.json | 2 +- .../diagnostics/island-boundary-slots.ts.json | 6 - .../tests/diagnostics/island.ts.json | 6 - .../diagnostics/module-out-of-scope.ts.json | 12 +- .../diagnostics/npm-imports/main.ts.json | 6 - .../pkg-import-fences/main.ts.json | 6 +- ...retired-engine-1112-number-methods.ts.json | 6 + ...engine-1123-any-conditional-spread.ts.json | 6 + ...d-engine-1587-any-field-unassigned.ts.json | 6 + ...ine-2083-destructuring-island-decl.ts.json | 6 + ...84-destructuring-primitive-sources.ts.json | 6 + ...-2086-destructuring-island-globals.ts.json | 6 + ...ngine-2103-optional-tuple-elements.ts.json | 6 + ...ne-2104-computed-key-destructuring.ts.json | 6 + ...d-engine-2251-tagged-templates-dyn.ts.json | 6 + ...ne-2513-dyn-evolving-array-derived.ts.json | 6 + ...ed-engine-2667-array-to-sorted-any.ts.json | 6 + ...array-missing-tagged-substitutions.ts.json | 6 + .../retired-engine-760-any-arithmetic.ts.json | 6 + .../retired-engine-761-any-objects.ts.json | 6 + .../retired-engine-763-any-flow.ts.json | 6 + .../retired-engine-968-jsval-lift.ts.json | 6 + .../main.ts.json | 6 + .../fixtures/node-types/import-fences.ts.json | 2 +- packages/compiler/test/tuple-forof.test.ts | 2 +- .../compiler/test/type-mapper-unions.test.ts | 18 +- .../test/unassigned-field-reads.test.ts | 1 - packages/compiler/test/worker-threads.test.ts | 4 +- .../runtime-pack-matrix.mjs | 32 +- .../runtime-darwin-arm64/scripts/build.mjs | 18 +- .../runtime-pack-common/library-matrix.mjs | 5 +- .../runtime-pack-matrix.mjs | 27 +- .../runtime-pack-common/scripts/build.mjs | 18 +- .../runtime-pack-common/worker-matrix.mjs | 18 +- .../runtime-wasm32-wasi/scripts/build.mjs | 1 - packages/runtime/src/scr_abort.c | 2 +- packages/runtime/src/scr_assert.c | 39 +- packages/runtime/src/scr_async.c | 109 +- packages/runtime/src/scr_bytes_io.c | 4 +- packages/runtime/src/scr_console.c | 17 +- packages/runtime/src/scr_dc.c | 7 +- packages/runtime/src/scr_dyn_invoke.c | 65 +- packages/runtime/src/scr_fetch.c | 1842 +- packages/runtime/src/scr_fetch_curl.c | 666 - packages/runtime/src/scr_http.c | 13 - packages/runtime/src/scr_inspect.c | 14 +- packages/runtime/src/scr_inspect_island.c | 51 - packages/runtime/src/scr_island.c | 11392 ------ packages/runtime/src/scr_island_manifest.h | 159 - packages/runtime/src/scr_json.c | 367 +- packages/runtime/src/scr_lib.c | 15 +- packages/runtime/src/scr_map.c | 5 +- packages/runtime/src/scr_net.c | 100 +- packages/runtime/src/scr_net_island.c | 458 - packages/runtime/src/scr_regex.c | 54 +- packages/runtime/src/scr_runtime.h | 679 +- packages/runtime/src/scr_string.c | 14 +- packages/runtime/src/scr_url.c | 4 +- packages/runtime/src/scr_util.c | 106 +- packages/runtime/src/scr_util_compare.c | 5 +- packages/runtime/src/scr_web.c | 2439 -- packages/runtime/src/scr_zlib.c | 12 - packages/runtime/src/scr_zlib_island.c | 15 - packages/runtime/vendor/README.md | 14 +- packages/runtime/vendor/curl/COPYRIGHT | 534 - .../runtime/vendor/curl/include/curl/curl.h | 3214 -- .../vendor/curl/include/curl/curlver.h | 79 - .../runtime/vendor/curl/include/curl/easy.h | 125 - .../runtime/vendor/curl/include/curl/header.h | 74 - .../vendor/curl/include/curl/mprintf.h | 52 - .../runtime/vendor/curl/include/curl/multi.h | 460 - .../vendor/curl/include/curl/options.h | 70 - .../vendor/curl/include/curl/stdcheaders.h | 35 - .../runtime/vendor/curl/include/curl/system.h | 508 - .../vendor/curl/include/curl/typecheck-gcc.h | 716 - .../runtime/vendor/curl/include/curl/urlapi.h | 149 - .../vendor/curl/include/curl/websockets.h | 84 - scripts/build-native-cli.mts | 1 - scripts/ci-native-bootstrap.mjs | 9 +- scripts/ci-test-plan.mjs | 2 - scripts/sandbox-test.mjs | 12 +- tests/corpus/1100-island-eval-basics.ts | 24 - tests/corpus/1101-island-marshal-unicode.ts | 20 - tests/corpus/1102-island-rc-stress.ts | 22 - tests/corpus/1110-math-members.ts | 1 - tests/corpus/1111-math-random.ts | 1 - tests/corpus/1113-string-methods.ts | 1 - tests/corpus/1114-string-unicode-island.ts | 1 - tests/corpus/1115-parse-globals.ts | 1 - tests/corpus/1116-island-static-mix.ts | 1 - tests/corpus/1120-web-globals-encoders.ts | 39 - tests/corpus/1122-any-captures.ts | 1 - tests/corpus/1206-regex-dynamic-mix.ts | 12 - ...ynamic.ts => 1421-number-parse-strings.ts} | 4 +- tests/corpus/1437-pad-default.ts | 1 - tests/corpus/1595-js-island-gap/main.js | 1 - .../2050-dynamic-import-own-module/main.ts | 1 - tests/corpus/2051-dynamic-import-then/main.ts | 5 +- .../2054-destructuring-island-source.ts | 1 - tests/corpus/2074-island-destructuring.ts | 1 - tests/corpus/2101-dyn-param-defaults.ts | 1 - .../corpus/2122-import-refusal-crash/main.ts | 8 - tests/corpus/2130-overload-island-returns.ts | 52 - tests/corpus/2170-island-array-exits.ts | 1 - tests/corpus/2171-island-json-stringify.ts | 1 - tests/corpus/2172-island-regexp-boundary.ts | 1 - .../corpus/2196-island-computed-key-chain.ts | 1 - tests/corpus/2365-dyn-into-island.ts | 1 - .../corpus/2447-island-boundary-slots/main.ts | 1 - tests/corpus/2449-js-dyn-worlds/main.js | 86 - tests/corpus/2449-js-dyn-worlds/tsconfig.json | 1 - tests/corpus/2449-js-dyn-worlds/walker.js | 13 - tests/corpus/2474-island-literal-forms.ts | 1 - tests/corpus/2475-variadic-wrapper-island.js | 1 - tests/corpus/2510-dyn-evolving-array-map.ts | 1 - .../2511-dyn-evolving-array-filter-foreach.ts | 1 - .../2512-dyn-evolving-array-mixed-push.ts | 1 - .../2568-rest-spread-forward-dynamic.js | 1 - tests/corpus/2578-jsval-into-unknown-rows.ts | 1 - .../2579-jsval-object-param-crossing.js | 1 - tests/corpus/2580-jsval-routed-keyed-ops.js | 1 - tests/corpus/2581-jsval-routed-calls.js | 1 - tests/corpus/2582-jsval-object-statics.js | 1 - tests/corpus/2582-jsval-routed-keyed-ops.js | 1 - tests/corpus/2583-dyn-nullish-coalesce.js | 1 - tests/corpus/2583-jsval-routed-calls.js | 1 - tests/corpus/2584-jsval-object-statics.js | 1 - tests/corpus/2585-dyn-nullish-coalesce.js | 1 - tests/corpus/2590-object-create-dynamic.js | 1 - tests/corpus/2603-island-keyed-write-dyn.js | 1 - .../corpus/2606-dynamic-import-cycle/main.ts | 1 - tests/corpus/2632-dyn-jsval-iterate.js | 1 - tests/corpus/2633-island-promise-crossing.js | 1 - .../2650-top-level-await-self-import.ts | 1 - .../main.ts | 1 - .../main.ts | 1 - .../main.ts | 1 - .../main.ts | 1 - tests/corpus/2681-util-parseargs-dynamic.js | 1 - .../2705-type-import-link-dynamic/main.ts | 1 - .../main.ts | 1 - .../2708-type-import-link-dynamic/main.ts | 1 - .../2790-dynamic-import-self-name/main.ts | 1 - .../2856-dynamic-any-local-operators.ts | 1 - .../2859-import-meta-resolve-dynamic/main.mjs | 1 - tests/corpus/3054-dynamic-abort-record.ts | 1 - .../main.ts | 1 - .../corpus/3058-optional-array-chain-join.ts | 1 - tests/corpus/3060-dynamic-host-global.ts | 17 - tests/corpus/3113-union-array-removal.ts | 7 + .../4067-dynamic-import-cycle-tdz/main.ts | 1 - tests/corpus/762-any-boundary.ts | 1 - tests/corpus/764-any-async.ts | 1 - tests/corpus/765-any-optional-chain.ts | 1 - tests/corpus/766-any-union-boundary.ts | 1 - tests/corpus/767-string-literal-keys.ts | 1 - tests/corpus/768-any-uninitialized.ts | 1 - tests/corpus/contextual-array-union-write.ts | 21 +- tests/corpus/native-any-timer-callback.ts | 2 + .../native-npm-imports}/main.ts | 5 +- .../node_modules/@acme/units/index.d.ts | 0 .../node_modules/@acme/units/index.js | 0 .../node_modules/@acme/units/package.json | 0 .../node_modules/mathkit/index.d.ts | 0 .../node_modules/mathkit/index.js | 0 .../node_modules/mathkit/package.json | 0 tests/coverage-fixtures/dynamic-mix.ts | 3 +- tests/diagnostics/any-unit-exit.ts | 22 - tests/diagnostics/island-boundary-slots.ts | 9 - tests/diagnostics/island.ts | 10 - .../retired-engine-1112-number-methods.ts} | 1 - ...red-engine-1123-any-conditional-spread.ts} | 1 - ...tired-engine-1587-any-field-unassigned.ts} | 1 - ...-engine-2083-destructuring-island-decl.ts} | 1 - ...e-2084-destructuring-primitive-sources.ts} | 1 - ...gine-2086-destructuring-island-globals.ts} | 1 - ...ed-engine-2103-optional-tuple-elements.ts} | 1 - ...engine-2104-computed-key-destructuring.ts} | 1 - ...tired-engine-2251-tagged-templates-dyn.ts} | 1 - ...engine-2513-dyn-evolving-array-derived.ts} | 1 - ...etired-engine-2667-array-to-sorted-any.ts} | 1 - ...790-array-missing-tagged-substitutions.ts} | 1 - .../retired-engine-760-any-arithmetic.ts} | 1 - .../retired-engine-761-any-objects.ts} | 1 - .../retired-engine-763-any-flow.ts} | 1 - .../retired-engine-968-jsval-lift.ts} | 1 - .../retired-engine-import-refusal/main.ts | 4 + .../node_modules/brokenrt/index.d.ts | 0 .../node_modules/brokenrt/package.json | 0 tests/fixtures/commander-calc/README.md | 2 +- .../fixtures/fetch/cases/abort-signal/main.ts | 3 +- .../fixtures/fetch/cases/fetch-cause/main.ts | 15 - .../fixtures/fetch/cases/fetch-suite/main.ts | 7 - .../fixtures/fetch/cases/island-http/main.ts | 8 - .../fetch/cases/patched-global-fetch/main.ts | 24 - .../fetch/cases/redirect-resolution/main.ts | 3 +- .../fetch/cases/response-surface/main.ts | 83 - .../fetch/cases/sse-eventsource/main.ts | 7 - .../stream-from-immediate-cancel/main.ts | 18 - tests/fixtures/fetch/cases/user-fetch/main.ts | 26 +- .../fetch/node_modules/abortfetch/index.js | 1 + .../node_modules/eventsource-parser/LICENSE | 21 - .../eventsource-parser/README-scriptc.md | 4 - .../eventsource-parser/dist/index.d.ts | 146 - .../eventsource-parser/dist/index.js | 166 - .../eventsource-parser/dist/stream.d.ts | 121 - .../eventsource-parser/dist/stream.js | 29 - .../eventsource-parser/package.json | 92 - .../fetch/node_modules/fetchcause/index.d.ts | 1 - .../fetch/node_modules/fetchcause/index.js | 17 - .../node_modules/fetchcause/package.json | 1 - .../fetch/node_modules/fetchtap/index.d.ts | 1 - .../fetch/node_modules/fetchtap/index.js | 22 - .../fetch/node_modules/fetchtap/package.json | 1 - .../fetch/node_modules/islandhttp/index.d.ts | 1 - .../fetch/node_modules/islandhttp/index.js | 135 - .../node_modules/islandhttp/package.json | 7 - .../fetch/node_modules/ssefetch/index.d.ts | 1 - .../fetch/node_modules/ssefetch/index.js | 22 - .../fetch/node_modules/ssefetch/package.json | 7 - .../stream-from-cancel-probe/index.d.ts | 5 - .../stream-from-cancel-probe/index.js | 162 - .../stream-from-cancel-probe/package.json | 7 - .../fetch/node_modules/webfetch/index.d.ts | 1 - .../fetch/node_modules/webfetch/index.js | 86 - .../fetch/node_modules/webfetch/package.json | 7 - .../fetch/unsupported-init-dynamic/main.mts | 51 - .../fixtures/fetch/vercel-env-proxy/main.mts | 1 - tests/fixtures/self-hosting/class-types.ts | 2 +- .../self-hosting/frontend-lowering-node.ts | 4 +- .../self-hosting/frontend-lowering.ts | 4 +- .../self-hosting/frontend-pipeline-node.ts | 2 +- .../self-hosting/frontend-pipeline.ts | 2 +- .../self-hosting/frontend-services-cases.ts | 37 +- .../self-hosting/frontend-services.ts | 4 +- tests/fixtures/self-hosting/ir-types.ts | 4 +- .../self-hosting/type-mapper-cases.ts | 7 +- tests/harness/README.md | 10 +- .../__snapshots__/any-unit-exit.ts.txt | 26 - tests/harness/__snapshots__/any.ts.txt | 4 +- .../async-iterator-handles.ts.txt | 4 +- .../contract-int32-escapes.ts.txt | 2 +- .../__snapshots__/coverage-divergences.txt | 2 +- .../coverage-dynamic-mix-dynamic.txt | 7 - .../__snapshots__/coverage-dynamic-mix.txt | 13 +- .../__snapshots__/coverage-import-fences.txt | 2 +- .../harness/__snapshots__/coverage-js-gap.txt | 2 +- .../coverage-npm-lazy-builtin.txt | 14 - .../__snapshots__/coverage-npm-lazy-traps.txt | 19 - .../__snapshots__/coverage-npm-packages.txt | 24 +- .../__snapshots__/create-require.ts.txt | 2 +- .../dynamic-import-static.ts.txt | 2 +- .../__snapshots__/dynamic-import/main.ts.txt | 13 +- .../dynamic-representable-types.ts.txt | 4 +- .../__snapshots__/dynamic-surface.ts.txt | 4 +- .../harness/__snapshots__/fetch-static.ts.txt | 2 +- .../__snapshots__/function-forms.ts.txt | 2 +- tests/harness/__snapshots__/imports.ts.txt | 2 +- .../island-boundary-slots.ts.txt | 8 - tests/harness/__snapshots__/island.ts.txt | 17 - .../__snapshots__/json-shape/main.ts.txt | 4 +- .../harness/__snapshots__/maps-surface.ts.txt | 6 +- .../__snapshots__/module-out-of-scope.ts.txt | 12 +- .../__snapshots__/node-types-fenced.txt | 4 +- .../__snapshots__/npm-imports/main.ts.txt | 80 - .../pkg-import-fences/main.ts.txt | 6 +- .../retired-engine-1112-number-methods.ts.txt | 8 + ...-engine-1123-any-conditional-spread.ts.txt | 6 + ...ed-engine-1587-any-field-unassigned.ts.txt | 47 + ...gine-2083-destructuring-island-decl.ts.txt | 80 + ...084-destructuring-primitive-sources.ts.txt | 40 + ...e-2086-destructuring-island-globals.ts.txt | 17 + ...engine-2103-optional-tuple-elements.ts.txt | 115 + ...ine-2104-computed-key-destructuring.ts.txt | 81 + ...ed-engine-2251-tagged-templates-dyn.ts.txt | 44 + ...ine-2513-dyn-evolving-array-derived.ts.txt | 20 + ...red-engine-2667-array-to-sorted-any.ts.txt | 8 + ...-array-missing-tagged-substitutions.ts.txt | 17 + .../retired-engine-760-any-arithmetic.ts.txt | 6 + .../retired-engine-761-any-objects.ts.txt | 6 + .../retired-engine-763-any-flow.ts.txt | 13 + .../retired-engine-968-jsval-lift.ts.txt | 116 + .../retired-engine-import-refusal/main.ts.txt | 8 + tests/harness/__snapshots__/tuples.ts.txt | 8 +- .../union-clone-override-width.ts.txt | 6 +- tests/harness/coverage.test.ts | 88 +- tests/harness/diagnostics.test.ts | 8 +- tests/harness/differential.test.ts | 20 +- tests/harness/dyncheck.test.ts | 171 +- tests/harness/effect-runner.ts | 1 - tests/harness/errors.test.ts | 15 +- tests/harness/fetch-conformance.test.ts | 3 +- tests/harness/fetch.test.ts | 295 +- tests/harness/ffi-callback-pool.test.ts | 2 - tests/harness/ffi-catalog.test.ts | 1 - tests/harness/ffi-frameworks.test.ts | 1 - tests/harness/ffi-memory.test.ts | 1 - tests/harness/ffi-scalars.test.ts | 1 - tests/harness/ffi-wide.test.ts | 1 - tests/harness/installed-entry.test.ts | 76 +- tests/harness/island-shim.mjs | 10 - tests/harness/island.test.ts | 633 - tests/harness/library-mode.test.ts | 2 +- tests/harness/linux-differential.test.ts | 87 +- tests/harness/llvm-differential.test.ts | 11 +- tests/harness/native-proxy.test.ts | 1 - tests/harness/native-weak-collections.test.ts | 2 - tests/harness/npm-cases.ts | 2 +- tests/harness/npm-fetch-defaults.test.ts | 6 +- tests/harness/npm-static.test.ts | 125 +- tests/harness/npm-typescript.test.ts | 57 - tests/harness/npm.test.ts | 214 - tests/harness/opaque-class-view.test.ts | 1 - tests/harness/opentui-native.mts | 1 - tests/harness/prettier-e2e.test.ts | 358 - tests/harness/process-argv.test.ts | 5 +- tests/harness/project-config.test.ts | 2 - tests/harness/provenance.test.ts | 48 +- tests/harness/regex.test.ts | 4 +- tests/harness/runtime-resolver.test.ts | 4 +- .../self-hosting-backend-analysis.test.ts | 5 +- .../harness/self-hosting-class-types.test.ts | 1 - tests/harness/self-hosting-commonjs.test.ts | 4 +- tests/harness/self-hosting-emission-cases.ts | 6 +- tests/harness/self-hosting-emission.test.ts | 5 +- tests/harness/self-hosting-emitter-inputs.ts | 63 - .../harness/self-hosting-ffi-profile.test.ts | 4 +- .../self-hosting-frontend-collections.test.ts | 4 +- .../self-hosting-frontend-lowering.test.ts | 3 +- .../self-hosting-frontend-metadata.test.ts | 4 +- .../self-hosting-frontend-program.test.ts | 4 +- .../self-hosting-frontend-services.test.ts | 50 +- .../self-hosting-integer-ranges.test.ts | 5 +- .../self-hosting-llvm-embedding.test.ts | 80 - tests/harness/self-hosting-llvm-embedding.ts | 61 - .../self-hosting-llvm-emitter-cases.ts | 3 +- .../harness/self-hosting-llvm-emitter.test.ts | 28 +- .../self-hosting-lowering-context.test.ts | 3 +- .../harness/self-hosting-native-cache.test.ts | 1 - .../self-hosting-native-driver.test.ts | 2 +- tests/harness/self-hosting-native-features.ts | 2 +- .../self-hosting-native-frontend.test.ts | 9 +- .../self-hosting-native-toolchain.test.ts | 8 +- .../harness/self-hosting-program-host.test.ts | 4 +- .../self-hosting-runtime-features.test.ts | 21 +- .../harness/self-hosting-runtime-pack.test.ts | 6 +- .../self-hosting-serialization.test.ts | 5 +- .../self-hosting-source-parser.test.ts | 4 +- tests/harness/self-hosting-ts7-client.test.ts | 4 +- .../harness/self-hosting-ts7-process.test.ts | 4 +- .../harness/self-hosting-type-mapper.test.ts | 4 +- .../self-hosting-union-conversions.test.ts | 5 +- tests/harness/self-hosting-validator-cases.ts | 2 +- tests/harness/self-hosting-validator.test.ts | 2 - tests/harness/self-hosting.test.ts | 5 +- tests/harness/static-only.test.ts | 99 + tests/harness/static-spatial.test.ts | 1 - ...surface.test.ts => stdlib-surface.test.ts} | 47 +- tests/harness/surface-manifest.test.ts | 310 +- tests/harness/three.test.ts | 1 - tests/harness/unicode-host-filesystem.test.ts | 1 - tests/harness/vercel-e2e.test.ts | 567 - tests/harness/wasi-differential.test.ts | 37 +- tests/harness/web-globals.test.ts | 291 - tests/harness/windows-differential.test.ts | 36 +- tests/test262/README.md | 2 +- tests/test262/compile-worker.ts | 1 - tests/test262/run.ts | 2 +- 663 files changed, 3255 insertions(+), 117040 deletions(-) delete mode 100644 internal/compatibility/dynamic-support.json delete mode 100644 internal/compatibility/src/generate-island-header.mjs delete mode 100644 packages/compiler/src/backend/llvm/expr-island.ts delete mode 100644 packages/compiler/src/frontend/lowering/coercions/island.ts delete mode 100644 packages/compiler/src/frontend/lowering/lower-island.test.ts rename packages/compiler/src/frontend/lowering/{lower-island.ts => lower-stdlib.ts} (62%) delete mode 100644 packages/compiler/src/frontend/npm-fetch-analysis.test.ts delete mode 100644 packages/compiler/src/frontend/npm-fetch-analysis.ts delete mode 100644 packages/compiler/src/frontend/npm-fetch-node.ts delete mode 100644 packages/compiler/src/frontend/npm-fetch-syntax.ts delete mode 100644 packages/compiler/src/native/runtime-typescript.test.ts delete mode 100644 packages/compiler/src/native/runtime-typescript.ts delete mode 100644 packages/compiler/test/npm-fetch-analysis.test.ts delete mode 100644 packages/compiler/test/npm-fetch-cases.ts delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1100-island-eval-basics.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1101-island-marshal-unicode.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1102-island-rc-stress.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1112-number-methods.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1120-web-globals-encoders.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1123-any-conditional-spread.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1206-regex-dynamic-mix.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1421-number-parse-dynamic.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1421-number-parse-strings.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1587-any-field-unassigned.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2083-destructuring-island-decl.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2084-destructuring-primitive-sources.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2086-destructuring-island-globals.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2103-optional-tuple-elements.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2104-computed-key-destructuring.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2122-import-refusal-crash/main.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2130-overload-island-returns.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2251-tagged-templates-dyn.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2449-js-dyn-worlds/main.js.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2513-dyn-evolving-array-derived.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2667-array-to-sorted-any.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2790-array-missing-tagged-substitutions.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/3060-dynamic-host-global.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/760-any-arithmetic.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/761-any-objects.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/763-any-flow.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/968-jsval-lift.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/native-any-timer-callback.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/corpus/native-npm-imports/main.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/any-unit-exit.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/island-boundary-slots.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/island.ts.json delete mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/npm-imports/main.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1112-number-methods.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1123-any-conditional-spread.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1587-any-field-unassigned.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2083-destructuring-island-decl.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2084-destructuring-primitive-sources.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2086-destructuring-island-globals.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2103-optional-tuple-elements.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2104-computed-key-destructuring.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2251-tagged-templates-dyn.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2513-dyn-evolving-array-derived.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2667-array-to-sorted-any.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2790-array-missing-tagged-substitutions.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-760-any-arithmetic.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-761-any-objects.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-763-any-flow.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-968-jsval-lift.ts.json create mode 100644 packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-import-refusal/main.ts.json delete mode 100644 packages/runtime/src/scr_fetch_curl.c delete mode 100644 packages/runtime/src/scr_inspect_island.c delete mode 100644 packages/runtime/src/scr_island.c delete mode 100644 packages/runtime/src/scr_island_manifest.h delete mode 100644 packages/runtime/src/scr_net_island.c delete mode 100644 packages/runtime/src/scr_web.c delete mode 100644 packages/runtime/src/scr_zlib_island.c delete mode 100644 packages/runtime/vendor/curl/COPYRIGHT delete mode 100644 packages/runtime/vendor/curl/include/curl/curl.h delete mode 100644 packages/runtime/vendor/curl/include/curl/curlver.h delete mode 100644 packages/runtime/vendor/curl/include/curl/easy.h delete mode 100644 packages/runtime/vendor/curl/include/curl/header.h delete mode 100644 packages/runtime/vendor/curl/include/curl/mprintf.h delete mode 100644 packages/runtime/vendor/curl/include/curl/multi.h delete mode 100644 packages/runtime/vendor/curl/include/curl/options.h delete mode 100644 packages/runtime/vendor/curl/include/curl/stdcheaders.h delete mode 100644 packages/runtime/vendor/curl/include/curl/system.h delete mode 100644 packages/runtime/vendor/curl/include/curl/typecheck-gcc.h delete mode 100644 packages/runtime/vendor/curl/include/curl/urlapi.h delete mode 100644 packages/runtime/vendor/curl/include/curl/websockets.h delete mode 100644 tests/corpus/1100-island-eval-basics.ts delete mode 100644 tests/corpus/1101-island-marshal-unicode.ts delete mode 100644 tests/corpus/1102-island-rc-stress.ts delete mode 100644 tests/corpus/1120-web-globals-encoders.ts delete mode 100644 tests/corpus/1206-regex-dynamic-mix.ts rename tests/corpus/{1421-number-parse-dynamic.ts => 1421-number-parse-strings.ts} (79%) delete mode 100644 tests/corpus/2122-import-refusal-crash/main.ts delete mode 100644 tests/corpus/2130-overload-island-returns.ts delete mode 100644 tests/corpus/2449-js-dyn-worlds/main.js delete mode 100644 tests/corpus/2449-js-dyn-worlds/tsconfig.json delete mode 100644 tests/corpus/2449-js-dyn-worlds/walker.js delete mode 100644 tests/corpus/3060-dynamic-host-global.ts create mode 100644 tests/corpus/native-any-timer-callback.ts rename tests/{diagnostics/npm-imports => corpus/native-npm-imports}/main.ts (51%) rename tests/{diagnostics/npm-imports => corpus/native-npm-imports}/node_modules/@acme/units/index.d.ts (100%) rename tests/{diagnostics/npm-imports => corpus/native-npm-imports}/node_modules/@acme/units/index.js (100%) rename tests/{diagnostics/npm-imports => corpus/native-npm-imports}/node_modules/@acme/units/package.json (100%) rename tests/{diagnostics/npm-imports => corpus/native-npm-imports}/node_modules/mathkit/index.d.ts (100%) rename tests/{diagnostics/npm-imports => corpus/native-npm-imports}/node_modules/mathkit/index.js (100%) rename tests/{diagnostics/npm-imports => corpus/native-npm-imports}/node_modules/mathkit/package.json (100%) delete mode 100644 tests/diagnostics/any-unit-exit.ts delete mode 100644 tests/diagnostics/island-boundary-slots.ts delete mode 100644 tests/diagnostics/island.ts rename tests/{corpus/1112-number-methods.ts => diagnostics/retired-engine-1112-number-methods.ts} (98%) rename tests/{corpus/1123-any-conditional-spread.ts => diagnostics/retired-engine-1123-any-conditional-spread.ts} (99%) rename tests/{corpus/1587-any-field-unassigned.ts => diagnostics/retired-engine-1587-any-field-unassigned.ts} (97%) rename tests/{corpus/2083-destructuring-island-decl.ts => diagnostics/retired-engine-2083-destructuring-island-decl.ts} (98%) rename tests/{corpus/2084-destructuring-primitive-sources.ts => diagnostics/retired-engine-2084-destructuring-primitive-sources.ts} (98%) rename tests/{corpus/2086-destructuring-island-globals.ts => diagnostics/retired-engine-2086-destructuring-island-globals.ts} (97%) rename tests/{corpus/2103-optional-tuple-elements.ts => diagnostics/retired-engine-2103-optional-tuple-elements.ts} (99%) rename tests/{corpus/2104-computed-key-destructuring.ts => diagnostics/retired-engine-2104-computed-key-destructuring.ts} (99%) rename tests/{corpus/2251-tagged-templates-dyn.ts => diagnostics/retired-engine-2251-tagged-templates-dyn.ts} (98%) rename tests/{corpus/2513-dyn-evolving-array-derived.ts => diagnostics/retired-engine-2513-dyn-evolving-array-derived.ts} (98%) rename tests/{corpus/2667-array-to-sorted-any.ts => diagnostics/retired-engine-2667-array-to-sorted-any.ts} (98%) rename tests/{corpus/2790-array-missing-tagged-substitutions.ts => diagnostics/retired-engine-2790-array-missing-tagged-substitutions.ts} (97%) rename tests/{corpus/760-any-arithmetic.ts => diagnostics/retired-engine-760-any-arithmetic.ts} (98%) rename tests/{corpus/761-any-objects.ts => diagnostics/retired-engine-761-any-objects.ts} (98%) rename tests/{corpus/763-any-flow.ts => diagnostics/retired-engine-763-any-flow.ts} (98%) rename tests/{corpus/968-jsval-lift.ts => diagnostics/retired-engine-968-jsval-lift.ts} (99%) create mode 100644 tests/diagnostics/retired-engine-import-refusal/main.ts rename tests/{corpus/2122-import-refusal-crash => diagnostics/retired-engine-import-refusal}/node_modules/brokenrt/index.d.ts (100%) rename tests/{corpus/2122-import-refusal-crash => diagnostics/retired-engine-import-refusal}/node_modules/brokenrt/package.json (100%) delete mode 100644 tests/fixtures/fetch/cases/fetch-cause/main.ts delete mode 100644 tests/fixtures/fetch/cases/fetch-suite/main.ts delete mode 100644 tests/fixtures/fetch/cases/island-http/main.ts delete mode 100644 tests/fixtures/fetch/cases/patched-global-fetch/main.ts delete mode 100644 tests/fixtures/fetch/cases/response-surface/main.ts delete mode 100644 tests/fixtures/fetch/cases/sse-eventsource/main.ts delete mode 100644 tests/fixtures/fetch/cases/stream-from-immediate-cancel/main.ts delete mode 100644 tests/fixtures/fetch/node_modules/eventsource-parser/LICENSE delete mode 100644 tests/fixtures/fetch/node_modules/eventsource-parser/README-scriptc.md delete mode 100644 tests/fixtures/fetch/node_modules/eventsource-parser/dist/index.d.ts delete mode 100644 tests/fixtures/fetch/node_modules/eventsource-parser/dist/index.js delete mode 100644 tests/fixtures/fetch/node_modules/eventsource-parser/dist/stream.d.ts delete mode 100644 tests/fixtures/fetch/node_modules/eventsource-parser/dist/stream.js delete mode 100644 tests/fixtures/fetch/node_modules/eventsource-parser/package.json delete mode 100644 tests/fixtures/fetch/node_modules/fetchcause/index.d.ts delete mode 100644 tests/fixtures/fetch/node_modules/fetchcause/index.js delete mode 100644 tests/fixtures/fetch/node_modules/fetchcause/package.json delete mode 100644 tests/fixtures/fetch/node_modules/fetchtap/index.d.ts delete mode 100644 tests/fixtures/fetch/node_modules/fetchtap/index.js delete mode 100644 tests/fixtures/fetch/node_modules/fetchtap/package.json delete mode 100644 tests/fixtures/fetch/node_modules/islandhttp/index.d.ts delete mode 100644 tests/fixtures/fetch/node_modules/islandhttp/index.js delete mode 100644 tests/fixtures/fetch/node_modules/islandhttp/package.json delete mode 100644 tests/fixtures/fetch/node_modules/ssefetch/index.d.ts delete mode 100644 tests/fixtures/fetch/node_modules/ssefetch/index.js delete mode 100644 tests/fixtures/fetch/node_modules/ssefetch/package.json delete mode 100644 tests/fixtures/fetch/node_modules/stream-from-cancel-probe/index.d.ts delete mode 100644 tests/fixtures/fetch/node_modules/stream-from-cancel-probe/index.js delete mode 100644 tests/fixtures/fetch/node_modules/stream-from-cancel-probe/package.json delete mode 100644 tests/fixtures/fetch/node_modules/webfetch/index.d.ts delete mode 100644 tests/fixtures/fetch/node_modules/webfetch/index.js delete mode 100644 tests/fixtures/fetch/node_modules/webfetch/package.json delete mode 100644 tests/fixtures/fetch/unsupported-init-dynamic/main.mts delete mode 100644 tests/harness/__snapshots__/any-unit-exit.ts.txt delete mode 100644 tests/harness/__snapshots__/coverage-dynamic-mix-dynamic.txt delete mode 100644 tests/harness/__snapshots__/coverage-npm-lazy-builtin.txt delete mode 100644 tests/harness/__snapshots__/coverage-npm-lazy-traps.txt delete mode 100644 tests/harness/__snapshots__/island-boundary-slots.ts.txt delete mode 100644 tests/harness/__snapshots__/island.ts.txt delete mode 100644 tests/harness/__snapshots__/npm-imports/main.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-1112-number-methods.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-1123-any-conditional-spread.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-1587-any-field-unassigned.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-2083-destructuring-island-decl.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-2084-destructuring-primitive-sources.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-2086-destructuring-island-globals.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-2103-optional-tuple-elements.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-2104-computed-key-destructuring.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-2251-tagged-templates-dyn.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-2513-dyn-evolving-array-derived.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-2667-array-to-sorted-any.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-2790-array-missing-tagged-substitutions.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-760-any-arithmetic.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-761-any-objects.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-763-any-flow.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-968-jsval-lift.ts.txt create mode 100644 tests/harness/__snapshots__/retired-engine-import-refusal/main.ts.txt delete mode 100644 tests/harness/island-shim.mjs delete mode 100644 tests/harness/island.test.ts delete mode 100644 tests/harness/npm-typescript.test.ts delete mode 100644 tests/harness/npm.test.ts delete mode 100644 tests/harness/prettier-e2e.test.ts delete mode 100644 tests/harness/self-hosting-llvm-embedding.test.ts delete mode 100644 tests/harness/self-hosting-llvm-embedding.ts create mode 100644 tests/harness/static-only.test.ts rename tests/harness/{island-surface.test.ts => stdlib-surface.test.ts} (76%) delete mode 100644 tests/harness/vercel-e2e.test.ts delete mode 100644 tests/harness/web-globals.test.ts diff --git a/.gitignore b/.gitignore index b70ddf10e..f747b4f62 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ node_modules/ .pnpm-store/ # test-fixture packages are TEST DATA, committed on purpose !tests/diagnostics/npm-imports/node_modules/ +!tests/diagnostics/retired-engine-import-refusal/node_modules/ !tests/fixtures/commander-calc/node_modules/ !tests/fixtures/npm/node_modules/ !tests/corpus/*/node_modules/ @@ -25,7 +26,6 @@ output/ /packages/runtime-*/artifacts/ /packages/runtime-*/runtime-pack.json /packages/runtime-*/.runtime-pack-* -!tests/fixtures/fetch/node_modules/eventsource-parser/dist/ !tests/fixtures/npm/node_modules/*/dist/ !tests/fixtures/npm/workspace/*/dist/ !tests/fixtures/npm/cases/workspace-copied/members/*/dist/ @@ -35,7 +35,7 @@ output/ *.log .DS_Store packages/runtime/test/build/ -# lazily built engine archives for --dynamic (see packages/runtime/vendor/README.md) +# Cached build-time evaluator archives (see packages/runtime/vendor/README.md) packages/runtime/vendor/.cache/ # fs corpus scratch directories (created in the test cwd, removed on clean runs) tmp-*/ diff --git a/AGENTS.md b/AGENTS.md index 395397745..50f5cfd73 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -78,16 +78,15 @@ The Node.js compatibility system is an implementation inventory and planning too - Node's official documentation defines the public API hierarchy and stability metadata. Consult Node source when the docs do not fully specify behavior. - Running the pinned Node release is the behavior oracle for differential tests. - Compiler source and `packages/compiler/surface-manifest.json`, augmented by `internal/compatibility/static-support.json`, define static-native support. -- `internal/compatibility/dynamic-support.json` defines dynamic-island modules, exports, members, explicit stubs, globals, and policies. It also generates the runtime builtin registry. - Test evidence determines positive behavioral claims. Source manifests alone do not prove Node-compatible behavior. -Treat static-native and dynamic-island compatibility independently. Support in one tier says nothing about the other, and `--dynamic` does not turn an unsupported typed call into a supported static call. +Compatibility describes native compilation. There is no runtime JavaScript engine tier. ### Status contract - `supported` — broadly implemented. This requires test evidence. - `partial` — a useful implemented subset. This requires test evidence, but evidence may cover an API family rather than every documented overload. -- `refused` — a named compiler diagnostic or explicit dynamic throwing or rejecting stub exists. Never infer this status from absence. +- `refused` — a named compiler diagnostic exists. Never infer this status from absence. - `not-implemented` — no implementation claim. Its verification basis decides whether it is ready to implement or must first be investigated. - `by-design` — intentionally outside a scriptc execution model. This requires an explicit implementation-owned architectural policy. - `unreviewed` — no compatibility subsystem owns a reliable classification. Do not treat this as unsupported or as an implementation ticket. @@ -107,7 +106,7 @@ Read a row's verification basis before acting: - `architectural-policy` — explicit intentional exclusion. - `unreviewed`, `not-applicable`, and `derived` retain the meanings above. -`pnpm node-compat:backlog` emits tier-specific work. Its actions are: +`pnpm node-compat:backlog` emits native compilation work. Its actions are: - `verify-gap` — investigate a registry gap first; this is not yet an implementation ticket. - `implement` — implement a declared or verified gap. @@ -124,7 +123,7 @@ Useful queue filters compose: ```bash pnpm node-compat:backlog --action=implement --priority=high pnpm node-compat:backlog --action=verify-gap --chapter=assert -pnpm node-compat:backlog --tier=dynamic --format=tsv +pnpm node-compat:backlog --tier=static --format=tsv ``` ### Generated files @@ -136,11 +135,10 @@ Never hand-edit these files: - `internal/compatibility/generated/node-v24-backlog.json` - `docs/src/generated/node-v24-compatibility.json` - `docs/src/generated/node-v24-compatibility-meta.json` -- `packages/runtime/src/scr_island_manifest.h` -Change compiler decision sources or the implementation-owned compatibility manifests, then regenerate. Use `pnpm manifest` when compiler decision tables change and `pnpm node-compat` whenever the Node pin, compatibility manifests, compiler surface manifest, or dynamic registry changes. +Change compiler decision sources or the implementation-owned compatibility manifests, then regenerate. Use `pnpm manifest` when compiler decision tables change and `pnpm node-compat` whenever the Node pin, compatibility manifests, compiler surface manifest, changes. -The public docs artifact must not expose repository test paths, internal source identifiers, engineering evidence bookkeeping, documentation/metadata headings, command-line or configuration-only entries, or rows that are N/A in both tiers. Those remain in the complete internal census under `internal/compatibility/generated/`. +The public docs artifact must not expose repository test paths, internal source identifiers, engineering evidence bookkeeping, documentation/metadata headings, command-line or configuration-only entries, or rows that are N/A in the native tier. Those remain in the complete internal census under `internal/compatibility/generated/`. ### Landing compatibility work @@ -148,9 +146,9 @@ For each API family: 1. Start from the backlog action and verification basis. Verify every `registry-gap` before assuming code is missing. 2. Read the pinned Node documentation, stability metadata, relevant Node source when needed, and existing scriptc implementation paths. -3. Decide static-native and dynamic-island scope separately. +3. Define the native compilation scope. 4. Implement the smallest coherent behavior family. Preserve explicit refusals for unimplemented forms rather than silently diverging. -5. Add differential evidence that executes under Node and as a compiled binary. Cover stdout, stderr, exit status, success behavior, and important error shapes. Dynamic-island work needs island-executed differential fixtures; a load-only export check does not prove behavior. +5. Add differential evidence that executes under Node and as a compiled binary. Cover stdout, stderr, exit status, success behavior, and important error shapes. A load-only export check does not prove behavior. 6. Update the implementation-owned source or manifest. Positive `supported` and `partial` mappings must name existing test evidence. 7. Run `pnpm manifest` if compiler surface tables changed, then run `pnpm node-compat`. Never patch generated JSON or headers. 8. Inspect the internal ledger, public artifact, and backlog diff. Confirm the intended API family changed and unrelated rows did not. diff --git a/CHANGELOG.md b/CHANGELOG.md index 06e24f2d1..e51346686 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to scriptc will be documented in this file. ## Unreleased +- **Compilation is native-only.** The `--dynamic` option and embedded JavaScript execution runtime have been removed. Eligible dependencies compile natively by default; unsupported packages receive build diagnostics. QuickJS remains only in the native compiler's isolated `comptime` helper and as standalone regex/Unicode libraries. + ## 0.2.10 diff --git a/README.md b/README.md index 63f82e285..37ede28bc 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@ npm downloads per month: scriptc

-scriptc compiles TypeScript and JavaScript to native executables and WebAssembly. It uses TypeScript's type information to compile supported code to native instructions. Static builds run without Node.js or a JavaScript engine. +scriptc compiles TypeScript and JavaScript to native executables and WebAssembly. It uses TypeScript's type information to compile supported code to native instructions. Executables run without Node.js or a JavaScript engine. -For npm dependencies and `any`-typed code, enable `--dynamic` to include the embedded [quickjs-ng](https://github.com/quickjs-ng/quickjs) engine. Dependency JavaScript is included at build time. +Application code and eligible npm dependencies compile to native instructions. Unsupported operations produce diagnostics; there is no runtime JavaScript engine fallback. scriptc is experimental and supports a subset of JavaScript, TypeScript, and Node.js APIs. See the [limitations](https://scriptc.dev/docs/limitations) and [Node.js compatibility reference](https://scriptc.dev/compatibility) before using it for an existing project. @@ -51,7 +51,7 @@ hello, scriptc These examples use POSIX shell syntax. On Windows, build `hello.exe` and run it with `.\hello.exe`. -Use `scriptc coverage hello.ts` to check which operations compile statically, require dynamic execution, or are unsupported. See [coverage reports](https://scriptc.dev/docs/coverage) for details. +Use `scriptc coverage hello.ts` to check which operations compile statically and which operations are unsupported. See [coverage reports](https://scriptc.dev/docs/coverage) for details. ## Use Node APIs @@ -78,7 +78,7 @@ listening on http://localhost:8080 ## Use npm packages -Pass `--dynamic` to embed an npm package's JavaScript in the executable. The result does not read `node_modules` at runtime. +Eligible npm packages compile to native code by default. The executable does not read `node_modules` at runtime. Create `cli.ts`: @@ -90,12 +90,12 @@ console.log(pc.green("hello from scriptc")); ```console $ npm install picocolors -$ scriptc build cli.ts --dynamic -o cli +$ scriptc build cli.ts -o cli $ ./cli hello from scriptc ``` -Enabling `--dynamic` does not add support for unsupported statically typed calls. See [npm dependencies](https://scriptc.dev/docs/dependencies) for package resolution and the boundary between static and dynamic code. +Package support is partial. See [npm dependencies](https://scriptc.dev/docs/dependencies) for eligibility, package resolution, and compilation diagnostics. ## Documentation diff --git a/docs/content/docs/cli.mdx b/docs/content/docs/cli.mdx index 64abc94a8..56d20d1f0 100644 --- a/docs/content/docs/cli.mdx +++ b/docs/content/docs/cli.mdx @@ -12,10 +12,9 @@ Usage: scriptc build [options] compile to an executable or source artifact scriptc run [options] compile and run scriptc coverage how much compiles statically, and why not - scriptc coverage --dynamic what a --dynamic build compiles, and what still blocks it scriptc coverage --external-types type-resolve an embedder-provided module for analysis - scriptc cache warm [runtime|tls|dynamic…] verify and load precompiled runtime families + scriptc cache warm [runtime|tls…] verify and load precompiled runtime families for the current compiler/SDK/target ``` @@ -54,7 +53,7 @@ fib.s Different output kinds accumulate in `.scriptc/`; rebuilding a kind updates its file. -The IR and LLVM source outputs require only Node. On supported macOS, Linux, and Windows hosts, assembly and object outputs use the matching native helper installed with scriptc and do not invoke an external compiler, archiver, linker, or SDK. The object is a relocatable program object with undefined scr_* runtime symbols and a required scr_runtime_abi_v13 marker, not a standalone library. External consumption is experimental and requires the exact runtime version reported by --print=native-link-info. That option still writes the object, performs no link, and prints a versioned JSON recipe with the target, main entry, installed precompiled runtime pack, FFI inputs, and system libraries. It never reports private scriptc cache paths. See Native Program Objects for complete C-driver and direct-linker examples. --emit=exe is the default. LLVM builds emit the program object through the helper and link precompiled runtime objects; runtime development with AddressSanitizer compiles an instrumented C runtime. +The IR and LLVM source outputs require only Node. On supported macOS, Linux, and Windows hosts, assembly and object outputs use the matching native helper installed with scriptc and do not invoke an external compiler, archiver, linker, or SDK. The object is a relocatable program object with undefined scr_* runtime symbols and a required scr_runtime_abi_v14 marker, not a standalone library. External consumption is experimental and requires the exact runtime version reported by --print=native-link-info. That option still writes the object, performs no link, and prints a versioned JSON recipe with the target, main entry, installed precompiled runtime pack, FFI inputs, and system libraries. It never reports private scriptc cache paths. See Native Program Objects for complete C-driver and direct-linker examples. --emit=exe is the default. LLVM builds emit the program object through the helper and link precompiled runtime objects; runtime development with AddressSanitizer compiles an instrumented C runtime. ## scriptc run @@ -69,11 +68,11 @@ Note: `run` does not forward extra command-line arguments to the program. To pas ## scriptc coverage -Analyzes the program without producing a binary and reports, statement by statement, what compiles statically, what needs the embedded dynamic engine, and what blocks the rest. With `--dynamic` it answers a different question: what would a `--dynamic` build compile, and what still blocks it. Both forms are covered in depth in [Coverage Reports](/docs/coverage). +Analyzes the program without producing a binary and reports, statement by statement, what compiles to native code and what blocks the rest. Reports are covered in depth in [Coverage Reports](/docs/coverage). ## scriptc cache warm -Verifies and reads the installed precompiled runtime objects and vendor archives. Pass one or more of `runtime`, `tls`, and `dynamic` to select those families. Ordinary builds need no runtime compilation or installation-time warming. With `--sanitize`, this command builds instrumented runtime objects using the development C toolchain. +Verifies and reads the installed precompiled runtime objects and vendor archives. Pass one or more of `runtime` and `tls` to select those families. Ordinary builds need no runtime compilation or installation-time warming. With `--sanitize`, this command builds instrumented runtime objects using the development C toolchain. ## Options @@ -90,9 +89,6 @@ Verifies and reads the installed precompiled runtime objects and vendor archives
--fail-on <blockers|divergences>
Coverage only. Exit with status 1 when the entry has blockers that would fail a build, or with divergences, also when it has Node divergence warnings. See Gating builds and CI.
-
--dynamic
-
Embed the JavaScript engine to run npm dependencies and supported any-typed code. Static compilation is the default; without this flag, dynamic-tier sites produce compilation errors. See npm Dependencies.
-
--ffi <file>
Bind signature-only TypeScript declarations to native C ABI symbols and link the manifest's archive, object, and system-library inputs. See Native FFI.
@@ -112,10 +108,10 @@ Verifies and reads the installed precompiled runtime objects and vendor archives
On Linux, when the program calls process.exit(), hand the release of its memory to a helper process so the parent sees the exit sooner. The kernel otherwise frees the whole address space before the exit is reported, which takes tens of milliseconds per gigabyte. Opt in only where the trade-offs are acceptable: for up to about 100 ms after the exit, the helper keeps the executable mapped (overwriting the binary in place fails with "text file busy"), its memory stays charged to the cgroup, and the teardown CPU time no longer appears in the parent's resource usage. Valid only for executable builds; it has no effect on other platforms.
--npm-static <pkg[,pkg…]|auto>
-
EXPERIMENTAL. Compile the named npm packages' shipped JS statically as program modules instead of embedding them for the engine (repeatable; auto opts in every eligible direct import). A package the preflight refuses falls back to the island with a coverage-report note. See npm Dependencies for maturity notes.
+
Explicitly select npm packages for native compilation (repeatable). Naming a package overrides the automatic declaration-surface eligibility check; auto uses the default automatic selection. Refused packages produce diagnostics. See npm Dependencies for maturity notes.
--provenance-sources
-
EXPERIMENTAL. Compile npm dependencies from their provenance-attested source, fetched at the attested commit, as static program modules; packages without a usable attestation keep the engine path (a note, never a failure).
+
EXPERIMENTAL. Compile npm dependencies from their provenance-attested source, fetched at the attested commit, as static program modules; packages without a usable attestation keep the installed-source compilation path.
--external-types <specifier=file.d.ts>
Coverage only. Map an exact bare module specifier to a local declaration file supplied by an embedder. Repeat the option for multiple modules. The declaration supplies checker types so application coverage can continue; runtime imports and values remain explicit SC1010 blockers. Relative paths resolve from the current working directory. Accepted files end in .d.ts, .d.mts, or .d.cts.
diff --git a/docs/content/docs/coverage.mdx b/docs/content/docs/coverage.mdx index f29eecae5..3a91a28e7 100644 --- a/docs/content/docs/coverage.mdx +++ b/docs/content/docs/coverage.mdx @@ -2,13 +2,11 @@ title: "Coverage Reports" --- -`scriptc coverage` analyzes a program without building an executable. It reports how many executable statements compile statically, which operations require the embedded JavaScript engine, and which operations are unsupported. +`scriptc coverage` analyzes a program without building an executable. It reports how many executable statements compile to native code and groups unsupported operations by diagnostic code. Counts describe the program being analyzed, not JavaScript or Node.js support in general. -The counts apply to the program being analyzed, not to JavaScript or Node.js support in general. Dependency implementation statements are excluded from these totals. + -## Static programs - -The following program compiles entirely to native code: +## A native program ```console $ cat hello.ts @@ -20,148 +18,43 @@ $ scriptc coverage hello.ts statements analyzed 2 compile statically 2 (100%) - fully static — this program has no dynamic remainder. + fully static — all analyzed statements compile to native code. ``` -A static executable does not include a JavaScript engine. + -## Programs that require dynamic execution +## Reading the report -This program imports an npm package whose JavaScript requires the embedded engine: - -```console -$ cat cli.ts -import pc from "picocolors"; - -console.log(pc.green("hello")); - -$ scriptc coverage cli.ts - - statements analyzed 1 - compile statically 0 (0%) - - runs with --dynamic 2 sites (embeds a JS engine, ~620KB — static stays the default) - ×1 SC2013 importing 'picocolors' requires the embedded dynamic engine, which this build does not include — the package's implementation runs there - at cli.ts:1:1 - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - ×1 SC2013 values from the 'picocolors' package run in the embedded dynamic engine, which this build does not include - at cli.ts:3:13 - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine -``` - -Each group collects the sites that share one root cause: the same code and message, with type arguments of generic instantiations collapsed, so one uncompilable declaration reported through several instantiations appears once. The `at` line lists the first sites in source order, and every group carries a hint. - -The package must be installed before analysis; the quickstart shows [how to install and use it](/docs/quickstart#use-an-npm-dependency). - -### Report fields +Each blocker group collects the sites that share one root cause: the same code and message, with type arguments of generic instantiations collapsed, so one uncompilable declaration reported through several instantiations appears once. The `at` line lists the first sites in source order, and every group carries a hint. - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + +
FieldMeaning
FieldMeaning
statements analyzedExecutable statements in the program, excluding dependency implementation code.
compile staticallyStatements that compile to native code.
runs with --dynamicSites that require the embedded engine. Without --dynamic, these sites are compilation errors. Site counts can differ from statement counts.
blockersUnsupported operations, listed with a count, diagnostic code, reason, locations, and hint. Enabling --dynamic does not resolve these blockers.
in unreached codeBlockers in code the entry never reaches. A build never compiles that code, so these cannot fail it.
differs from NodeSites that compile but can behave differently from Node.js. See Node divergences.
statements analyzedExecutable statements in application code, excluding dependency implementation code.
compile staticallyStatements that compile to native instructions.
blockersUnsupported operations with counts, diagnostic codes, reasons, locations, and hints.
in unreached codeBlockers in code the entry never reaches. A build never compiles that code, so these cannot fail it.
differs from NodeSites that compile but can behave differently from Node.js. See Node divergences.
npm package compilationNative package compilation outcomes and refusal reasons.
+Unreached code and deferred JavaScript operations are reported separately. A deferred operation can remain in a compiled package, but executing it raises a runtime error. A successful build therefore does not establish compatibility for every package API. + The statement totals include the bodies of functions whose signatures cannot compile. Their statements count as not static, so the percentage reflects how much of the program compiles. -## Analyze with --dynamic - -Add `--dynamic` to include dynamic execution in the analysis: - -```console -$ cat cli.ts -import pc from "picocolors"; - -console.log(pc.green("hello")); - -$ scriptc coverage cli.ts --dynamic - - statements analyzed 1 - compile statically 0 (0%) - compile dynamically 1 (100%) (island sites — the embedded engine runs them) - - builds with --dynamic — no remaining blockers (the island sites above run in the embedded engine). -``` - -The final line indicates whether the program can build with `--dynamic`. Any remaining blockers are listed in the report. - -## Embedded Node.js builtins - -When embedded dependencies import Node.js builtin modules, the dynamic report lists each module, its shim status, and the package that imports it. - -The [commander example](/docs/dependencies#use-a-package) uses the following source: - -```console -$ cat tool.ts -import { Command } from "commander"; - -const program = new Command(); - -program - .name("greet") - .argument("", "who to greet") - .option("-u, --upper", "use uppercase") - .action((name: string, opts: { upper?: boolean }) => { - const text = `hello, ${name}`; - console.log(opts.upper ? text.toUpperCase() : text); - }); - -program.parse(); - -$ scriptc coverage tool.ts --dynamic - - statements analyzed 5 - compile statically 2 (40%) - compile dynamically 3 (60%) (island sites — the embedded engine runs them) - - embedded npm code imports Node builtins: - node:child_process shimmed (commander) - node:events shimmed (commander) - node:fs shimmed (commander) - node:path shimmed (commander) - node:process shimmed (commander) - node:util shimmed (commander) - - builds with --dynamic — no remaining blockers (the island sites above run in the embedded engine). -``` - -Shims provide supported Node.js APIs inside the embedded engine. They are separate implementations from Node.js's modules. See [npm Dependencies](/docs/dependencies#runtime-behavior) and the [Node.js compatibility reference](/compatibility) for their restrictions. + + + ## Diagnostic codes Coverage uses the same diagnostic codes as `scriptc build`. Common examples include: -- `SC2020`: a declared standard-library or Node.js API has no supported compiler implementation. Use the diagnostic's suggested alternative where available. -- `SC2013`: a package import or package value requires the embedded engine. Enable `--dynamic`, remove the dependency, or evaluate the experimental [static package options](/docs/dependencies#static-package-compilation-experimental). -- `SC1100`: a value crosses an unsupported `unknown`/`any` boundary. Narrow or cast the value as directed by the diagnostic. +- `SC2020`: a declared standard-library or Node.js API has no supported compiler implementation. +- `SC2012`: this API form cannot compile natively. +- `SC2013`: a package cannot compile natively; inspect the package-specific reason and the [dependency guide](/docs/dependencies). +- `SC1100`: a value crosses an unsupported checked-value boundary. Narrow or cast the value as directed by the diagnostic. ## Node divergences @@ -257,11 +150,11 @@ An unchanged program reuses the previous verdict: coverage records the files and stats - Coverage only, absent after a preflight failure: the report's statement counts. + Coverage only, absent after a preflight failure: the report's statement counts. statementsDynamic is always 0 and remains for schema compatibility. category - invalid-source (the program has a TypeScript or JSON error), unsupported (valid code scriptc cannot compile yet), dynamic-only (compiles with --dynamic), divergence (compiles, but can behave differently from Node.js), environment (project configuration, scriptc's type world, toolchain, or target), or internal (a compiler bug). + invalid-source (the program has a TypeScript or JSON error), unsupported (valid code scriptc cannot compile yet), divergence (compiles, but can behave differently from Node.js), environment (project configuration, scriptc's type world, toolchain, or target), or internal (a compiler bug). severity diff --git a/docs/content/docs/dependencies.mdx b/docs/content/docs/dependencies.mdx index de57ce909..61393d337 100644 --- a/docs/content/docs/dependencies.mdx +++ b/docs/content/docs/dependencies.mdx @@ -2,9 +2,7 @@ title: "npm Dependencies" --- -scriptc can embed an npm package's JavaScript and execute it inside the compiled binary. Enable this behavior with `--dynamic`. Dependency code runs in [quickjs-ng](https://github.com/quickjs-ng/quickjs), while supported statically typed application code compiles to native code. - -The embedded engine is also called the dynamic island. It has its own heap and job queue. Values crossing back into static types are validated at runtime. +scriptc compiles eligible npm dependencies to native code alongside your application. Package support is partial: unsupported packages and operations receive diagnostics, and there is no runtime JavaScript engine fallback. ## Use a package @@ -31,53 +29,33 @@ Install the dependency, then build and run the executable: ```console $ npm install commander -$ scriptc build tool.ts --dynamic -o greet >/dev/null +$ scriptc build tool.ts -o greet >/dev/null $ ./greet ada --upper HELLO, ADA ``` -The callback body compiles statically. The `commander` implementation runs in the embedded engine. Use [`scriptc coverage --dynamic`](/docs/coverage#analyze-with-dynamic) to inspect a program's static and dynamic statement counts and the builtin modules its dependencies import. +Both the callback and the package implementation compile to native instructions. Use [coverage reports](/docs/coverage) to inspect package compilation and deferred operations. -## Package resolution and embedding + + + -The compiler resolves packages from `node_modules` using Node.js package resolution, including `package.json` export conditions. Shipped or installed type declarations provide the types used to check application code. +## Package resolution -The package's JavaScript and its resolved imports are embedded at build time. The executable does not load `node_modules` at runtime. Deploy it to a machine compatible with the build's target platform. +The compiler resolves dependencies from `node_modules` using Node.js package resolution, including `package.json` export conditions. It recursively compiles eligible dependencies. The executable does not load `node_modules` at runtime. -Packages can also expose TypeScript runtime entries (`.ts`, `.mts`, or `.cts`). The compiler emits JavaScript before collecting and embedding runtime imports, removing type annotations and type-only bindings. `import type` and `export type` declarations do not add runtime dependencies. See [Limitations](/docs/limitations#embedded-javascript-engine) for package source restrictions. +Automatic selection requires readable runtime source and a package-owned declaration surface. Packages that fail eligibility or preflight receive a package-specific diagnostic. TypeScript workspace entries compile as program modules, including `.js` specifiers that resolve to `.ts` sources. -Workspace packages with a TypeScript executable entry compile as program modules, including `.js` import specifiers that resolve to `.ts` source. Workspace packages with JavaScript executable entries use the same policy as other JavaScript dependencies: execute them with `--dynamic`, or attempt static compilation with `--npm-static`. + + + -## Runtime behavior +## Explicit package selection -### Engine and builtin modules +`--npm-static ` remains available for explicit selection. Naming a package overrides the automatic declaration-surface eligibility check, allowing an attempt to compile packages that rely on separately installed declarations or inferred JavaScript types. `auto` uses the default automatic selection. Neither form bypasses compilation checks. -Node.js builtin modules are provided by shims, some of which bridge to the native runtime. Each shim has a supported subset; the [coverage report](/docs/coverage#embedded-nodejs-builtins) lists the modules reached by the dependency graph, and the [compatibility reference](/compatibility) lists API support. - -The engine is created lazily on first use, with one engine per process. A `--dynamic` build that does not use the engine emits the same code as a static build. Supported `any`-typed expressions also execute in the engine when `--dynamic` is enabled. - -### Value conversion - -Values passed between static and dynamic code are copied. Mutations to a copied value in one execution tier do not change the original in the other tier. This differs from ordinary JavaScript reference sharing. - -Typed callback parameters and values returned to static code are validated. If the package supplies a value that does not match the expected type, the conversion throws a catchable `TypeError`. See [Limitations](/docs/limitations) for runtime differences and restrictions on values that can cross the boundary. - -## Static package compilation (experimental) - -`--npm-static ` attempts to compile packages' shipped JavaScript as static program modules, using their type declarations. Named packages are selected explicitly; `auto` selects eligible direct imports. - -Support is partial. An accepted package may contain deferred operations: the build succeeds and coverage lists those sites, but executing an unsupported deferred operation raises a runtime error. A package rejected during preflight falls back to the embedded engine with a coverage note; that path requires `--dynamic`. Other unsupported forms can still prevent a static build. - -Check the coverage report for each package before depending on static execution. +An accepted package may contain deferred operations: the build succeeds and coverage lists those sites, but executing an unsupported deferred operation raises a runtime error. Review the coverage report and test the paths your application uses. See [Limitations](/docs/limitations) for native runtime differences. ## Provenance sources (experimental) -`--provenance-sources` attempts to compile a package from source at its npm provenance-attested commit. This allows TypeScript source to compile as TypeScript instead of compiling the published JavaScript. - -Packages without usable attestations retain the embedded-engine path, with a note. This option has the same partial-support restrictions as `--npm-static`. - -## Type declarations and boundary restrictions - -Packages require shipped or installed type declarations. If TypeScript reports that it cannot find a declaration file, install the corresponding `@types` package or add a local declaration. - -Class instances and promises cannot pass into `any` slots in the engine. Closures can cross as host functions only in supported forms. Unsupported conversions produce compilation diagnostics with guidance where available. +`--provenance-sources` attempts to compile a package from source at its npm provenance-attested commit. This allows TypeScript source to compile as TypeScript instead of compiling the published JavaScript. Packages without usable attestations keep their installed-source compilation path, subject to the same native eligibility and compilation checks. diff --git a/docs/content/docs/how-it-works.mdx b/docs/content/docs/how-it-works.mdx index 5fcd664a8..d08405266 100644 --- a/docs/content/docs/how-it-works.mdx +++ b/docs/content/docs/how-it-works.mdx @@ -68,14 +68,14 @@ Without `-o`, artifacts are written to `.scriptc/` next to the input. Different ### External linking -Program objects define `main` and leave selected `scr_*` runtime functions undefined. A strong reference to `scr_runtime_abi_v13` checks runtime compatibility at link time. +Program objects define `main` and leave selected `scr_*` runtime functions undefined. A strong reference to `scr_runtime_abi_v14` checks runtime compatibility at link time. `--print=native-link-info` emits the program object and a JSON recipe containing the runtime pack and link order for external builds. This object ABI is experimental and requires an exact runtime version. See [Native Program Objects](/docs/native-objects) for examples. ## Native runtime -- **Memory:** Values use reference counting. Acyclic values are freed when their last reference is released, and a cycle collector runs at defined collection points. Some cycles involving opaque native values or the embedded engine can remain allocated. -- **Concurrency:** `async`/`await` uses stackful fibers. The native event loop schedules microtasks, timers, and I/O, using kqueue on macOS and epoll on Linux. Static tasks and embedded-engine jobs use separate queues; their interleaving can differ from Node.js. +- **Memory:** Values use reference counting. Acyclic values are freed when their last reference is released, and a cycle collector runs at defined collection points. Some cycles involving opaque native values can remain allocated. +- **Concurrency:** `async`/`await` uses stackful fibers. The native event loop schedules microtasks, timers, and I/O, using kqueue on macOS and epoll on Linux. - **Networking:** Supported `net`, `http`, `https`, `tls`, `dgram`, and `dns` APIs use native implementations. TLS uses vendored mbedTLS. - **Numbers:** Values use JavaScript's double-precision representation. Number-to-string formatting uses shortest-roundtrip output and is tested against Node.js. - **Regular expressions:** The runtime uses QuickJS's regular-expression bytecode interpreter, linked into programs that use regex operations. @@ -90,11 +90,11 @@ The sanitizer lane runs the corpus with AddressSanitizer and a reference-count a Test coverage provides evidence for the cases exercised. It does not establish complete compatibility with Node.js. -## Embedded JavaScript engine + -`--dynamic` includes quickjs-ng for npm dependencies and supported `any`-typed code. The engine has its own heap and microtask queue. Conversions between static and dynamic values copy data, and conversions to static types validate it at runtime. A mismatched value raises a catchable `TypeError`. +## JavaScript at build time -See [npm Dependencies](/docs/dependencies) for package execution, value conversion, and experimental static package options. +Application and dependency code compile to native instructions. The compiler retains an isolated JavaScript evaluator for `comptime`; its results become native literals. The native compiler uses QuickJS for that build-time evaluator. The runtime retains QuickJS-derived regular-expression and Unicode libraries without linking the JavaScript execution engine into application binaries. ## Repository layout @@ -116,7 +116,7 @@ See [npm Dependencies](/docs/dependencies) for package execution, value conversi packages/runtime - C runtime, reference counting and cycle collection, fibers, event loop, networking, and engine integration. + C runtime, reference counting and cycle collection, fibers, event loop, networking,. packages/runtime-* diff --git a/docs/content/docs/index.mdx b/docs/content/docs/index.mdx index 2fb30fc65..9de7b6c7e 100644 --- a/docs/content/docs/index.mdx +++ b/docs/content/docs/index.mdx @@ -2,9 +2,9 @@ title: "Introduction" --- -scriptc compiles TypeScript and JavaScript to native executables and WebAssembly. It uses TypeScript's type information to compile supported code directly to native instructions. Static builds run without Node.js or a JavaScript engine. +scriptc compiles TypeScript and JavaScript to native executables and WebAssembly. It uses TypeScript's type information to compile supported code directly to native instructions. Executables run without Node.js or a JavaScript engine. -For npm dependencies and `any`-typed code, enable `--dynamic` to include an embedded JavaScript engine. Use [coverage reports](/docs/coverage) to check which parts of a program compile statically, require the engine, or are unsupported. +Eligible npm dependencies compile to native code alongside application code. Use [coverage reports](/docs/coverage) to check which operations compile and which are unsupported. ## Compile a program @@ -34,34 +34,11 @@ $ ./fib See [Quickstart](/docs/quickstart) for installation and platform requirements. -## Compilation modes + -scriptc classifies operations into three tiers: +## Native compilation - - - - - - - - - - - - - - - - - - - - - -
TierBehavior
StaticCompiles to native code. This is the default mode.
DynamicRuns in the embedded quickjs-ng engine when --dynamic is enabled. This includes npm packages' shipped JavaScript and supported uses of any.
RejectedProduces a compilation diagnostic with an SC code, source location, and rewrite hint where available.
- -Enabling `--dynamic` does not add support for unsupported statically typed calls. The [npm dependencies guide](/docs/dependencies) explains package execution and the boundary between static and dynamic code. +scriptc compiles supported TypeScript and JavaScript to native instructions. It has no runtime JavaScript engine fallback. The [npm dependencies guide](/docs/dependencies) explains package eligibility and diagnostics. ## Language and API support @@ -72,7 +49,7 @@ Static compilation includes supported forms of: - Strings, BigInts, arrays, Maps, Sets, JSON, Math, typed arrays, and Buffers. - Node.js filesystem, path, process, child-process, crypto, timer, and networking APIs. -These features have API-specific restrictions. The [Node.js compatibility reference](/compatibility) lists static and dynamic API support, and [Limitations](/docs/limitations) describes compilation restrictions and runtime differences from Node.js. +These features have API-specific restrictions. The [Node.js compatibility reference](/compatibility) lists native API support, and [Limitations](/docs/limitations) describes compilation restrictions and runtime differences from Node.js. Programs are checked against the `es2025` standard library and scriptc's ambient declarations. Project declarations such as `@types/node` participate when available, and `tsconfig.json` controls checker strictness. @@ -116,6 +93,6 @@ HELLO - [Quickstart](/docs/quickstart): install the CLI and build an executable. - [CLI Reference](/docs/cli): commands and compiler options. -- [Coverage Reports](/docs/coverage): identify dynamic operations and compilation blockers. +- [Coverage Reports](/docs/coverage): identify compilation blockers. - [npm Dependencies](/docs/dependencies): use packages in compiled programs. - [How It Works](/docs/how-it-works): compiler stages, runtime, and testing. diff --git a/docs/content/docs/limitations.mdx b/docs/content/docs/limitations.mdx index 5fb32a984..0dd56eadc 100644 --- a/docs/content/docs/limitations.mdx +++ b/docs/content/docs/limitations.mdx @@ -4,7 +4,7 @@ title: "Limitations" scriptc supports a subset of JavaScript, TypeScript, and Node.js APIs. This page describes current compilation limits and runtime behavior that differs from Node.js. -Use [`scriptc coverage`](/docs/coverage) to identify unsupported operations in your program. `scriptc build` reports compilation errors with `SC` codes, source locations, and rewrite hints where available. The [Node.js compatibility reference](/compatibility) lists API support separately for static code and code running in the embedded JavaScript engine. Enabling `--dynamic` does not add support for an unsupported statically typed call. +Use [`scriptc coverage`](/docs/coverage) to identify unsupported operations in your program. `scriptc build` reports compilation errors with `SC` codes, source locations, and rewrite hints where available. The [Node.js compatibility reference](/compatibility) lists native API support. ## Native debugging @@ -12,7 +12,7 @@ Executable builds with `--optimization=dev` support source breakpoints and nativ Debugger values use native representations. Numbers and booleans display directly. Strings expose their `ScrStr` layout, including UTF-8 `data` and byte `len`; tagged unions expose their `tag` and `slot` fields. Other heap values and scalar bindings captured before initialization can appear as opaque pointers. -TypeScript expression evaluation, JavaScript object formatting, and stepping through code in the embedded JavaScript engine are not supported. +TypeScript expression evaluation, JavaScript object formatting are not supported. ## Static compilation @@ -24,16 +24,16 @@ The following sections describe supported forms and their remaining restrictions - **Class reflection:** `JSON.stringify` and `Object.keys` require every declared field to have a representation that can pass through runtime-checked storage. They raise an error for classes with opaque fields such as native Maps. Class fields, inherited accessors, and added properties retain identity through untyped values. - **Method values:** Borrowing a class method onto an unrelated object is unsupported. Detached methods that use `this`, builtin method values, abstract declarations, unspecialized generic methods, and incompatible override signatures produce runtime errors or compilation diagnostics. Supported class methods can be stored and passed as unbound functions. A field call supplies its containing instance as `this`; `call`, `apply`, and `bind` work when the signature supports runtime-checked conversion. Extracted overrides retain the selected method, and receiver validation accepts the declaring class and its subclasses. - **Loose equality:** Object-to-primitive `==` and `!=` comparisons are unsupported because `valueOf` and `toString` can execute user code. Convert the object explicitly before comparing. Comparisons between represented primitives and primitive unions support number, string, boolean, and BigInt coercions, including `x == null` and `x != null`. -- **Resource disposal:** Top-level and switch-clause `using` declarations, disposal through an engine-held package value, and `DisposableStack` constructors are unsupported. Block- and function-scoped `using` and `await using` support compiled classes with zero-parameter disposal methods and supported FileHandle, timer, immediate, child-process, and readline handles. Array `for (using ... of ...)` loops also compile. Caught `SuppressedError` values expose `name` and `message`, but not `error` or `suppressed` payloads. +- **Resource disposal:** Top-level and switch-clause `using` declarations, and `DisposableStack` constructors are unsupported. Block- and function-scoped `using` and `await using` support compiled classes with zero-parameter disposal methods and supported FileHandle, timer, immediate, child-process, and readline handles. Array `for (using ... of ...)` loops also compile. Caught `SuppressedError` values expose `name` and `message`, but not `error` or `suppressed` payloads. - **Async iteration:** Async `yield*` delegation, stored Web or Node iterator handles, and general structural async-iterator objects are unsupported. Typed async generators support lazy execution, `await`, direct `yield`, queued `.next()`/`.return()`/`.throw()` requests, and `for await`. `for await` also accepts Node `Readable` streams, Web `ReadableStream` values, and compiled class iterators whose zero-parameter `next()` returns a promise of a `{ value, done? }` record. Abrupt completion runs cleanup, including literal `destroyOnReturn` and `preventCancel` options. The `node:timers/promises` `setInterval(delay, value)` iterator compiles without AbortSignal options. - **Generics:** Generic functions declared inside other functions, generic class expressions, and generic methods requiring dynamic dispatch are unsupported. Generic classes can extend generic bases when each specialization has a concrete layout. Independent concrete uses have no specialization-count limit; recursively expanding demands and type layouts produce diagnostics. Other generic calls compile when the target resolves statically. Generic function values require a concrete signature at use and a binding that is never reassigned. - **Function values:** Immutable aliases of overloaded program functions retain per-call overload resolution and identity. A function stored in a slot with a different signature remains the same function for equality, array searches, `length`, and own properties. Typed rest-parameter functions can be stored and called indirectly. Builtin function values have API-specific restrictions; see [Builtin function values](#builtin-function-values). -- **Argument spreads:** Non-empty fixed tuples can spread into fixed signatures; arrays, Sets, and compiled class iterables can spread into typed rest parameters. Runtime-length spreads into fixed or rest parameters require types that support checked `unknown` conversion. Other JavaScript calls use the checked-value or embedded-engine path; unsupported static forms produce a diagnostic. Calls with no native parameter slot are unsupported for runtime-length spreads. Arguments evaluate once, in source order, before defaults run, including surplus arguments. -- **Dynamic imports:** Computed specifiers, import attributes, CommonJS namespace synthesis, and imports of shipped JavaScript packages are unsupported in static code or require `--dynamic`. Literal `import()` of compiled ESM/TypeScript modules and supported Node builtins compiles without the engine. Evaluation is lazy and microtask-delayed, top-level `await` is honored, repeated imports share namespace identity, exported mutable bindings stay live, and namespace keys use Node's sorted order. +- **Argument spreads:** Non-empty fixed tuples can spread into fixed signatures; arrays, Sets, and compiled class iterables can spread into typed rest parameters. Runtime-length spreads into fixed or rest parameters require types that support checked `unknown` conversion. Other JavaScript calls use the checked-value path; unsupported static forms produce a diagnostic. Calls with no native parameter slot are unsupported for runtime-length spreads. Arguments evaluate once, in source order, before defaults run, including surplus arguments. +- **Dynamic imports:** Computed specifiers, import attributes, CommonJS namespace synthesis, and imports of shipped JavaScript packages are unsupported unless the target is a compiled ESM module. Literal `import()` of compiled ESM/TypeScript modules and supported Node builtins compiles without the engine. Evaluation is lazy and microtask-delayed, top-level `await` is honored, repeated imports share namespace identity, exported mutable bindings stay live, and namespace keys use Node's sorted order. ### Types and class definitions -- **BigInt:** `BigInt64Array`, `BigUint64Array`, BigInt filesystem stats, and native BigInts crossing into the embedded engine are unsupported. Arbitrary-precision BigInts otherwise support literals, operators, conversions, arrays, records, classes, closures, unions, promises, typed Map keys and Set elements, Buffer 64-bit reads/writes, and DataView 64-bit access. Native `unknown` and JavaScript `any` storage preserve BigInts, including checked Map keys and Set elements. JSON serialization throws a `TypeError` unless a replacer converts the value. +- **BigInt:** `BigInt64Array`, `BigUint64Array`, BigInt filesystem stats are unsupported. Arbitrary-precision BigInts otherwise support literals, operators, conversions, arrays, records, classes, closures, unions, promises, typed Map keys and Set elements, Buffer 64-bit reads/writes, and DataView 64-bit access. Native `unknown` and JavaScript `any` storage preserve BigInts, including checked Map keys and Set elements. JSON serialization throws a `TypeError` unless a replacer converts the value. - **Interfaces:** Interfaces explicitly implemented by compiled classes retain live object identity through checked native values. Method-signature interfaces and callable-property interfaces structurally implemented by class methods use the same representation. Other data interfaces retain native record layouts and their copy-coercion rules. Generic methods require a statically resolved body; a `const` interface binding initialized directly with `new` can keep the concrete class for specialization. Unsupported member representations produce diagnostics. - **Record shapes:** Records use exact native layouts. Passing `{ a, b }` where `{ a }` is expected can produce `SC2002`. Accepted flows into a strict field-subset shape copy the record; see [Record identity and property order](#record-identity-and-property-order). - **Unions:** Narrow a union before an operation whose members require incompatible native representations, such as reading `u.length` on `string | string[]`. Some union-to-union widening and unions combining function and data members are unsupported. Same-representation methods on class unions, `map` and `forEach` on array unions, and shared or joinable field reads compile. `console.log(u)` supports printing a whole union. @@ -54,12 +54,12 @@ const results = await Promise.all(jobs); // number[] A declaration in the standard library does not guarantee that an API compiles. Unsupported declared APIs produce `SC2020`, with alternatives where available. Check the [Node.js compatibility reference](/compatibility) for API-level support. -- **Text encoding:** `TextEncoder` and `TextDecoder` can be stored in fields, arguments, return values, arrays, and closures. Encoding supports UTF-8, including `encodeInto` into a Uint8Array or Buffer view. Codec properties expose the canonical encoding and decoder flags. Decoding accepts recognized WHATWG labels, including runtime labels and omitted or undefined encodings. Literal constructor options support `fatal` and `ignoreBOM`; literal decode options support streaming UTF-8, UTF-16, and single-byte encodings. Other legacy streaming encodings, runtime options objects, inspection, JSON/engine conversion, and module-scope declarations using `var` or lacking an initializer are unsupported. Use initialized `let` or `const` bindings for stored codecs. Byte arrays passed from native code into embedded packages are copied; writes inside the package do not update the original native array. +- **Text encoding:** `TextEncoder` and `TextDecoder` can be stored in fields, arguments, return values, arrays, and closures. Encoding supports UTF-8, including `encodeInto` into a Uint8Array or Buffer view. Codec properties expose the canonical encoding and decoder flags. Decoding accepts recognized WHATWG labels, including runtime labels and omitted or undefined encodings. Literal constructor options support `fatal` and `ignoreBOM`; literal decode options support streaming UTF-8, UTF-16, and single-byte encodings. Other legacy streaming encodings, runtime options objects, inspection, JSON conversion, and module-scope declarations using `var` or lacking an initializer are unsupported. Use initialized `let` or `const` bindings for stored codecs. - **EventEmitter:** Literal event names use fixed argument tuples. Computed string names require a constant prefix or suffix that excludes `error`, meta events, and stream-internal events; their arguments must match the exact arity and support checked conversion. Unrestricted names, symbols, names that may reach internal events, and typed `listeners()`/`rawListeners()` results for names with possible computed registrations are unsupported. - **CommonJS metadata:** The module graph is fixed at build time. Cache deletion or reloading, metadata writes, `module.paths` mutation, and `require.extensions` are unsupported. Read-only access to `module.id`, `filename`, `path`, `paths`, `loaded`, `isPreloading`, `parent`, `children`, `require.main`, and `require.cache` lookup/enumeration compiles. -- **ESM metadata:** Native `import.meta.url`, `filename`, `dirname`, and `main` support dot access, statically known keys, and destructuring selected fields. Storing or mutating the metadata object, rest bindings, runtime keys, and stored `resolve` callbacks are unsupported. Native `import.meta.resolve()` requires a literal specifier. Embedded file modules provide mutable metadata with escaped file URLs and module-relative resolution. Embedded module instances distinguished by URL query strings or fragments are unsupported. +- **ESM metadata:** Native `import.meta.url`, `filename`, `dirname`, and `main` support dot access, statically known keys, and destructuring selected fields. Storing or mutating the metadata object, rest bindings, runtime keys, and stored `resolve` callbacks are unsupported. Native `import.meta.resolve()` requires a literal specifier. Module instances distinguished by URL query strings or fragments are unsupported. - **Date:** Date unions, year/month constructors, setters, statically typed TypeScript identity comparisons, thrown Date values, and locale/string formatters are unsupported. Zero-argument and single number/string constructors, storage and passing, `getTime`, `valueOf`, `toISOString`, calendar getters, `getTimezoneOffset`, and single-string `Date.parse` compile. JavaScript Dates retain identity through checked storage and support Date-copy construction and JSON serialization. See [Dates and timezones](#dates-and-timezones) for parsing restrictions. -- **URL:** Non-ASCII or percent-escaped hosts are unsupported. Absolute inputs and relative inputs with runtime string or URL bases, including optional bases, compile. `URL.canParse`, `URL.parse`, `toString()`, and `toJSON()` compile; the factories use the same parser as construction, returning `false` or `null` for rejected inputs while preserving conversion errors. `href`, `protocol`, `username`, `password`, `host`, `hostname`, `port`, `pathname`, `search`, and `hash` support assignment in native and embedded code. Invalid component writes are ignored except for invalid `href` values, which throw; credentials are percent-encoded and ports accept valid leading digits. Native URL assignments require statically known property keys; `+=` accepts primitive operands, while other assignment operators and object operands for `+=` are refused. `origin` is read-only. `searchParams` is a live view whose identity survives query and URL replacement. Opaque paths retain their input bytes without WHATWG C0 encoding. +- **URL:** Non-ASCII or percent-escaped hosts are unsupported. Absolute inputs and relative inputs with runtime string or URL bases, including optional bases, compile. `URL.canParse`, `URL.parse`, `toString()`, and `toJSON()` compile; the factories use the same parser as construction, returning `false` or `null` for rejected inputs while preserving conversion errors. `href`, `protocol`, `username`, `password`, `host`, `hostname`, `port`, `pathname`, `search`, and `hash` support assignment in native code. Invalid component writes are ignored except for invalid `href` values, which throw; credentials are percent-encoded and ports accept valid leading digits. Native URL assignments require statically known property keys; `+=` accepts primitive operands, while other assignment operators and object operands for `+=` are refused. `origin` is read-only. `searchParams` is a live view whose identity survives query and URL replacement. Opaque paths retain their input bytes without WHATWG C0 encoding. - **Filesystem flags:** `fs.openSync` supports inline bitwise OR expressions of `O_RDONLY`, `O_WRONLY`, `O_RDWR`, `O_CREAT`, `O_EXCL`, `O_NOFOLLOW`, `O_NONBLOCK`, `O_TRUNC`, and `O_APPEND`, with an optional creation mode. Computed numeric flags are unsupported because bit values vary by target. `fstatSync`, `fchmodSync`, `fsyncSync`, and `linkSync` support direct calls. On Windows, numeric opens with `O_NOFOLLOW` and calls to `fchmodSync` throw `ENOSYS`; use a POSIX target if you require these operations. - **FileHandle and descriptor I/O:** Static reads and writes accept Buffer and Uint8Array windows, numeric positions, and UTF-8 strings. FileHandle reads also accept options records and allocate a buffer when omitted. Vector I/O, truncation, syncing, and permission changes compile. FileHandle streams, `readLines`, ownership changes, timestamps, and bigint Stats remain unsupported. Dynamic descriptor I/O accepts other ArrayBuffer views and Buffer encodings; read positions outside the safe integer range are refused. File operations complete synchronously before their callbacks or promise continuations. Descriptor permission changes on Windows throw `ENOSYS`. - **Crypto:** Hashing, HMAC, PBKDF2, and HKDF support MD5, SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512. Scrypt supports its default parameters, numeric options, aliases, and memory limit. Both KDFs accept strings, Buffers, numeric typed arrays, DataViews, and fixed-length ArrayBuffers. KeyObject inputs, other digests, and cipher or public-key operations remain unsupported. Native derivations finish before their deferred callbacks, so computation blocks the caller. @@ -86,9 +86,9 @@ Some builtins can be stored and passed as functions: Other immutable aliases of table-backed Node builtins support direct calls, but cannot be passed elsewhere. `util.promisify` supports compile-time conversions of `child_process.execFile` and UTF-8 `fs.readFile`. -`util.styleText` supports standard formats and aliases, arrays of formats, nested ANSI resets, and explicit color enabling with `{ validateStream: false }`. Native calls accept standard process streams; custom native streams and mutations to `util.inspect.colors` remain unsupported. Embedded calls use the stream and terminal metadata supplied by the embedded runtime. +`util.styleText` supports standard formats and aliases, arrays of formats, nested ANSI resets, and explicit color enabling with `{ validateStream: false }`. Native calls accept standard process streams; custom native streams and mutations to `util.inspect.colors` remain unsupported. -`util.isDeepStrictEqual` supports primitives, ordinary records and arrays, cycles, enumerable string and symbol properties, and byte views in static code. Its optional third argument skips prototype and constructor comparisons. Structural comparisons of native Maps, Sets, class instances, Errors, proxies, accessor properties, and function-valued own `constructor` properties remain refused. Comparisons running inside the embedded JavaScript engine support a wider range of object and collection types. +`util.isDeepStrictEqual` supports primitives, ordinary records and arrays, cycles, enumerable string and symbol properties, and byte views in static code. Its optional third argument skips prototype and constructor comparisons. Structural comparisons of native Maps, Sets, class instances, Errors, proxies, accessor properties, and function-valued own `constructor` properties remain refused. Synchronous and promise filesystem APIs with trailing arguments that affect behavior remain call-only. This includes writers, open, directory creation/removal, metadata readers, and directory readers. Passing them as values could discard modes, flags, encodings, or options during function-signature adaptation. @@ -102,7 +102,7 @@ Workers support `online`, `message`, `error`, and `exit` events, `postMessage`, SharedArrayBuffer storage is fixed-length. Atomics supports integer `load`, `store`, `exchange`, `compareExchange`, `add`, `sub`, `and`, `or`, and `xor` over 8-, 16-, and 32-bit integer arrays. `wait` and `notify` use Int32Array views; BigInt atomics, `waitAsync`, and growable buffers are unsupported. `terminate` unwinds at runtime checkpoints, including loops and parked atomic waits, without running JavaScript catch or finally blocks. Blocking native calls finish before the next checkpoint. -Workers are unsupported in dynamic executables, WASI, compiled libraries, and executables that use foreign-thread native callbacks. Ordinary callbacks that run on their owning script thread remain supported. Shared byte storage cannot expose unmanaged FFI pointers; copy it into an ordinary Buffer before passing it to native code. +Workers are unsupported in WASI, compiled libraries, and executables that use foreign-thread native callbacks. Ordinary callbacks that run on their owning script thread remain supported. Shared byte storage cannot expose unmanaged FFI pointers; copy it into an ordinary Buffer before passing it to native code. ### Child-process workers @@ -114,7 +114,7 @@ Parent and child channels support `send(message, callback?)`, `connected`, `disc ### Untyped values -Most uses of `any` require `--dynamic`; otherwise they produce `SC2011`. Use `unknown` with a checked cast for native storage. Native Map and Set type arguments may use `any`, with the same checked storage as `unknown`, without an engine. +Supported uses of `any` use native checked values. Operations without native lowering produce diagnostics such as `SC2011`. Use `unknown` with a checked cast where an operation needs a concrete type. Native Map and Set type arguments may use `any`, with the same checked storage as `unknown`, without an engine. Locals, parameters, and returns can carry untyped values; record and tuple fields can hold `unknown`. JavaScript instance fields can also hold native checked values. Bare fields start as `undefined`, and redeclaring a field with the same checked-value type resets it in initialization order. Explicit TypeScript `any`/`unknown` class fields, static checked-value fields, statically typed array elements, and union members are unsupported in static builds. @@ -210,7 +210,7 @@ Local calendar getters use the operating system's timezone database. Historical `WeakMap` and `WeakSet` accept checked native objects and arrays, functions, numeric typed arrays, ArrayBuffers, native weak collections, and typed records, arrays, tuples, and classes that preserve identity through checked storage. Copied values, other native handles, and symbol keys are unsupported. Constructor seeds support arrays; custom iterators and detached methods are unsupported. Weak collections do not retain their keys, but values that refer back to a key can keep it alive until deletion or collection release. -Memory uses reference counting. Acyclic values are freed deterministically, and cycles are collected at defined collection points. Native checked objects, arrays, Sets, and captured closures participate in cycle collection. Cycles through opaque native capsules or across the static/engine boundary can remain allocated. +Memory uses reference counting. Acyclic values are freed deterministically, and cycles are collected at defined collection points. Native checked objects, arrays, Sets, and captured closures participate in cycle collection. Cycles through opaque native capsules can remain allocated. ### Foreign-thread callbacks @@ -232,37 +232,27 @@ Uncaught exceptions print `Uncaught ` to stderr instead of Node.js's sour Errors carry no stack frames. `console.log` and `util.inspect` print an Error in Node's stackless form, `[TypeError: message]`, where Node prints `TypeError: message` followed by stack frames; the two agree when `Error.stackTraceLimit` is `0`. -## Embedded JavaScript engine + -`--dynamic` uses [quickjs-ng](https://github.com/quickjs-ng/quickjs) to run embedded dependency code. Node builtin modules are provided by shims with their own supported APIs; the [coverage report](/docs/coverage) lists the builtins used by the embedded dependency graph. +## npm package compilation -In a TypeScript `--dynamic` build, `const host: any = globalThis` or `(globalThis as any).TextDecoder` accesses the engine's global object. Its Node globals use those shims even without an embedded npm package. For example, the engine's `TextDecoder` supports UTF-8 labels only. Optional capabilities such as `fetch` are installed only when the build links their bridge. - -Embedded Web Streams support default readable and writable streams, their reader, writer, and controller APIs, count and byte-length queuing strategies, transform streams, and UTF-8 encoder/decoder streams. Writable sinks serialize queued writes and wait for asynchronous start/close/abort callbacks. Transforms honor readable-side backpressure and asynchronous start/transform/flush/cancel callbacks. Default-stream `pipeTo()` and `pipeThrough()` honor `preventClose`, `preventAbort`, `preventCancel`, and AbortSignal, propagate cleanup errors, and release their locks when piping settles. Default-stream `tee()` shares chunks between two branches and cancels the source only when both branches cancel. Byte streams, BYOB readers, and stream transfer remain unsupported. These embedded APIs do not broaden the separate static Web Streams surface. - -Static tasks drain before engine jobs run at event-loop quiescence. A static `await` racing a package promise can therefore resolve in a different order from Node.js. - -Top-level `await` is unsupported in embedded ESM packages. It is supported in the program's own ESM graph and packages compiled through `--npm-static`. - -TypeScript runtime sources in embedded packages are emitted in isolation using the package's module format. Package compiler configuration is not applied, and type-only dependencies must use explicit `import type`, `export type`, or inline `type` specifiers. Declaration files and TSX runtime entries are rejected during the build. - -`--npm-static` and `--provenance-sources` are experimental. See [npm Dependencies](/docs/dependencies) for their current restrictions. +Packages compile to native code. Runtime JavaScript evaluation, `eval`, and `new Function` are unsupported. A package that depends on unsupported execution features must be rewritten or replaced. Review [npm Dependencies](/docs/dependencies) for automatic eligibility and deferred-operation restrictions. ## Process events Static signal listeners resolve names on the target platform, including `SIGWINCH` on POSIX. `on`, `once`, `off`, and `removeListener` accept computed signal names and deliver the signal name and number. Computed names for other event families and chained registrations are unsupported. Windows registration is limited to CRT signals; WASI has no OS signals. -Literal `uncaughtException` and `uncaughtExceptionMonitor` registrations compile without the JavaScript engine. Handled exceptions resume queued native work; monitors alone do not suppress failure. Error objects and primitive exceptions can reach listeners, while arbitrary native objects remain subject to exception-value restrictions. Exception capture callbacks and embedded-engine exception handling are unsupported. +Literal `uncaughtException` and `uncaughtExceptionMonitor` registrations compile without the JavaScript engine. Handled exceptions resume queued native work; monitors alone do not suppress failure. Error objects and primitive exceptions can reach listeners, while arbitrary native objects remain subject to exception-value restrictions. Exception capture callbacks are unsupported. ## Native addons -Node-API (N-API) and V8 `.node` addons require Node's addon runtime, which scriptc does not embed. Direct `createRequire` calls to local addons are rejected at compile time. Embedded npm packages receive a catchable `ERR_DLOPEN_FAILED` when loading an addon, allowing packages with JavaScript fallbacks to use them. +Node-API (N-API) and V8 `.node` addons require Node's addon runtime, which scriptc does not embed. Direct `createRequire` calls to local addons are rejected at compile time. Packages that require an addon must use a compilable JavaScript implementation or a native FFI replacement. Use [Native FFI](/docs/ffi#replacing-a-node-api-addon) to call a plain C ABI function linked from an object or static archive. The guide includes a replacement for a small Node-API helper. ## WASI target -The `wasm32-wasi` executable target supports async/await, promises, generators, timers, portable event-loop work, stdin/readline, filesystem callbacks and promises, and the embedded JavaScript engine. +The `wasm32-wasi` executable target supports async/await, promises, generators, timers, portable event-loop work, stdin/readline, filesystem callbacks and promises. WASI Preview 1 does not provide sockets, process spawning, OS signals, network interfaces, or filesystem notifications. Networking/fetch, child processes, signal APIs, `os.networkInterfaces()`, and `fs.watch` are rejected before linking with `SC3002`. `--sanitize` and native FFI are unavailable. @@ -280,4 +270,4 @@ Numbers use JavaScript's double-precision representation. Integer inference and Wasm reactors require a host-provided WASI Preview 1 adapter. A reactor can run supported three.js CPU operations and send animated geometry, material state, and resource lifecycle notifications to an external web application through declared imports. The application supplies DOM, graphics, media, audio, and decoder bindings, including the renderer. -Library mode excludes promises, async functions, timers, and the embedded JavaScript engine. See [WebAssembly Modules](/docs/wasm) for the embedding contract. +Library mode excludes promises, async functions, timers. See [WebAssembly Modules](/docs/wasm) for the embedding contract. diff --git a/docs/content/docs/native-objects.mdx b/docs/content/docs/native-objects.mdx index caa5baefd..bd993ef62 100644 --- a/docs/content/docs/native-objects.mdx +++ b/docs/content/docs/native-objects.mdx @@ -8,7 +8,7 @@ title: "Native Program Objects" The external object ABI is **experimental**. Its `scr_*` function and data surface may change before 1.0, so consumers must use the exact runtime-pack version reported by the same compiler installation. This is stricter than semver compatibility. -The object intentionally leaves its selected runtime symbols undefined. It also holds a strong reference to `scr_runtime_abi_v13`, which the matching runtime defines. Linking an object against a runtime with another ABI marker fails at link time with the missing versioned symbol; it cannot become a latent runtime incompatibility. +The object intentionally leaves its selected runtime symbols undefined. It also holds a strong reference to `scr_runtime_abi_v14`, which the matching runtime defines. Linking an object against a runtime with another ABI marker fails at link time with the missing versioned symbol; it cannot become a latent runtime incompatibility. ## Machine-readable link information diff --git a/docs/content/docs/platforms.mdx b/docs/content/docs/platforms.mdx index 077ec25f6..d0149d63f 100644 --- a/docs/content/docs/platforms.mdx +++ b/docs/content/docs/platforms.mdx @@ -37,7 +37,7 @@ $ file fib.exe fib.exe: PE32+ executable (console) x86-64, for MS Windows ``` -The full corpus runs in a differential lane against Windows Node, including `--dynamic` programs and `child_process`. The Windows fixture lanes also exercise real loopback traffic through `net`, `http`, `https`, `tls`, `http2`, `dgram`, and `dns`, plus the native `fetch` implementation (including redirects, streaming bodies, compression, cancellation, and proxy handling). +The full corpus runs in a differential lane against Windows Node, including `child_process`. The Windows fixture lanes also exercise real loopback traffic through `net`, `http`, `https`, `tls`, `http2`, `dgram`, and `dns`, plus the native `fetch` implementation (including redirects, streaming bodies, compression, cancellation, and proxy handling). Windows executable builds use the console subsystem by default. Set --windows-subsystem=gui for an application that owns its own window so Windows does not open an extra console window. This selects the PE subsystem at link time. @@ -65,7 +65,7 @@ The full library-mode feature set applies: profile-declared exports and ABI entr Set SCRIPTC_TARGET=wasm32-wasi to produce a standalone .wasm module. Without -o, scriptc build hello.ts writes .scriptc/hello.wasm. Compilation does not require Node. scriptc run requires Node.js 24 or newer on PATH to host the module with Node's WASI implementation, inherits stdio and environment, preopens the current working directory as /, and maps the host platform's temporary directory to the guest's /tmp. A built module can run in another WASI Preview 1 host instead. -WASI is a production LLVM target with the same language tiers as the native targets. Its 32-bit LLVM ABI supports collections, closures, exceptions, classes, checked dynamic values, async/await, promises, synchronous and asynchronous generators, timers, stdin/readline events, process-exit listeners, filesystem callbacks and promises, and the --dynamic QuickJS island. +WASI is a production LLVM target with the same native compilation model as the native targets. Its 32-bit LLVM ABI supports collections, closures, exceptions, classes, checked dynamic values, async/await, promises, synchronous and asynchronous generators, timers, stdin/readline events, process-exit listeners, filesystem callbacks and promises. The remaining executable boundary is host capability, not language coverage. WASI Preview 1 has no portable socket, process-spawn, OS-signal, network-interface, or filesystem-notification APIs. Networking/fetch, child processes, signal APIs, os.networkInterfaces(), and fs.watch therefore fail before linking with diagnostic SC3002. --sanitize and native FFI are unavailable too. Filesystem behavior is bounded by the host's preopens, and process/OS introspection follows WASI's reduced model. @@ -91,17 +91,17 @@ The remaining executable boundary is host capability, not language coverage. WAS macOS arm64 / x64 native host helper + runtime pack - Full surface, --dynamic, sanitizer lane (external C route) + Native surface, sanitizer lane (external C route) Linux arm64 / x86_64 native host helper + runtime pack; SCRIPTC_TARGET=<arch>-linux-musl selects musl - Static and dynamic surfaces incl. servers, TLS, fetch, fs.watch, and child_process; executable linking needs the matching libc/sysroot + Native surface incl. servers, TLS, fetch, fs.watch, and child_process; executable linking needs the matching libc/sysroot Windows x86_64 native x64 MSVC helper + runtime pack - Static and dynamic surfaces incl. servers, TLS, fetch, and child_process; executable linking uses Zig’s Windows sysroot + Native surface incl. servers, TLS, fetch, and child_process; executable linking uses Zig’s Windows sysroot iOS arm64 (device and simulator) @@ -116,7 +116,7 @@ The remaining executable boundary is host capability, not language coverage. WAS WebAssembly / WASI Preview 1 matching host helper + WASI runtime pack - Production LLVM target; full language and dynamic tiers, bounded by WASI P1 host capabilities + Production LLVM target; native language surface, bounded by WASI P1 host capabilities diff --git a/docs/content/docs/quickstart.mdx b/docs/content/docs/quickstart.mdx index d53d73933..50c7b0a62 100644 --- a/docs/content/docs/quickstart.mdx +++ b/docs/content/docs/quickstart.mdx @@ -46,7 +46,7 @@ $ ./hello scriptc hello, scriptc ``` -This program compiles statically, so the executable does not include a JavaScript engine. The shell examples use POSIX syntax; on Windows, build `hello.exe` and invoke it with `.\hello.exe`. +The executable does not include a JavaScript engine. The shell examples use POSIX syntax; on Windows, build `hello.exe` and invoke it with `.\hello.exe`. ## Check compilation support @@ -62,10 +62,10 @@ $ scriptc coverage hello.ts statements analyzed 2 compile statically 2 (100%) - fully static — this program has no dynamic remainder. + fully static — all analyzed statements compile to native code. ``` -For programs that need dynamic execution or contain unsupported operations, the report lists the affected sites and diagnostic codes. See [Coverage Reports](/docs/coverage). +For programs that contain unsupported operations, the report lists the affected sites and diagnostic codes. See [Coverage Reports](/docs/coverage). ## Use an npm dependency @@ -77,16 +77,16 @@ import pc from "picocolors"; console.log(pc.green("hello")); ``` -Install the package and enable the embedded engine with `--dynamic`: +Install the package, then compile its JavaScript along with your application: ```console $ npm install picocolors -$ scriptc build cli.ts --dynamic -o demo >/dev/null +$ scriptc build cli.ts -o demo >/dev/null $ ./demo hello ``` -The package's JavaScript is embedded at build time. The executable does not read `node_modules` at runtime. See [npm Dependencies](/docs/dependencies) for package resolution, type declarations, and runtime behavior. +The package's JavaScript compiles to native code at build time. The executable does not read `node_modules` at runtime. See [npm Dependencies](/docs/dependencies) for package resolution, type declarations, and runtime behavior. ## Next steps diff --git a/docs/src/app/page.tsx b/docs/src/app/page.tsx index 6f5e22fdb..e4660dd78 100644 --- a/docs/src/app/page.tsx +++ b/docs/src/app/page.tsx @@ -24,7 +24,7 @@ $ scriptc coverage hello.ts statements analyzed 2 compile statically 2 (100%) - fully static — this program has no dynamic remainder.`; + fully static — all analyzed statements compile to native code.`; const tiers = [ { @@ -32,8 +32,8 @@ const tiers = [ body: "Supported TypeScript and JavaScript operations compile to native code. Static executables run without Node.js or a JavaScript engine.", }, { - title: "Runs dynamically", - body: "Enable --dynamic to run npm packages and supported any-typed code in an embedded JavaScript engine. Values converted to static types are checked at runtime.", + title: "Native npm dependencies", + body: "Eligible npm dependencies compile alongside your application. Checked values preserve runtime type checks without an embedded JavaScript engine.", }, { title: "Rejected at compile time", @@ -48,11 +48,11 @@ const points = [ }, { title: "Native executables", - body: "Build a program into an executable for a supported target. JavaScript dependencies used with --dynamic are embedded at build time.", + body: "Build a program into an executable for a supported target. Eligible JavaScript dependencies compile to native code at build time.", }, { title: "Compilation coverage", - body: "Coverage reports show static and dynamic statement counts and list compilation blockers for the program being analyzed.", + body: "Coverage reports show native statement counts and list compilation blockers for the program being analyzed.", }, { title: "Differentially tested", @@ -145,8 +145,7 @@ export default function Home() {

Check compilation support

Use {siteName} coverage to analyze a program before building it. The report - identifies operations that compile statically, require the embedded engine, - or remain unsupported. + identifies operations that compile natively and explains unsupported forms.

; chapters: Chapter[]; rows: Row[] }; @@ -111,7 +110,7 @@ function StabilityBadge({ stability }: { stability: NodeStability }) { ); } -function statusCounts(rows: Row[], tier: "static" | "dynamic") { +function statusCounts(rows: Row[], tier: "static") { return rows.reduce>( (counts, row) => { if (row.scope !== "api" || row.depth === 0) return counts; @@ -198,7 +197,6 @@ export function NodeCompatibilityMatrix() { const [loadError, setLoadError] = useState(false); const [query, setQuery] = useState(""); const [staticFilter, setStaticFilter] = useState<"all" | Status>("all"); - const [dynamicFilter, setDynamicFilter] = useState<"all" | Status>("all"); const [expanded, setExpanded] = useState>(() => new Set()); const rows = snapshot?.rows ?? []; @@ -208,8 +206,7 @@ export function NodeCompatibilityMatrix() { const chapterTitles = useMemo(() => new Map(chapters.map((item) => [item.slug, item.title])), [chapters]); const base = `https://nodejs.org/docs/v${snapshot?.nodeVersion ?? "24.15.0"}/api/`; const staticCounts = useMemo(() => statusCounts(rows, "static"), [rows]); - const dynamicCounts = useMemo(() => statusCounts(rows, "dynamic"), [rows]); - const visibleStatuses = useMemo(() => statuses.filter((status) => staticCounts[status] > 0 || dynamicCounts[status] > 0), [dynamicCounts, staticCounts]); + const visibleStatuses = useMemo(() => statuses.filter((status) => staticCounts[status] > 0), [staticCounts]); const tree = useMemo(() => buildTree(rows), [rows]); useEffect(() => { @@ -232,12 +229,11 @@ export function NodeCompatibilityMatrix() { }, []); const needle = query.trim().toLocaleLowerCase(); - const hasResultFilter = needle !== "" || staticFilter !== "all" || dynamicFilter !== "all"; + const hasResultFilter = needle !== "" || staticFilter !== "all"; const rowMatches = (row: Row) => { if (staticFilter !== "all" && row.static.status !== staticFilter) return false; - if (dynamicFilter !== "all" && row.dynamic.status !== dynamicFilter) return false; if (!needle) return true; - return [chapterTitles.get(row.chapter), row.kind, row.name, row.signature, row.apiSymbol, row.static.detail, row.dynamic.detail] + return [chapterTitles.get(row.chapter), row.kind, row.name, row.signature, row.apiSymbol, row.static.detail] .join(" ") .toLocaleLowerCase() .includes(needle); @@ -247,7 +243,7 @@ export function NodeCompatibilityMatrix() { () => hasResultFilter ? filterTree(tree, rowMatches) : tree, // rowMatches closes over these filter values. // eslint-disable-next-line react-hooks/exhaustive-deps - [dynamicFilter, hasResultFilter, needle, staticFilter, tree], + [hasResultFilter, needle, staticFilter, tree], ); const visible = useMemo( () => flattenTree(resultTree, expanded, hasResultFilter), @@ -260,14 +256,13 @@ export function NodeCompatibilityMatrix() { }, 0) : nodeCount(tree), // rowMatches closes over these filter values. // eslint-disable-next-line react-hooks/exhaustive-deps - [dynamicFilter, hasResultFilter, needle, staticFilter, tree], + [hasResultFilter, needle, staticFilter, tree], ); const changeQuery = (value: string) => setQuery(value); const resetFilters = () => { setQuery(""); setStaticFilter("all"); - setDynamicFilter("all"); setExpanded(new Set()); }; const toggle = (id: string) => setExpanded((current) => { @@ -280,8 +275,7 @@ export function NodeCompatibilityMatrix() { useEffect(() => { if (!snapshot) return; if (staticFilter !== "all" && staticCounts[staticFilter] === 0) setStaticFilter("all"); - if (dynamicFilter !== "all" && dynamicCounts[dynamicFilter] === 0) setDynamicFilter("all"); - }, [dynamicCounts, dynamicFilter, snapshot, staticCounts, staticFilter]); + }, [snapshot, staticCounts, staticFilter]); if (loadError) { return
The compatibility dataset could not be loaded.
; @@ -296,9 +290,9 @@ export function NodeCompatibilityMatrix() {

Node.js 24 Compatibility

-

Static native and dynamic island · Node {snapshot.nodeVersion}

+

Native compilation · Node {snapshot.nodeVersion}

-
+
- +
{visible.length.toLocaleString()} visible · {matchedCount.toLocaleString()} {hasResultFilter ? "matching" : "API"} rows @@ -339,7 +327,7 @@ export function NodeCompatibilityMatrix() {
- + {visible.map(({ node, level }) => { @@ -370,7 +358,6 @@ export function NodeCompatibilityMatrix() { - ); })} diff --git a/docs/src/generated/node-v24-compatibility-meta.json b/docs/src/generated/node-v24-compatibility-meta.json index 223a3027b..e6420817b 100644 --- a/docs/src/generated/node-v24-compatibility-meta.json +++ b/docs/src/generated/node-v24-compatibility-meta.json @@ -2,6 +2,6 @@ "schemaVersion": 3, "nodeVersion": "24.15.0", "nodeCommit": "848430679556aed0bd073f2bc263331ad84fa119", - "artifactVersion": "cb524f2eb043e40eb9f4", + "artifactVersion": "32dbd982601194038ff9", "rowCount": 3662 } diff --git a/docs/src/generated/node-v24-compatibility.json b/docs/src/generated/node-v24-compatibility.json index 155348306..55f31b67e 100644 --- a/docs/src/generated/node-v24-compatibility.json +++ b/docs/src/generated/node-v24-compatibility.json @@ -21,7 +21,7 @@ }, "explicit-refusal": { "label": "Explicit refusal", - "detail": "Backed by a named compiler refusal or an explicit dynamic throwing or rejecting stub." + "detail": "Backed by a named compiler refusal." }, "verified-absence": { "label": "Verified absence", @@ -80,15 +80,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 20, - "refused": 0, - "not-implemented": 9, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -104,15 +95,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 15, - "refused": 0, - "not-implemented": 2, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -128,15 +110,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 8, - "refused": 0, - "not-implemented": 12, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -152,15 +125,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 76, - "refused": 0, - "not-implemented": 22, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -176,15 +140,6 @@ "by-design": 3, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 3, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -200,15 +155,6 @@ "by-design": 191, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 191, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -224,15 +170,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 7, - "not-implemented": 32, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -248,15 +185,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 34, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -272,15 +200,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 18, - "refused": 0, - "not-implemented": 6, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -296,15 +215,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 32, - "refused": 30, - "not-implemented": 83, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -320,15 +230,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 26, - "refused": 0, - "not-implemented": 43, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -344,15 +245,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 12, - "refused": 36, - "not-implemented": 3, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -368,15 +260,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 10, - "refused": 0, - "not-implemented": 2, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -392,15 +275,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 2, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -416,15 +290,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 461, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -440,15 +305,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 26, - "refused": 0, - "not-implemented": 52, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -464,15 +320,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 126, - "refused": 2, - "not-implemented": 148, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -488,15 +335,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 42, - "refused": 0, - "not-implemented": 50, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -512,15 +350,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 22, - "refused": 2, - "not-implemented": 150, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -536,15 +365,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 167, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -560,15 +380,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 7, - "refused": 2, - "not-implemented": 11, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -584,15 +395,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 30, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -608,15 +410,6 @@ "by-design": 0, "unreviewed": 2, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 24, - "refused": 0, - "not-implemented": 3, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -632,15 +425,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 13, - "refused": 0, - "not-implemented": 9, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -656,15 +440,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 6, - "refused": 2, - "not-implemented": 22, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -680,15 +455,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 8, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -704,15 +470,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 2, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -728,15 +485,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 4, - "refused": 11, - "not-implemented": 85, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -752,15 +500,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 21, - "refused": 0, - "not-implemented": 3, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -776,15 +515,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 16, - "refused": 0, - "not-implemented": 1, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -800,15 +530,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 16, - "refused": 0, - "not-implemented": 80, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -824,15 +545,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 3, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -848,15 +560,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 31, - "refused": 0, - "not-implemented": 88, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -872,15 +575,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 7, - "refused": 0, - "not-implemented": 2, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -896,15 +590,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 7, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -920,15 +605,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 17, - "refused": 0, - "not-implemented": 26, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -944,15 +620,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 14, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -968,15 +635,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 48, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -992,15 +650,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 46, - "refused": 1, - "not-implemented": 90, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1016,15 +665,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 4, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1040,15 +680,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 105, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1064,15 +695,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 22, - "refused": 0, - "not-implemented": 3, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1088,15 +710,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 2, - "refused": 6, - "not-implemented": 56, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1112,15 +725,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 9, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1136,15 +740,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 4, - "refused": 0, - "not-implemented": 14, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1160,15 +755,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 36, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1184,15 +770,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 41, - "refused": 0, - "not-implemented": 21, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1208,15 +785,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 18, - "partial": 71, - "refused": 0, - "not-implemented": 16, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1232,15 +800,6 @@ "by-design": 65, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 10, - "refused": 12, - "not-implemented": 46, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1256,15 +815,6 @@ "by-design": 41, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 41, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1280,15 +830,6 @@ "by-design": 7, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 7, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1304,15 +845,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 13, - "refused": 0, - "not-implemented": 135, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1328,15 +860,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 53, - "refused": 0, - "not-implemented": 35, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1352,15 +875,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 21, - "refused": 1, - "not-implemented": 44, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1376,15 +890,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 55, - "refused": 0, - "not-implemented": 23, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } } ], @@ -1410,11 +915,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -1438,11 +938,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -1466,11 +961,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -1494,11 +984,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -1522,11 +1007,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -1550,11 +1030,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -1578,11 +1053,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -1606,11 +1076,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -1634,11 +1099,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -1662,11 +1122,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -1690,11 +1145,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -1718,11 +1168,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -1746,11 +1191,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -1774,11 +1214,6 @@ "status": "partial", "detail": "Supports callbacks or native promises with messages, Error classes, regular expressions, and validators accepting unknown values; object expectations and complete AssertionError metadata remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Supports no-error assertions over callbacks, promises, and promise-like objects, with Error classes, regular expressions, validation functions, and Node-compatible failure metadata for the tested forms.", - "verification": "test-backed" } }, { @@ -1802,11 +1237,6 @@ "status": "partial", "detail": "Supports callbacks or native promises with messages, Error classes, regular expressions, and validators accepting unknown values; object expectations and complete AssertionError metadata remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Supports no-error assertions over callbacks, promises, and promise-like objects, with Error classes, regular expressions, validation functions, and Node-compatible failure metadata for the tested forms.", - "verification": "test-backed" } }, { @@ -1830,11 +1260,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -1858,11 +1283,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -1886,11 +1306,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -1914,11 +1329,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -1942,11 +1352,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -1970,11 +1375,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -1998,11 +1398,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2026,11 +1421,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2054,11 +1444,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2082,11 +1467,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2110,11 +1490,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2138,11 +1513,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2166,11 +1536,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2194,11 +1559,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -2222,11 +1582,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -2250,11 +1605,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2278,11 +1628,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -2306,11 +1651,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -2334,11 +1674,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -2362,11 +1697,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -2390,11 +1720,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -2418,11 +1743,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -2446,11 +1766,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -2474,11 +1789,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2502,11 +1812,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2530,11 +1835,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2558,11 +1858,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -2586,11 +1881,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -2614,11 +1904,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -2642,11 +1927,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -2670,11 +1950,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -2698,11 +1973,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -2726,11 +1996,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2754,11 +2019,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -2782,11 +2042,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -2810,11 +2065,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -2838,11 +2088,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -2866,11 +2111,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -2894,11 +2134,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -2922,11 +2157,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -2950,11 +2180,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -2978,11 +2203,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3006,11 +2226,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3034,11 +2249,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3062,11 +2272,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3090,11 +2295,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3118,11 +2318,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3146,11 +2341,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3174,11 +2364,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3202,11 +2387,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3230,11 +2410,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3258,11 +2433,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -3286,11 +2456,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3314,11 +2479,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3342,11 +2502,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3370,11 +2525,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3398,11 +2548,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3426,11 +2571,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3454,11 +2594,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3482,11 +2617,6 @@ "status": "partial", "detail": "Validates bytes in ArrayBuffer and typed-array views with Node-compatible argument errors.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Validates bytes in ArrayBuffer and typed-array views with Node-compatible argument errors.", - "verification": "test-backed" } }, { @@ -3510,11 +2640,6 @@ "status": "partial", "detail": "Validates bytes in ArrayBuffer and typed-array views with Node-compatible argument errors.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Validates bytes in ArrayBuffer and typed-array views with Node-compatible argument errors.", - "verification": "test-backed" } }, { @@ -3538,11 +2663,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3566,11 +2686,6 @@ "status": "partial", "detail": "Converts Buffer and Uint8Array inputs among ASCII, Latin-1, UTF-8, and UTF-16LE, including encoding aliases and conversion errors.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Converts Buffer and Uint8Array inputs among ASCII, Latin-1, UTF-8, and UTF-16LE, including encoding aliases and conversion errors.", - "verification": "test-backed" } }, { @@ -3594,11 +2709,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3622,11 +2732,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3650,11 +2755,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3678,11 +2778,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -3706,11 +2801,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -3734,11 +2824,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3762,11 +2847,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -3790,11 +2870,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3818,11 +2893,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3846,11 +2916,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3874,11 +2939,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3902,11 +2962,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3930,11 +2985,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3958,11 +3008,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -3986,11 +3031,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -4014,11 +3054,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4042,11 +3077,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4070,11 +3100,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -4098,11 +3123,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4126,11 +3146,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4154,11 +3169,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4182,11 +3192,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4210,11 +3215,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -4238,11 +3238,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4266,11 +3261,6 @@ "status": "supported", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4294,11 +3284,6 @@ "status": "supported", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4322,11 +3307,6 @@ "status": "supported", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4350,11 +3330,6 @@ "status": "supported", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4378,11 +3353,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4406,11 +3376,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4434,11 +3399,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4462,11 +3422,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4490,11 +3445,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4518,11 +3468,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4546,11 +3491,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4574,11 +3514,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4602,11 +3537,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4630,11 +3560,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4658,11 +3583,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4686,11 +3606,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4714,11 +3629,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4742,11 +3652,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4770,11 +3675,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4798,11 +3698,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4826,11 +3721,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4854,11 +3744,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4882,11 +3767,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4910,11 +3790,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4938,11 +3813,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4966,11 +3836,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -4994,11 +3859,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5022,11 +3882,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5050,11 +3905,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5078,11 +3928,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -5106,11 +3951,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5134,11 +3974,6 @@ "status": "supported", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5162,11 +3997,6 @@ "status": "supported", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5190,11 +4020,6 @@ "status": "supported", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5218,11 +4043,6 @@ "status": "supported", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5246,11 +4066,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5274,11 +4089,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5302,11 +4112,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5330,11 +4135,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5358,11 +4158,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5386,11 +4181,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5414,11 +4204,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5442,11 +4227,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5470,11 +4250,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5498,11 +4273,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5526,11 +4296,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5554,11 +4319,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5582,11 +4342,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5610,11 +4365,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5638,11 +4388,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5666,11 +4411,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5694,11 +4434,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5722,11 +4457,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -5750,11 +4480,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -5778,11 +4503,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -5806,11 +4526,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -5834,11 +4549,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -5862,11 +4572,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -5890,11 +4595,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -5918,11 +4618,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -5946,11 +4641,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -5974,11 +4664,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -5997,11 +4682,6 @@ "status": "by-design", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "by-design", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -6020,11 +4700,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6048,11 +4723,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6076,11 +4746,6 @@ "status": "by-design", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "by-design", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -6104,11 +4769,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6132,11 +4792,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6160,11 +4815,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6188,11 +4838,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6216,11 +4861,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6244,11 +4884,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6272,11 +4907,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6300,11 +4930,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6328,11 +4953,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6356,11 +4976,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6384,11 +4999,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6412,11 +5022,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6440,11 +5045,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6468,11 +5068,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6496,11 +5091,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6524,11 +5114,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6552,11 +5137,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6580,11 +5160,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6608,11 +5183,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6636,11 +5206,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6664,11 +5229,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6692,11 +5252,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6720,11 +5275,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6748,11 +5298,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6776,11 +5321,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6804,11 +5344,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6832,11 +5367,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6860,11 +5390,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6888,11 +5413,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6916,11 +5436,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6944,11 +5459,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -6972,11 +5482,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7000,11 +5505,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7028,11 +5528,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7056,11 +5551,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7084,11 +5574,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7112,11 +5597,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7140,11 +5620,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7168,11 +5643,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7196,11 +5666,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7224,11 +5689,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7252,11 +5712,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7280,11 +5735,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7308,11 +5758,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7336,11 +5781,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7364,11 +5804,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7392,11 +5827,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7420,11 +5850,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7448,11 +5873,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7476,11 +5896,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7504,11 +5919,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7532,11 +5942,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7560,11 +5965,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7588,11 +5988,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7616,11 +6011,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7644,11 +6034,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7672,11 +6057,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7700,11 +6080,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7728,11 +6103,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7756,11 +6126,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7784,11 +6149,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7812,11 +6172,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7840,11 +6195,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7868,11 +6218,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7896,11 +6241,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7924,11 +6264,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7952,11 +6287,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -7980,11 +6310,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8008,11 +6333,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8036,11 +6356,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8064,11 +6379,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8092,11 +6402,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8120,11 +6425,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8148,11 +6448,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8176,11 +6471,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8204,11 +6494,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8232,11 +6517,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8260,11 +6540,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8288,11 +6563,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8316,11 +6586,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8344,11 +6609,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8372,11 +6632,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8400,11 +6655,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8428,11 +6678,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8456,11 +6701,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8484,11 +6724,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8512,11 +6747,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8540,11 +6770,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8568,11 +6793,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8596,11 +6816,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8624,11 +6839,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8652,11 +6862,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8680,11 +6885,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8708,11 +6908,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8736,11 +6931,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8764,11 +6954,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8792,11 +6977,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8820,11 +7000,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8848,11 +7023,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8876,11 +7046,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8904,11 +7069,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8932,11 +7092,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8960,11 +7115,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -8988,11 +7138,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9016,11 +7161,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9044,11 +7184,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9072,11 +7207,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9100,11 +7230,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9128,11 +7253,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9156,11 +7276,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9184,11 +7299,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9212,11 +7322,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9240,11 +7345,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9268,11 +7368,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9296,11 +7391,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9324,11 +7414,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9352,11 +7437,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9380,11 +7460,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9408,11 +7483,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9436,11 +7506,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9464,11 +7529,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9492,11 +7552,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9520,11 +7575,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9548,11 +7598,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9576,11 +7621,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9604,11 +7644,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9632,11 +7667,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9660,11 +7690,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9688,11 +7713,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9716,11 +7736,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9744,11 +7759,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9772,11 +7782,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9800,11 +7805,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9828,11 +7828,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9856,11 +7851,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9884,11 +7874,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9912,11 +7897,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9940,11 +7920,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9968,11 +7943,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -9996,11 +7966,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10024,11 +7989,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10052,11 +8012,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10080,11 +8035,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10108,11 +8058,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10136,11 +8081,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10164,11 +8104,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10192,11 +8127,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10220,11 +8150,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10248,11 +8173,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10276,11 +8196,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10304,11 +8219,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10332,11 +8242,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10360,11 +8265,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10388,11 +8288,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10416,11 +8311,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10444,11 +8334,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10472,11 +8357,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10500,11 +8380,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10528,11 +8403,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10556,11 +8426,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10584,11 +8449,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10612,11 +8472,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10640,11 +8495,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10668,11 +8518,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10696,11 +8541,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10724,11 +8564,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10752,11 +8587,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10780,11 +8610,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10808,11 +8633,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10836,11 +8656,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10864,11 +8679,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10892,11 +8702,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10920,11 +8725,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10948,11 +8748,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -10976,11 +8771,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11004,11 +8794,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11032,11 +8817,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11060,11 +8840,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11088,11 +8863,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11116,11 +8886,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11144,11 +8909,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11172,11 +8932,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11200,11 +8955,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11228,11 +8978,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11256,11 +9001,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11284,11 +9024,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11312,11 +9047,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11340,11 +9070,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11368,11 +9093,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11396,11 +9116,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -11424,11 +9139,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -11452,11 +9162,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11480,11 +9185,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -11508,11 +9208,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -11536,11 +9231,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -11564,11 +9254,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -11592,11 +9277,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11620,11 +9300,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11648,11 +9323,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -11676,11 +9346,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -11704,11 +9369,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -11732,11 +9392,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11760,11 +9415,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11788,11 +9438,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11816,11 +9461,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11844,11 +9484,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11872,11 +9507,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11900,11 +9530,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11928,11 +9553,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11956,11 +9576,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -11984,11 +9599,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12012,11 +9622,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12040,11 +9645,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12068,11 +9668,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12096,11 +9691,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12124,11 +9714,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12152,11 +9737,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12180,11 +9760,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12208,11 +9783,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12236,11 +9806,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12264,11 +9829,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12292,11 +9852,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12320,11 +9875,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12348,11 +9898,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12376,11 +9921,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12404,11 +9944,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12432,11 +9967,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12460,11 +9990,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12488,11 +10013,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -12516,11 +10036,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -12544,11 +10059,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12572,11 +10082,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12600,11 +10105,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12628,11 +10128,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12656,11 +10151,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12684,11 +10174,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12712,11 +10197,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12740,11 +10220,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12768,11 +10243,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12796,11 +10266,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12824,11 +10289,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12852,11 +10312,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12880,11 +10335,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12908,11 +10358,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12936,11 +10381,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12964,11 +10404,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -12992,11 +10427,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13020,11 +10450,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13048,11 +10473,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13076,11 +10496,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13104,11 +10519,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13132,11 +10542,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13160,11 +10565,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13188,11 +10588,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13216,11 +10611,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13244,11 +10634,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13272,11 +10657,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13300,11 +10680,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13328,11 +10703,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13356,11 +10726,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13384,11 +10749,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13412,11 +10772,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13440,11 +10795,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -13468,11 +10818,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -13496,11 +10841,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -13524,11 +10864,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -13552,11 +10887,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -13580,11 +10910,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13608,11 +10933,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13636,11 +10956,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13664,11 +10979,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13692,11 +11002,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13720,11 +11025,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13748,11 +11048,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13776,11 +11071,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -13804,11 +11094,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13832,11 +11117,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13860,11 +11140,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -13888,11 +11163,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13916,11 +11186,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13944,11 +11209,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -13972,11 +11232,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -14000,11 +11255,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -14028,11 +11278,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -14056,11 +11301,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -14084,11 +11324,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -14112,11 +11347,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -14140,11 +11370,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -14168,11 +11393,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -14196,11 +11416,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -14224,11 +11439,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -14252,11 +11462,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14280,11 +11485,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14308,11 +11508,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14336,11 +11531,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14364,11 +11554,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14392,11 +11577,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14420,11 +11600,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -14448,11 +11623,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14476,11 +11646,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -14504,11 +11669,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -14532,11 +11692,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14560,11 +11715,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14588,11 +11738,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14616,11 +11761,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14644,11 +11784,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14672,11 +11807,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -14700,11 +11830,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14728,11 +11853,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -14756,11 +11876,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14784,11 +11899,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14812,11 +11922,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14840,11 +11945,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14868,11 +11968,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14896,11 +11991,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -14924,11 +12014,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -14952,11 +12037,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -14980,11 +12060,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15008,11 +12083,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -15036,11 +12106,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15064,11 +12129,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15092,11 +12152,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15120,11 +12175,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15148,11 +12198,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15176,11 +12221,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15204,11 +12244,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15232,11 +12267,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15260,11 +12290,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -15288,11 +12313,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -15316,11 +12336,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -15344,11 +12359,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -15372,11 +12382,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15400,11 +12405,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15428,11 +12428,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15456,11 +12451,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15484,11 +12474,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15512,11 +12497,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15540,11 +12520,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15568,11 +12543,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -15596,11 +12566,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -15624,11 +12589,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15652,11 +12612,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -15680,11 +12635,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15708,11 +12658,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -15736,11 +12681,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15764,11 +12704,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -15792,11 +12727,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15820,11 +12750,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -15848,11 +12773,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -15876,11 +12796,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -15904,11 +12819,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -15932,11 +12842,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -15960,11 +12865,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -15988,11 +12888,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16016,11 +12911,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16044,11 +12934,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16072,11 +12957,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16100,11 +12980,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16128,11 +13003,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16156,11 +13026,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16184,11 +13049,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16212,11 +13072,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16240,11 +13095,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16268,11 +13118,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16296,11 +13141,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16324,11 +13164,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16352,11 +13187,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16380,11 +13210,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16408,11 +13233,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16436,11 +13256,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16464,11 +13279,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16492,11 +13302,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16520,11 +13325,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16548,11 +13348,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16576,11 +13371,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16604,11 +13394,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16632,11 +13417,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16660,11 +13440,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16688,11 +13463,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16716,11 +13486,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16744,11 +13509,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16772,11 +13532,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -16800,11 +13555,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -16828,11 +13578,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -16856,11 +13601,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -16884,11 +13624,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -16912,11 +13647,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -16940,11 +13670,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -16968,11 +13693,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -16996,11 +13716,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -17024,11 +13739,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17052,11 +13762,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17080,11 +13785,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17108,11 +13808,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17136,11 +13831,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17164,11 +13854,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17192,11 +13877,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17220,11 +13900,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17248,11 +13923,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17276,11 +13946,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17304,11 +13969,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17332,11 +13992,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17360,11 +14015,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17388,11 +14038,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -17416,11 +14061,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17444,11 +14084,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17472,11 +14107,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17500,11 +14130,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17528,11 +14153,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17556,11 +14176,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17584,11 +14199,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17612,11 +14222,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17640,11 +14245,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17668,11 +14268,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17696,11 +14291,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17724,11 +14314,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17752,11 +14337,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17780,11 +14360,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17808,11 +14383,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17836,11 +14406,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17864,11 +14429,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17892,11 +14452,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17920,11 +14475,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17948,11 +14498,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -17976,11 +14521,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18004,11 +14544,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18032,11 +14567,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18060,11 +14590,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18088,11 +14613,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18116,11 +14636,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18144,11 +14659,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18172,11 +14682,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18200,11 +14705,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -18228,11 +14728,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -18256,11 +14751,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -18284,11 +14774,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -18312,11 +14797,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -18340,11 +14820,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -18368,11 +14843,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -18396,11 +14866,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -18424,11 +14889,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -18452,11 +14912,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -18480,11 +14935,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -18508,11 +14958,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18536,11 +14981,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18564,11 +15004,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18592,11 +15027,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18620,11 +15050,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18648,11 +15073,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18676,11 +15096,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18704,11 +15119,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18732,11 +15142,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18760,11 +15165,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18788,11 +15188,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18816,11 +15211,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18844,11 +15234,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18872,11 +15257,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18900,11 +15280,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18928,11 +15303,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18956,11 +15326,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -18984,11 +15349,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19012,11 +15372,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19040,11 +15395,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19068,11 +15418,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19096,11 +15441,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19124,11 +15464,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19152,11 +15487,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19180,11 +15510,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19208,11 +15533,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19236,11 +15556,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19264,11 +15579,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19292,11 +15602,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19320,11 +15625,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19348,11 +15648,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19376,11 +15671,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19404,11 +15694,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19432,11 +15717,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19460,11 +15740,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19488,11 +15763,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19516,11 +15786,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19544,11 +15809,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19572,11 +15832,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19600,11 +15855,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19628,11 +15878,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19656,11 +15901,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19684,11 +15924,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -19712,11 +15947,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -19740,11 +15970,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -19768,11 +15993,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -19796,11 +16016,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -19824,11 +16039,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -19852,11 +16062,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -19880,11 +16085,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -19908,11 +16108,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -19936,11 +16131,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -19964,11 +16154,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -19992,11 +16177,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -20020,11 +16200,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -20048,11 +16223,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -20076,11 +16246,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits.", - "verification": "test-backed" } }, { @@ -20104,11 +16269,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -20132,11 +16292,6 @@ "status": "not-implemented", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -20160,11 +16315,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -20188,11 +16338,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -20216,11 +16361,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -20244,11 +16384,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20272,11 +16407,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20300,11 +16430,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20328,11 +16453,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20356,11 +16476,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20384,11 +16499,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20412,11 +16522,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20440,11 +16545,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20468,11 +16568,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20496,11 +16591,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20524,11 +16614,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20552,11 +16637,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20580,11 +16660,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20608,11 +16683,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20636,11 +16706,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20664,11 +16729,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20692,11 +16752,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20720,11 +16775,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -20748,11 +16798,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -20776,11 +16821,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -20804,11 +16844,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20832,11 +16867,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -20860,11 +16890,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -20888,11 +16913,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -20916,11 +16936,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -20944,11 +16959,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -20972,11 +16982,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -21000,11 +17005,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21028,11 +17028,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21056,11 +17051,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21084,11 +17074,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21112,11 +17097,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21140,11 +17120,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21168,11 +17143,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21196,11 +17166,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21224,11 +17189,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21252,11 +17212,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21280,11 +17235,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21308,11 +17258,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21336,11 +17281,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21364,11 +17304,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21392,11 +17327,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21420,11 +17350,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21448,11 +17373,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -21476,11 +17396,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -21504,11 +17419,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -21532,11 +17442,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -21560,11 +17465,6 @@ "status": "not-implemented", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -21588,11 +17488,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -21616,11 +17511,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -21644,11 +17534,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -21672,11 +17557,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -21700,11 +17580,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -21728,11 +17603,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -21756,11 +17626,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -21784,11 +17649,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -21812,11 +17672,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -21840,11 +17695,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -21868,11 +17718,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -21891,11 +17736,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -21914,11 +17754,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -21937,11 +17772,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -21960,11 +17790,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -21983,11 +17808,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22006,11 +17826,6 @@ "status": "partial", "detail": "Numeric limits control the frames captured by newly created native errors.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22029,11 +17844,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22052,11 +17862,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22075,11 +17880,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22098,11 +17898,6 @@ "status": "partial", "detail": "Native errors capture synchronous source frames; V8 stack customization and async stack stitching remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22121,11 +17916,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22144,11 +17934,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22167,11 +17952,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22190,11 +17970,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22213,11 +17988,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22236,11 +18006,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22259,11 +18024,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22282,11 +18042,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22305,11 +18060,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22328,11 +18078,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22351,11 +18096,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22374,11 +18114,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22397,11 +18132,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22420,11 +18150,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22443,11 +18168,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22466,11 +18186,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22489,11 +18204,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22512,11 +18222,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22535,11 +18240,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22558,11 +18258,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22581,11 +18276,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22604,11 +18294,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22627,11 +18312,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22650,11 +18330,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22673,11 +18348,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22696,11 +18366,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22719,11 +18384,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22742,11 +18402,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22765,11 +18420,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22788,11 +18438,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22811,11 +18456,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22834,11 +18474,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22857,11 +18492,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22880,11 +18510,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22903,11 +18528,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22926,11 +18546,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22949,11 +18564,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22972,11 +18582,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -22995,11 +18600,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23018,11 +18618,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23041,11 +18636,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23064,11 +18654,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23087,11 +18672,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23110,11 +18690,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23133,11 +18708,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23156,11 +18726,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23179,11 +18744,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23202,11 +18762,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23225,11 +18780,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23248,11 +18798,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23271,11 +18816,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23294,11 +18834,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23317,11 +18852,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23340,11 +18870,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23363,11 +18888,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23386,11 +18906,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23409,11 +18924,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23432,11 +18942,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23455,11 +18960,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23478,11 +18978,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23501,11 +18996,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23524,11 +19014,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23547,11 +19032,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23570,11 +19050,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23593,11 +19068,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23616,11 +19086,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23639,11 +19104,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23662,11 +19122,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23685,11 +19140,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23708,11 +19158,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23731,11 +19176,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23754,11 +19194,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23777,11 +19212,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23800,11 +19230,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23823,11 +19248,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23846,11 +19266,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23869,11 +19284,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23892,11 +19302,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23915,11 +19320,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23938,11 +19338,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23961,11 +19356,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -23984,11 +19374,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24007,11 +19392,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24030,11 +19410,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24053,11 +19428,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24076,11 +19446,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24099,11 +19464,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24122,11 +19482,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24145,11 +19500,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24168,11 +19518,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24191,11 +19536,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24214,11 +19554,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24237,11 +19572,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24260,11 +19590,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24283,11 +19608,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24306,11 +19626,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24329,11 +19644,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24352,11 +19662,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24375,11 +19680,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24398,11 +19698,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24421,11 +19716,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24444,11 +19734,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24467,11 +19752,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24490,11 +19770,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24513,11 +19788,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24536,11 +19806,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24559,11 +19824,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24582,11 +19842,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24605,11 +19860,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24628,11 +19878,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24651,11 +19896,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24674,11 +19914,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24697,11 +19932,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24720,11 +19950,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24743,11 +19968,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24766,11 +19986,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24789,11 +20004,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24812,11 +20022,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24835,11 +20040,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24858,11 +20058,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24881,11 +20076,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24904,11 +20094,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24927,11 +20112,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24950,11 +20130,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24973,11 +20148,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -24996,11 +20166,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25019,11 +20184,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25042,11 +20202,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25065,11 +20220,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25088,11 +20238,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25111,11 +20256,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25134,11 +20274,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25157,11 +20292,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25180,11 +20310,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25203,11 +20328,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25226,11 +20346,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25249,11 +20364,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25272,11 +20382,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25295,11 +20400,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25318,11 +20418,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25341,11 +20436,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25364,11 +20454,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25387,11 +20472,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25410,11 +20490,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25433,11 +20508,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25456,11 +20526,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25479,11 +20544,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25502,11 +20562,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25525,11 +20580,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25548,11 +20598,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25571,11 +20616,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25594,11 +20634,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25617,11 +20652,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25640,11 +20670,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25663,11 +20688,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25686,11 +20706,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25709,11 +20724,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25732,11 +20742,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25755,11 +20760,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25778,11 +20778,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25801,11 +20796,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25824,11 +20814,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25847,11 +20832,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25870,11 +20850,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25893,11 +20868,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25916,11 +20886,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25939,11 +20904,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25962,11 +20922,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -25985,11 +20940,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26008,11 +20958,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26031,11 +20976,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26054,11 +20994,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26077,11 +21012,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26100,11 +21030,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26123,11 +21048,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26146,11 +21066,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26169,11 +21084,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26192,11 +21102,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26215,11 +21120,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26238,11 +21138,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26261,11 +21156,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26284,11 +21174,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26307,11 +21192,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26330,11 +21210,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26353,11 +21228,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26376,11 +21246,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26399,11 +21264,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26422,11 +21282,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26445,11 +21300,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26468,11 +21318,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26491,11 +21336,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26514,11 +21354,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26537,11 +21372,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26560,11 +21390,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26583,11 +21408,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26606,11 +21426,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26629,11 +21444,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26652,11 +21462,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26675,11 +21480,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26698,11 +21498,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26721,11 +21516,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26744,11 +21534,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26767,11 +21552,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26790,11 +21570,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26813,11 +21588,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26836,11 +21606,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26859,11 +21624,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26882,11 +21642,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26905,11 +21660,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26928,11 +21678,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26951,11 +21696,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26974,11 +21714,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -26997,11 +21732,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27020,11 +21750,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27043,11 +21768,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27066,11 +21786,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27089,11 +21804,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27112,11 +21822,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27135,11 +21840,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27158,11 +21858,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27181,11 +21876,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27204,11 +21894,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27227,11 +21912,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27250,11 +21930,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27273,11 +21948,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27296,11 +21966,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27319,11 +21984,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27342,11 +22002,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27365,11 +22020,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27388,11 +22038,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27411,11 +22056,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27434,11 +22074,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27457,11 +22092,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27480,11 +22110,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27503,11 +22128,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27526,11 +22146,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27549,11 +22164,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27572,11 +22182,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27595,11 +22200,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27618,11 +22218,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27641,11 +22236,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27664,11 +22254,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27687,11 +22272,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27710,11 +22290,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27733,11 +22308,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27756,11 +22326,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27779,11 +22344,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27802,11 +22362,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27825,11 +22380,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27848,11 +22398,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27871,11 +22416,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27894,11 +22434,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27917,11 +22452,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27940,11 +22470,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27963,11 +22488,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -27986,11 +22506,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28009,11 +22524,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28032,11 +22542,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28055,11 +22560,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28078,11 +22578,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28106,11 +22601,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28134,11 +22624,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28162,11 +22647,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28190,11 +22670,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28218,11 +22693,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28246,11 +22716,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28269,11 +22734,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28292,11 +22752,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28320,11 +22775,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28343,11 +22793,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28366,11 +22811,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28389,11 +22829,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28412,11 +22847,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28435,11 +22865,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28458,11 +22883,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28481,11 +22901,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28504,11 +22919,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28527,11 +22937,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28550,11 +22955,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28573,11 +22973,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28596,11 +22991,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28619,11 +23009,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28642,11 +23027,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28665,11 +23045,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28688,11 +23063,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28711,11 +23081,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28734,11 +23099,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28757,11 +23117,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28780,11 +23135,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28803,11 +23153,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28826,11 +23171,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28849,11 +23189,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28872,11 +23207,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28895,11 +23225,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28918,11 +23243,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28941,11 +23261,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28964,11 +23279,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -28987,11 +23297,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29010,11 +23315,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29033,11 +23333,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29056,11 +23351,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29079,11 +23369,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29102,11 +23387,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29125,11 +23405,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29148,11 +23423,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29171,11 +23441,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29194,11 +23459,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29217,11 +23477,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29240,11 +23495,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29263,11 +23513,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29286,11 +23531,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29309,11 +23549,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29332,11 +23567,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29355,11 +23585,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29378,11 +23603,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29401,11 +23621,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29424,11 +23639,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29447,11 +23657,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29470,11 +23675,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29493,11 +23693,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29516,11 +23711,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29539,11 +23729,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29562,11 +23747,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29585,11 +23765,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29608,11 +23783,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29631,11 +23801,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29654,11 +23819,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29677,11 +23837,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29700,11 +23855,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29723,11 +23873,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29746,11 +23891,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29769,11 +23909,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29792,11 +23927,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29815,11 +23945,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29838,11 +23963,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29861,11 +23981,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29884,11 +23999,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29907,11 +24017,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29930,11 +24035,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29953,11 +24053,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29976,11 +24071,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -29999,11 +24089,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30022,11 +24107,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30045,11 +24125,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30068,11 +24143,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30091,11 +24161,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30114,11 +24179,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30137,11 +24197,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30160,11 +24215,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30183,11 +24233,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30206,11 +24251,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30229,11 +24269,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30252,11 +24287,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30275,11 +24305,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30298,11 +24323,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30321,11 +24341,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30344,11 +24359,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30367,11 +24377,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30395,11 +24400,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30423,11 +24423,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30451,11 +24446,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30479,11 +24469,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30502,11 +24487,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30525,11 +24505,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30548,11 +24523,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30571,11 +24541,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30594,11 +24559,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30617,11 +24577,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30640,11 +24595,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30663,11 +24613,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30686,11 +24631,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30709,11 +24649,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30732,11 +24667,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30760,11 +24690,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30788,11 +24713,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30816,11 +24736,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30844,11 +24759,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30872,11 +24782,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30900,11 +24805,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30928,11 +24828,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30956,11 +24851,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -30984,11 +24874,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31012,11 +24897,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31040,11 +24920,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31068,11 +24943,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31096,11 +24966,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31124,11 +24989,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31152,11 +25012,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31180,11 +25035,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31208,11 +25058,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31236,11 +25081,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31264,11 +25104,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31292,11 +25127,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31320,11 +25150,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31348,11 +25173,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31376,11 +25196,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31404,11 +25219,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31432,11 +25242,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31460,11 +25265,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31488,11 +25288,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31516,11 +25311,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31544,11 +25334,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31572,11 +25357,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31600,11 +25380,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31628,11 +25403,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31656,11 +25426,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31684,11 +25449,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31712,11 +25472,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31740,11 +25495,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31768,11 +25518,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31796,11 +25541,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31824,11 +25564,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31852,11 +25587,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31880,11 +25610,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31908,11 +25633,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31936,11 +25656,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31964,11 +25679,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -31992,11 +25702,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32020,11 +25725,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32048,11 +25748,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32076,11 +25771,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32104,11 +25794,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32132,11 +25817,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32160,11 +25840,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32188,11 +25863,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32211,11 +25881,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32234,11 +25899,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32257,11 +25917,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32280,11 +25935,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32303,11 +25953,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32326,11 +25971,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32349,11 +25989,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32372,11 +26007,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32395,11 +26025,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32418,11 +26043,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32441,11 +26061,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32464,11 +26079,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32487,11 +26097,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32510,11 +26115,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32533,11 +26133,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32556,11 +26151,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32579,11 +26169,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32602,11 +26187,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32625,11 +26205,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32648,11 +26223,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32671,11 +26241,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32694,11 +26259,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32717,11 +26277,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32740,11 +26295,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32763,11 +26313,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32786,11 +26331,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32809,11 +26349,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32832,11 +26367,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32860,11 +26390,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -32888,11 +26413,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32916,11 +26436,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32944,11 +26459,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -32972,11 +26482,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33000,11 +26505,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33028,11 +26528,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33056,11 +26551,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33084,11 +26574,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33112,11 +26597,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33140,11 +26620,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33168,11 +26643,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33196,11 +26666,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33224,11 +26689,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33252,11 +26712,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33280,11 +26735,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33308,11 +26758,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33336,11 +26781,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33364,11 +26804,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33392,11 +26827,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33420,11 +26850,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33448,11 +26873,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33476,11 +26896,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33504,11 +26919,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33532,11 +26942,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33560,11 +26965,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33588,11 +26988,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33616,11 +27011,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33644,11 +27034,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33672,11 +27057,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33700,11 +27080,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33728,11 +27103,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33756,11 +27126,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33784,11 +27149,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33812,11 +27172,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33840,11 +27195,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33868,11 +27218,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33896,11 +27241,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33924,11 +27264,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33952,11 +27287,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -33980,11 +27310,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34008,11 +27333,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34036,11 +27356,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34064,11 +27379,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -34092,11 +27402,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34120,11 +27425,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34148,11 +27448,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34176,11 +27471,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34204,11 +27494,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -34232,11 +27517,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34260,11 +27540,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -34288,11 +27563,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34316,11 +27586,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34344,11 +27609,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34372,11 +27632,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34400,11 +27655,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34428,11 +27678,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34456,11 +27701,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34484,11 +27724,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -34512,11 +27747,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -34540,11 +27770,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34568,11 +27793,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34596,11 +27816,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34624,11 +27839,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34652,11 +27862,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34680,11 +27885,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34708,11 +27908,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34736,11 +27931,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -34764,11 +27954,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -34792,11 +27977,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Waits for EventEmitter or EventTarget events with AbortSignal cancellation, Node abort errors, and listener cleanup.", - "verification": "test-backed" } }, { @@ -34820,11 +28000,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -34848,11 +28023,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Iterates EventEmitter or EventTarget events with buffered delivery, close events, cancellation, watermark backpressure, and listener cleanup.", - "verification": "test-backed" } }, { @@ -34876,11 +28046,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -34904,11 +28069,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Registers disposable abort listeners that run even when ordinary propagation is stopped; already-aborted signals schedule the callback in a microtask.", - "verification": "test-backed" } }, { @@ -34932,11 +28092,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -34960,11 +28115,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -34988,11 +28138,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -35016,11 +28161,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -35044,11 +28184,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -35072,11 +28207,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35100,11 +28230,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35128,11 +28253,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35156,11 +28276,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -35184,11 +28299,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35212,11 +28322,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -35240,11 +28345,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -35268,11 +28368,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35296,11 +28391,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35324,11 +28414,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35352,11 +28437,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35380,11 +28460,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -35408,11 +28483,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35436,11 +28506,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -35464,11 +28529,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35492,11 +28552,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35520,11 +28575,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35548,11 +28598,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35576,11 +28621,6 @@ "status": "partial", "detail": "Changes timestamps using numeric seconds, numeric strings, and Dates with tested argument validation; link variants update the symlink itself.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -35604,11 +28644,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35632,11 +28667,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35660,11 +28690,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35688,11 +28713,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35716,11 +28736,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -35744,11 +28759,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -35772,11 +28782,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -35800,11 +28805,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -35828,11 +28828,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -35856,11 +28851,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -35884,11 +28874,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -35912,11 +28897,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -35940,11 +28920,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -35968,11 +28943,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -35996,11 +28966,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36024,11 +28989,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36052,11 +29012,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36080,11 +29035,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36108,11 +29058,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36136,11 +29081,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36164,11 +29104,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36192,11 +29127,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36220,11 +29150,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36248,11 +29173,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36276,11 +29196,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36304,11 +29219,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36332,11 +29242,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36360,11 +29265,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36388,11 +29288,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36416,11 +29311,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36444,11 +29334,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36472,11 +29357,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36500,11 +29380,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36528,11 +29403,6 @@ "status": "partial", "detail": "Reads filesystem capacity using string, Buffer, or file URL paths with number or BigInt fields and deferred callbacks; StatFs prototype behavior and complete filesystem error metadata remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36556,11 +29426,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36584,11 +29449,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36612,11 +29472,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36640,11 +29495,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36668,11 +29518,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36696,11 +29541,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36724,11 +29564,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36752,11 +29587,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36780,11 +29610,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36808,11 +29633,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36836,11 +29656,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36864,11 +29679,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36892,11 +29702,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36920,11 +29725,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -36948,11 +29748,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -36976,11 +29771,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37004,11 +29794,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37032,11 +29817,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37060,11 +29840,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37088,11 +29863,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37116,11 +29886,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37144,11 +29909,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37172,11 +29932,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37200,11 +29955,6 @@ "status": "partial", "detail": "Changes timestamps using numeric seconds, numeric strings, and Dates with tested argument validation; link variants update the symlink itself.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37228,11 +29978,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37256,11 +30001,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37284,11 +30024,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37312,11 +30047,6 @@ "status": "partial", "detail": "Changes timestamps using numeric seconds, numeric strings, and Dates with tested argument validation; link variants update the symlink itself.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37340,11 +30070,6 @@ "status": "partial", "detail": "Creates hard or symbolic links and reads link targets using string, Buffer, or file URL paths, with encoded results and deferred error-first callbacks; complete filesystem error metadata remains unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37368,11 +30093,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37396,11 +30116,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37424,11 +30139,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37452,11 +30162,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37480,11 +30185,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37508,11 +30208,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37536,11 +30231,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37564,11 +30254,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37592,11 +30277,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37620,11 +30300,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37648,11 +30323,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37676,11 +30346,6 @@ "status": "partial", "detail": "Creates hard or symbolic links and reads link targets using string, Buffer, or file URL paths, with encoded results and deferred error-first callbacks; complete filesystem error metadata remains unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37704,11 +30369,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37732,11 +30392,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37760,11 +30415,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37788,11 +30438,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37816,11 +30461,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37844,11 +30484,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37872,11 +30507,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -37900,11 +30530,6 @@ "status": "partial", "detail": "Reads filesystem capacity using string, Buffer, or file URL paths with number or BigInt fields and deferred callbacks; StatFs prototype behavior and complete filesystem error metadata remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37928,11 +30553,6 @@ "status": "partial", "detail": "Creates hard or symbolic links and reads link targets using string, Buffer, or file URL paths, with encoded results and deferred error-first callbacks; complete filesystem error metadata remains unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37956,11 +30576,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -37984,11 +30599,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38012,11 +30622,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38040,11 +30645,6 @@ "status": "partial", "detail": "Changes timestamps using numeric seconds, numeric strings, and Dates with tested argument validation; link variants update the symlink itself.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38068,11 +30668,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -38096,11 +30691,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -38124,11 +30714,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38152,11 +30737,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38180,11 +30760,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38208,11 +30783,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38236,11 +30806,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38264,11 +30829,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38292,11 +30852,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38320,11 +30875,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38348,11 +30898,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38376,11 +30921,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38404,11 +30944,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38432,11 +30967,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38460,11 +30990,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38488,11 +31013,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38516,11 +31036,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38544,11 +31059,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38572,11 +31082,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38600,11 +31105,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38628,11 +31128,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38656,11 +31151,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38684,11 +31174,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38712,11 +31197,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38740,11 +31220,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38768,11 +31243,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38796,11 +31266,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38824,11 +31289,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38852,11 +31312,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38880,11 +31335,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38908,11 +31358,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -38936,11 +31381,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38964,11 +31404,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -38992,11 +31427,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39020,11 +31450,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39048,11 +31473,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39076,11 +31496,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39104,11 +31519,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39132,11 +31542,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39160,11 +31565,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39188,11 +31588,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39216,11 +31611,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39244,11 +31634,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39272,11 +31657,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39300,11 +31680,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39328,11 +31703,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39356,11 +31726,6 @@ "status": "partial", "detail": "Reads filesystem capacity using string, Buffer, or file URL paths with number or BigInt fields and deferred callbacks; StatFs prototype behavior and complete filesystem error metadata remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39384,11 +31749,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39412,11 +31772,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39440,11 +31795,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39468,11 +31818,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39496,11 +31841,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39524,11 +31864,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39552,11 +31887,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39580,11 +31910,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39608,11 +31933,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39636,11 +31956,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39664,11 +31979,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39692,11 +32002,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39720,11 +32025,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39748,11 +32048,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39776,11 +32071,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39804,11 +32094,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39832,11 +32117,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39860,11 +32140,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39888,11 +32163,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39916,11 +32186,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -39944,11 +32209,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -39972,11 +32232,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40000,11 +32255,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40028,11 +32278,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40056,11 +32301,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40084,11 +32324,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40112,11 +32347,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40140,11 +32370,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40168,11 +32393,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40196,11 +32416,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40224,11 +32439,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40252,11 +32462,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40280,11 +32485,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40308,11 +32508,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40336,11 +32531,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40364,11 +32554,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40392,11 +32577,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40420,11 +32600,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40448,11 +32623,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40476,11 +32646,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40504,11 +32669,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40532,11 +32692,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40560,11 +32715,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40588,11 +32738,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40616,11 +32761,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40644,11 +32784,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40672,11 +32807,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40700,11 +32830,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -40728,11 +32853,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40756,11 +32876,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40784,11 +32899,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40812,11 +32922,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40840,11 +32945,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40868,11 +32968,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40896,11 +32991,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -40924,11 +33014,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40952,11 +33037,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -40980,11 +33060,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41008,11 +33083,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41036,11 +33106,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41064,11 +33129,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41092,11 +33152,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41120,11 +33175,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41148,11 +33198,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41176,11 +33221,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41204,11 +33244,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41232,11 +33267,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41260,11 +33290,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41288,11 +33313,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41316,11 +33336,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41344,11 +33359,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41372,11 +33382,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41400,11 +33405,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41428,11 +33428,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41456,11 +33451,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41484,11 +33474,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41512,11 +33497,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41540,11 +33520,6 @@ "status": "partial", "detail": "Capacity snapshots expose seven mutable number or BigInt fields; StatFs prototype reflection and constructor behavior remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41568,11 +33543,6 @@ "status": "supported", "detail": "Filesystem-capacity fields preserve unsigned platform values as numbers or BigInts.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41596,11 +33566,6 @@ "status": "supported", "detail": "Filesystem-capacity fields preserve unsigned platform values as numbers or BigInts.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41624,11 +33589,6 @@ "status": "supported", "detail": "Filesystem-capacity fields preserve unsigned platform values as numbers or BigInts.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41652,11 +33612,6 @@ "status": "supported", "detail": "Filesystem-capacity fields preserve unsigned platform values as numbers or BigInts.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41680,11 +33635,6 @@ "status": "supported", "detail": "Filesystem-capacity fields preserve unsigned platform values as numbers or BigInts.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41708,11 +33658,6 @@ "status": "supported", "detail": "Filesystem-capacity fields preserve unsigned platform values as numbers or BigInts.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41736,11 +33681,6 @@ "status": "supported", "detail": "Filesystem-capacity fields preserve unsigned platform values as numbers or BigInts.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41764,11 +33704,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41792,11 +33727,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41820,11 +33750,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41848,11 +33773,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41876,11 +33796,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41904,11 +33819,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41932,11 +33842,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41960,11 +33865,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -41988,11 +33888,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42016,11 +33911,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42044,11 +33934,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42072,11 +33957,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42100,11 +33980,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -42128,11 +34003,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42156,11 +34026,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42184,11 +34049,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -42212,11 +34072,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42240,11 +34095,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42268,11 +34118,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42296,11 +34141,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42324,11 +34164,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42352,11 +34187,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42380,11 +34210,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42408,11 +34233,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42436,11 +34256,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42464,11 +34279,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42492,11 +34302,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42520,11 +34325,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42548,11 +34348,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42576,11 +34371,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42604,11 +34394,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42632,11 +34417,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42660,11 +34440,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42688,11 +34463,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42716,11 +34486,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42744,11 +34509,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -42772,11 +34532,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -42800,11 +34555,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -42828,11 +34578,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42856,11 +34601,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42884,11 +34624,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -42912,11 +34647,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42940,11 +34670,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42968,11 +34693,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -42996,11 +34716,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -43024,11 +34739,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -43052,11 +34762,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43080,11 +34785,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -43108,11 +34808,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided when the embedded npm module bootstrap runs; absent from standalone dynamic islands.", - "verification": "test-backed" } }, { @@ -43136,11 +34831,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43164,11 +34854,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -43192,11 +34877,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -43220,11 +34900,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43248,11 +34923,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -43276,11 +34946,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -43304,11 +34969,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43332,11 +34992,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -43360,11 +35015,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43388,11 +35038,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43416,11 +35061,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -43444,11 +35084,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43472,11 +35107,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43500,11 +35130,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -43528,11 +35153,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43556,11 +35176,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43584,11 +35199,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43612,11 +35222,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43640,11 +35245,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -43668,11 +35268,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -43696,11 +35291,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -43724,11 +35314,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -43752,11 +35337,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -43780,11 +35360,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -43808,11 +35383,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -43836,11 +35406,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -43864,11 +35429,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43892,11 +35452,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -43920,11 +35475,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -43948,11 +35498,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -43976,11 +35521,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44004,11 +35544,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44032,11 +35567,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44060,11 +35590,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -44088,11 +35613,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -44116,11 +35636,6 @@ "status": "partial", "detail": "Native codec values support UTF-8 encoding and whole-buffer decoding with recognized literal labels and default options.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44144,11 +35659,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44172,11 +35682,6 @@ "status": "partial", "detail": "Native codec values support UTF-8 encoding and whole-buffer decoding with recognized literal labels and default options.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44200,11 +35705,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44228,11 +35728,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44256,11 +35751,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44284,11 +35774,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided when the embedded npm module bootstrap runs; absent from standalone dynamic islands.", - "verification": "test-backed" } }, { @@ -44312,11 +35797,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -44340,11 +35820,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44368,11 +35843,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -44396,11 +35866,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Verified absent from the embedded engine's web/global compatibility layer.", - "verification": "verified-absence" } }, { @@ -44424,11 +35889,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44452,11 +35912,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44480,11 +35935,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44508,11 +35958,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44536,11 +35981,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44564,11 +36004,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44592,11 +36027,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44620,11 +36050,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44648,11 +36073,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44676,11 +36096,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -44704,11 +36119,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44732,11 +36142,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44760,11 +36165,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44788,11 +36188,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provided by the embedded engine's web/global compatibility layer.", - "verification": "test-backed" } }, { @@ -44816,11 +36211,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -44844,11 +36234,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -44872,11 +36257,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -44900,11 +36280,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -44928,11 +36303,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -44956,11 +36326,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -44984,11 +36349,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45012,11 +36372,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45040,11 +36395,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45068,11 +36418,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45096,11 +36441,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45124,11 +36464,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45152,11 +36487,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45180,11 +36510,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45208,11 +36533,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45236,11 +36556,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45264,11 +36579,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45292,11 +36602,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45320,11 +36625,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45348,11 +36648,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -45376,11 +36671,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45404,11 +36694,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -45432,11 +36717,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45460,11 +36740,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45488,11 +36763,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45516,11 +36786,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -45544,11 +36809,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45572,11 +36832,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45600,11 +36855,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45628,11 +36878,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45656,11 +36901,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45684,11 +36924,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45712,11 +36947,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45740,11 +36970,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -45768,11 +36993,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -45796,11 +37016,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45824,11 +37039,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -45852,11 +37062,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -45880,11 +37085,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45908,11 +37108,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -45936,11 +37131,6 @@ "status": "partial", "detail": "Static outgoing header reads and mutations support the tested string-value shapes.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -45964,11 +37154,6 @@ "status": "partial", "detail": "Static outgoing header reads and mutations support the tested string-value shapes.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -45992,11 +37177,6 @@ "status": "partial", "detail": "Static outgoing header reads and mutations support the tested string-value shapes.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46020,11 +37200,6 @@ "status": "partial", "detail": "Static outgoing header reads and mutations support the tested string-value shapes.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46048,11 +37223,6 @@ "status": "partial", "detail": "Static outgoing header reads and mutations support the tested string-value shapes.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46076,11 +37246,6 @@ "status": "partial", "detail": "Static outgoing header reads and mutations support the tested string-value shapes.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -46104,11 +37269,6 @@ "status": "partial", "detail": "Static outgoing header reads and mutations support the tested string-value shapes.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -46132,11 +37292,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46160,11 +37315,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46188,11 +37338,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -46216,11 +37361,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46244,11 +37384,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -46272,11 +37407,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46300,11 +37430,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46328,11 +37453,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46356,11 +37476,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46384,11 +37499,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46412,11 +37522,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46440,11 +37545,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46468,11 +37568,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46496,11 +37591,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46524,11 +37614,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46552,11 +37637,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46580,11 +37660,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46608,11 +37683,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46636,11 +37706,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46664,11 +37729,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46692,11 +37752,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46720,11 +37775,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46748,11 +37798,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46776,11 +37821,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46804,11 +37844,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46832,11 +37867,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46860,11 +37890,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46888,11 +37913,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -46916,11 +37936,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46944,11 +37959,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -46972,11 +37982,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47000,11 +38005,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47028,11 +38028,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47056,11 +38051,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47084,11 +38074,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47112,11 +38097,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47140,11 +38120,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47168,11 +38143,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47196,11 +38166,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47224,11 +38189,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47252,11 +38212,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47280,11 +38235,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47308,11 +38258,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47336,11 +38281,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47364,11 +38304,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47392,11 +38327,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47420,11 +38350,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47448,11 +38373,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47476,11 +38396,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47504,11 +38419,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47532,11 +38442,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47560,11 +38465,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47588,11 +38488,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47616,11 +38511,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47644,11 +38534,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47672,11 +38557,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47700,11 +38580,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47728,11 +38603,6 @@ "status": "partial", "detail": "Static outgoing header reads and mutations support the tested string-value shapes.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47756,11 +38626,6 @@ "status": "partial", "detail": "Static outgoing header reads and mutations support the tested string-value shapes.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47784,11 +38649,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47812,11 +38672,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47840,11 +38695,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47868,11 +38718,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47896,11 +38741,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47924,11 +38764,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47952,11 +38787,6 @@ "status": "partial", "detail": "Static HTTP/1.1 informational responses support the tested no-callback forms; Early Hints accepts string-valued fields.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -47980,11 +38810,6 @@ "status": "partial", "detail": "Static HTTP/1.1 informational responses support the tested no-callback forms; Early Hints accepts string-valued fields.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48008,11 +38833,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48036,11 +38856,6 @@ "status": "partial", "detail": "Static HTTP/1.1 informational responses support the tested no-callback forms; Early Hints accepts string-valued fields.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48064,11 +38879,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48092,11 +38902,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48120,11 +38925,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48148,11 +38948,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48176,11 +38971,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48204,11 +38994,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48232,11 +39017,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48260,11 +39040,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48288,11 +39063,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48316,11 +39086,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48344,11 +39109,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48372,11 +39132,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48400,11 +39155,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48428,11 +39178,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -48456,11 +39201,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -48484,11 +39224,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48512,11 +39247,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48540,11 +39270,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48568,11 +39293,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48596,11 +39316,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48624,11 +39339,6 @@ "status": "partial", "detail": "Static IncomingMessage header and trailer reads support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48652,11 +39362,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48680,11 +39385,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48708,11 +39408,6 @@ "status": "partial", "detail": "Static IncomingMessage header and trailer reads support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48736,11 +39431,6 @@ "status": "partial", "detail": "Static IncomingMessage header and trailer reads support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48764,11 +39454,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48792,11 +39477,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48820,11 +39500,6 @@ "status": "partial", "detail": "Static ServerResponse state, socket access, timeouts, and strict body length checks support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48848,11 +39523,6 @@ "status": "partial", "detail": "Static IncomingMessage header and trailer reads support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48876,11 +39546,6 @@ "status": "partial", "detail": "Static IncomingMessage header and trailer reads support the tested HTTP/1.1 forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48904,11 +39569,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48932,11 +39592,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48960,11 +39615,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -48988,11 +39638,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49016,11 +39661,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49044,11 +39684,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49072,11 +39707,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49100,11 +39730,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49128,11 +39753,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49156,11 +39776,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49184,11 +39799,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49212,11 +39822,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49240,11 +39845,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49268,11 +39868,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49296,11 +39891,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49324,11 +39914,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49352,11 +39937,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49380,11 +39960,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49408,11 +39983,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49436,11 +40006,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49464,11 +40029,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49492,11 +40052,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49520,11 +40075,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49548,11 +40098,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49576,11 +40121,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49604,11 +40144,6 @@ "status": "partial", "detail": "Static HTTP request metadata and message state support the tested lifecycle.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49632,11 +40167,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49660,11 +40190,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49688,11 +40213,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49716,11 +40236,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49744,11 +40259,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49772,11 +40282,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49800,11 +40305,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49828,11 +40328,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -49856,11 +40351,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -49884,11 +40374,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -49912,11 +40397,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -49940,11 +40420,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -49968,11 +40443,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -49996,11 +40466,6 @@ "status": "partial", "detail": "Static header validation is implemented for the tested call shapes.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -50024,11 +40489,6 @@ "status": "partial", "detail": "Static header validation is implemented for the tested call shapes.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -50052,11 +40512,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -50080,11 +40535,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -50108,11 +40558,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -50136,11 +40581,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -50164,11 +40604,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -50192,11 +40627,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -50220,11 +40650,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -50248,11 +40673,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50276,11 +40696,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50304,11 +40719,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50332,11 +40742,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50360,11 +40765,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50388,11 +40788,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50416,11 +40811,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50444,11 +40834,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50472,11 +40857,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50500,11 +40880,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50528,11 +40903,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50556,11 +40926,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50584,11 +40949,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50612,11 +40972,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50640,11 +40995,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50668,11 +41018,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50696,11 +41041,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50724,11 +41064,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50752,11 +41087,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50780,11 +41110,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50808,11 +41133,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50836,11 +41156,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50864,11 +41179,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50892,11 +41202,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50920,11 +41225,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50948,11 +41248,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -50976,11 +41271,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51004,11 +41294,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51032,11 +41317,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51060,11 +41340,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51088,11 +41363,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51116,11 +41386,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51144,11 +41409,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51172,11 +41432,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51200,11 +41455,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51228,11 +41478,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51256,11 +41501,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51284,11 +41524,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51312,11 +41547,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51340,11 +41570,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51368,11 +41593,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51396,11 +41616,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51424,11 +41639,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51452,11 +41662,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51480,11 +41685,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51508,11 +41708,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51536,11 +41731,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51564,11 +41754,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51592,11 +41777,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51620,11 +41800,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51648,11 +41823,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51676,11 +41846,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51704,11 +41869,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51732,11 +41892,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51760,11 +41915,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51788,11 +41938,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51816,11 +41961,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51844,11 +41984,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51872,11 +42007,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51900,11 +42030,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51928,11 +42053,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51956,11 +42076,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -51984,11 +42099,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52012,11 +42122,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52040,11 +42145,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52068,11 +42168,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52096,11 +42191,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52124,11 +42214,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52152,11 +42237,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52180,11 +42260,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52208,11 +42283,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52236,11 +42306,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52264,11 +42329,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52292,11 +42352,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52320,11 +42375,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52348,11 +42398,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52376,11 +42421,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52404,11 +42444,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52432,11 +42467,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52460,11 +42490,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52488,11 +42513,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52516,11 +42536,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52544,11 +42559,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52572,11 +42582,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52600,11 +42605,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52628,11 +42628,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52656,11 +42651,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52684,11 +42674,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52712,11 +42697,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52740,11 +42720,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52768,11 +42743,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52796,11 +42766,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52824,11 +42789,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52852,11 +42812,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52880,11 +42835,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52908,11 +42858,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52936,11 +42881,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52964,11 +42904,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -52992,11 +42927,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53020,11 +42950,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53048,11 +42973,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53076,11 +42996,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53104,11 +43019,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53132,11 +43042,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53160,11 +43065,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53188,11 +43088,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53216,11 +43111,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53244,11 +43134,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53272,11 +43157,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53300,11 +43180,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53328,11 +43203,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53356,11 +43226,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53384,11 +43249,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53412,11 +43272,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53440,11 +43295,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53468,11 +43318,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53496,11 +43341,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53524,11 +43364,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53552,11 +43387,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53580,11 +43410,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53608,11 +43433,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53636,11 +43456,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53664,11 +43479,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53692,11 +43502,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53720,11 +43525,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53748,11 +43548,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53776,11 +43571,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53804,11 +43594,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53832,11 +43617,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53860,11 +43640,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53888,11 +43663,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53916,11 +43686,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53944,11 +43709,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -53972,11 +43732,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54000,11 +43755,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54028,11 +43778,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54056,11 +43801,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54084,11 +43824,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54112,11 +43847,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54140,11 +43870,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54168,11 +43893,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54196,11 +43916,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54224,11 +43939,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54252,11 +43962,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54280,11 +43985,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54308,11 +44008,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54336,11 +44031,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54364,11 +44054,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54392,11 +44077,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54420,11 +44100,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54448,11 +44123,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54476,11 +44146,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54504,11 +44169,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54532,11 +44192,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54560,11 +44215,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54588,11 +44238,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54616,11 +44261,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54644,11 +44284,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54672,11 +44307,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54700,11 +44330,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54728,11 +44353,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54756,11 +44376,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54784,11 +44399,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54812,11 +44422,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54840,11 +44445,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54868,11 +44468,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -54896,11 +44491,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -54924,11 +44514,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -54952,11 +44537,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -54980,11 +44560,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -55008,11 +44583,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -55036,11 +44606,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -55064,11 +44629,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -55092,11 +44652,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -55120,11 +44675,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -55148,11 +44698,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -55176,11 +44721,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -55204,11 +44744,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -55232,11 +44767,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -55260,11 +44790,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -55288,11 +44813,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -55316,11 +44836,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -55344,11 +44859,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -55372,11 +44882,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -55400,11 +44905,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -55428,11 +44928,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -55456,11 +44951,6 @@ "status": "not-implemented", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -55484,11 +44974,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55512,11 +44997,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55540,11 +45020,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55568,11 +45043,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55596,11 +45066,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55624,11 +45089,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55652,11 +45112,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55680,11 +45135,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55708,11 +45158,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55736,11 +45181,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55764,11 +45204,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55792,11 +45227,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55820,11 +45250,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55848,11 +45273,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55876,11 +45296,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55904,11 +45319,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55932,11 +45342,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55960,11 +45365,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -55988,11 +45388,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -56016,11 +45411,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -56044,11 +45434,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -56072,11 +45457,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -56100,11 +45480,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -56128,11 +45503,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -56156,11 +45526,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -56184,11 +45549,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -56212,11 +45572,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -56240,11 +45595,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -56268,11 +45618,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -56296,11 +45641,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -56324,11 +45664,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56352,11 +45687,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56380,11 +45710,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56408,11 +45733,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56436,11 +45756,6 @@ "status": "unreviewed", "detail": "Not yet classified; tracked as open parity work.", "verification": "unreviewed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56464,11 +45779,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56492,11 +45802,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56520,11 +45825,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56548,11 +45848,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56576,11 +45871,6 @@ "status": "not-implemented", "detail": "Not implemented in scriptc's static module-loader subset yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -56604,11 +45894,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -56632,11 +45917,6 @@ "status": "unreviewed", "detail": "Not yet classified; tracked as open parity work.", "verification": "unreviewed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56660,11 +45940,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56688,11 +45963,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56716,11 +45986,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56744,11 +46009,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56772,11 +46032,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56800,11 +46055,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56828,11 +46078,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56856,11 +46101,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56884,11 +46124,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56912,11 +46147,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56940,11 +46170,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -56968,11 +46193,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -56996,11 +46216,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57024,11 +46239,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57052,11 +46262,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -57080,11 +46285,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57108,11 +46308,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57136,11 +46331,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57164,11 +46354,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57192,11 +46377,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57220,11 +46400,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57248,11 +46423,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57276,11 +46446,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57304,11 +46469,6 @@ "status": "not-implemented", "detail": "Not implemented in scriptc's static module-loader subset yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -57332,11 +46492,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57360,11 +46515,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57388,11 +46538,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57416,11 +46561,6 @@ "status": "not-implemented", "detail": "Not implemented in scriptc's static module-loader subset yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -57444,11 +46584,6 @@ "status": "not-implemented", "detail": "Not implemented in scriptc's static module-loader subset yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -57472,11 +46607,6 @@ "status": "not-implemented", "detail": "Not implemented in scriptc's static module-loader subset yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -57500,11 +46630,6 @@ "status": "not-implemented", "detail": "Not implemented in scriptc's static module-loader subset yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -57528,11 +46653,6 @@ "status": "not-implemented", "detail": "Not implemented in scriptc's static module-loader subset yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -57556,11 +46676,6 @@ "status": "not-implemented", "detail": "Not implemented in scriptc's static module-loader subset yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -57584,11 +46699,6 @@ "status": "not-implemented", "detail": "Not implemented in scriptc's static module-loader subset yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -57612,11 +46722,6 @@ "status": "not-implemented", "detail": "Not implemented in scriptc's static module-loader subset yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Not implemented in the embedded module-loader subset yet.", - "verification": "declared-gap" } }, { @@ -57640,11 +46745,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -57663,11 +46763,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -57686,11 +46781,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -57709,11 +46799,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -57737,11 +46822,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -57760,11 +46840,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -57788,11 +46863,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -57816,11 +46886,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -57844,11 +46909,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -57867,11 +46927,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -57890,11 +46945,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -57913,11 +46963,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -57936,11 +46981,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -57959,11 +46999,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -57982,11 +47017,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58010,11 +47040,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58038,11 +47063,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58066,11 +47086,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58094,11 +47109,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58122,11 +47132,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58150,11 +47155,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -58178,11 +47178,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58206,11 +47201,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58234,11 +47224,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58262,11 +47247,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58290,11 +47270,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58318,11 +47293,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58346,11 +47316,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -58374,11 +47339,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58402,11 +47362,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58430,11 +47385,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58453,11 +47403,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -58476,11 +47421,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -58499,11 +47439,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -58522,11 +47457,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -58545,11 +47475,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -58568,11 +47493,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -58591,11 +47511,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -58614,11 +47529,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -58642,11 +47552,6 @@ "status": "supported", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "supported", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -58670,11 +47575,6 @@ "status": "supported", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -58693,11 +47593,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -58716,11 +47611,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58739,11 +47629,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58762,11 +47647,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58785,11 +47665,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58808,11 +47683,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58831,11 +47701,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58859,11 +47724,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58887,11 +47747,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58910,11 +47765,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58933,11 +47783,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58956,11 +47801,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -58979,11 +47819,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59002,11 +47837,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59025,11 +47855,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59048,11 +47873,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59071,11 +47891,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -59094,11 +47909,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59117,11 +47927,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59140,11 +47945,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59163,11 +47963,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59186,11 +47981,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59209,11 +47999,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59232,11 +48017,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59255,11 +48035,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59278,11 +48053,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59301,11 +48071,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59324,11 +48089,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59347,11 +48107,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59370,11 +48125,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59393,11 +48143,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59416,11 +48161,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59439,11 +48179,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59462,11 +48197,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59485,11 +48215,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59508,11 +48233,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59531,11 +48251,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -59554,11 +48269,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59577,11 +48287,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59600,11 +48305,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59623,11 +48323,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59646,11 +48341,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59669,11 +48359,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59692,11 +48377,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59715,11 +48395,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59738,11 +48413,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59761,11 +48431,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59784,11 +48449,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59807,11 +48467,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59830,11 +48485,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59853,11 +48503,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59876,11 +48521,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59899,11 +48539,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59922,11 +48557,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59945,11 +48575,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59968,11 +48593,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -59991,11 +48611,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60014,11 +48629,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60042,11 +48652,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60065,11 +48670,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60088,11 +48688,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60111,11 +48706,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60134,11 +48724,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60157,11 +48742,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60180,11 +48760,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60203,11 +48778,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60226,11 +48796,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60249,11 +48814,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60272,11 +48832,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60295,11 +48850,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60318,11 +48868,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60341,11 +48886,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60364,11 +48904,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60387,11 +48922,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60410,11 +48940,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60433,11 +48958,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60456,11 +48976,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60479,11 +48994,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60502,11 +49012,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60525,11 +49030,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60548,11 +49048,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60571,11 +49066,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60594,11 +49084,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60617,11 +49102,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60640,11 +49120,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -60663,11 +49138,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -60686,11 +49156,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -60709,11 +49174,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -60732,11 +49192,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -60755,11 +49210,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -60778,11 +49228,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -60801,11 +49246,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -60824,11 +49264,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -60847,11 +49282,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60870,11 +49300,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60893,11 +49318,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60916,11 +49336,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -60939,11 +49354,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -60962,11 +49372,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -60985,11 +49390,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61013,11 +49413,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -61041,11 +49436,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61069,11 +49459,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61097,11 +49482,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61125,11 +49505,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61153,11 +49528,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61181,11 +49551,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -61209,11 +49574,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61237,11 +49597,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61265,11 +49620,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61293,11 +49643,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61321,11 +49666,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61349,11 +49689,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61377,11 +49712,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61405,11 +49735,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -61433,11 +49758,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61461,11 +49781,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61489,11 +49804,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61517,11 +49827,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61545,11 +49850,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61573,11 +49873,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61601,11 +49896,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61629,11 +49919,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61657,11 +49942,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -61685,11 +49965,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -61713,11 +49988,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61741,11 +50011,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61769,11 +50034,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61797,11 +50057,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61825,11 +50080,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -61853,11 +50103,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61881,11 +50126,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61909,11 +50149,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61937,11 +50172,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61965,11 +50195,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -61993,11 +50218,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -62021,11 +50241,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -62049,11 +50264,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -62077,11 +50287,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -62105,11 +50310,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -62133,11 +50333,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -62161,11 +50356,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -62189,11 +50379,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62217,11 +50402,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62245,11 +50425,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62273,11 +50448,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62301,11 +50471,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62329,11 +50494,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62357,11 +50517,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62385,11 +50540,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62413,11 +50563,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62441,11 +50586,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62469,11 +50609,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62497,11 +50632,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62525,11 +50655,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62553,11 +50678,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62581,11 +50701,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62609,11 +50724,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62637,11 +50747,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62665,11 +50770,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62693,11 +50793,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62721,11 +50816,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62749,11 +50839,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62777,11 +50862,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62805,11 +50885,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62833,11 +50908,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62861,11 +50931,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62889,11 +50954,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62917,11 +50977,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62945,11 +51000,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -62973,11 +51023,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63001,11 +51046,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63029,11 +51069,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63057,11 +51092,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63085,11 +51115,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63113,11 +51138,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63141,11 +51161,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63169,11 +51184,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63197,11 +51207,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63225,11 +51230,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63253,11 +51253,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -63281,11 +51276,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -63309,11 +51299,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -63337,11 +51322,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -63365,11 +51345,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63393,11 +51368,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63421,11 +51391,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63449,11 +51414,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63477,11 +51437,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63505,11 +51460,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63533,11 +51483,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63561,11 +51506,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63589,11 +51529,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63617,11 +51552,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63645,11 +51575,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63673,11 +51598,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63701,11 +51621,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63729,11 +51644,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63757,11 +51667,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63785,11 +51690,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63813,11 +51713,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63841,11 +51736,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63869,11 +51759,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63897,11 +51782,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63925,11 +51805,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63953,11 +51828,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -63981,11 +51851,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64009,11 +51874,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64037,11 +51897,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64065,11 +51920,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64093,11 +51943,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64121,11 +51966,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64149,11 +51989,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64177,11 +52012,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64205,11 +52035,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64233,11 +52058,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64261,11 +52081,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64289,11 +52104,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -64317,11 +52127,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64345,11 +52150,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -64373,11 +52173,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -64401,11 +52196,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -64429,11 +52219,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64457,11 +52242,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64485,11 +52265,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -64513,11 +52288,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -64541,11 +52311,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -64569,11 +52334,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -64597,11 +52357,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64625,11 +52380,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -64653,11 +52403,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -64681,11 +52426,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64709,11 +52449,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64737,11 +52472,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -64765,11 +52495,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64793,11 +52518,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64821,11 +52541,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64844,11 +52559,6 @@ "status": "not-implemented", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -64872,11 +52582,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -64900,11 +52605,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -64923,11 +52623,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -64946,11 +52641,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64969,11 +52659,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -64992,11 +52677,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65015,11 +52695,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65043,11 +52718,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65066,11 +52736,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65089,11 +52754,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65112,11 +52772,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65135,11 +52790,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65158,11 +52808,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65181,11 +52826,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65204,11 +52844,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65227,11 +52862,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65250,11 +52880,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65273,11 +52898,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65296,11 +52916,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65319,11 +52934,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -65342,11 +52952,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65365,11 +52970,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65388,11 +52988,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -65411,11 +53006,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65434,11 +53024,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65457,11 +53042,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -65480,11 +53060,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -65508,11 +53083,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65531,11 +53101,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -65559,11 +53124,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65587,11 +53147,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65615,11 +53170,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65638,11 +53188,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65661,11 +53206,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65684,11 +53224,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65707,11 +53242,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65730,11 +53260,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65753,11 +53278,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65776,11 +53296,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65799,11 +53314,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65827,11 +53337,6 @@ "status": "partial", "detail": "Native monotonic clock supports tuple and bigint results, including stored JavaScript callable values.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -65850,11 +53355,6 @@ "status": "partial", "detail": "Native monotonic clock supports tuple and bigint results, including stored JavaScript callable values.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65873,11 +53373,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65896,11 +53391,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65919,11 +53409,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -65942,11 +53427,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -65965,11 +53445,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -65993,11 +53468,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66021,11 +53491,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66049,11 +53514,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66072,11 +53532,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66095,11 +53550,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66118,11 +53568,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66141,11 +53586,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66164,11 +53604,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66187,11 +53622,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66210,11 +53640,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66238,11 +53663,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66261,11 +53681,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66284,11 +53699,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66312,11 +53722,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66335,11 +53740,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66363,11 +53763,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66386,11 +53781,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66409,11 +53799,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66432,11 +53817,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66455,11 +53835,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66478,11 +53853,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66501,11 +53871,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66524,11 +53889,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66547,11 +53907,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66570,11 +53925,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66593,11 +53943,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66616,11 +53961,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66639,11 +53979,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66662,11 +53997,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66685,11 +54015,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66708,11 +54033,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -66731,11 +54051,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66754,11 +54069,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66777,11 +54087,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66805,11 +54110,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66828,11 +54128,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66851,11 +54146,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66879,11 +54169,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66907,11 +54192,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66935,11 +54215,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66963,11 +54238,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -66991,11 +54261,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67019,11 +54284,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67042,11 +54302,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67065,11 +54320,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67088,11 +54338,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67111,11 +54356,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67134,11 +54374,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67157,11 +54392,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67180,11 +54410,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67203,11 +54428,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67226,11 +54446,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67249,11 +54464,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67272,11 +54482,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67295,11 +54500,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67318,11 +54518,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67341,11 +54536,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67364,11 +54554,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67387,11 +54572,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67410,11 +54590,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67433,11 +54608,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67461,11 +54631,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67484,11 +54649,6 @@ "status": "partial", "detail": "Stored JavaScript process streams support native input listeners, pause/resume and buffered reads, synchronous output writes, and output write replacement; other stream operations remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67507,11 +54667,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67530,11 +54685,6 @@ "status": "partial", "detail": "Stored JavaScript process streams support native input listeners, pause/resume and buffered reads, synchronous output writes, and output write replacement; other stream operations remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67553,11 +54703,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67576,11 +54721,6 @@ "status": "partial", "detail": "Stored JavaScript process streams support native input listeners, pause/resume and buffered reads, synchronous output writes, and output write replacement; other stream operations remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67599,11 +54739,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67622,11 +54757,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67645,11 +54775,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67668,11 +54793,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67691,11 +54811,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67714,11 +54829,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67737,11 +54847,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67765,11 +54870,6 @@ "status": "not-implemented", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -67793,11 +54893,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67821,11 +54916,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67849,11 +54939,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67877,11 +54962,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67905,11 +54985,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -67933,11 +55008,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67961,11 +55031,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -67989,11 +55054,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68017,11 +55077,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -68045,11 +55100,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68073,11 +55123,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68101,11 +55146,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68129,11 +55169,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68157,11 +55192,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68185,11 +55215,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68213,11 +55238,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -68241,11 +55261,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68269,11 +55284,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -68297,11 +55307,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68325,11 +55330,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68353,11 +55353,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68381,11 +55376,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68409,11 +55399,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68437,11 +55422,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68465,11 +55445,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68493,11 +55468,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68521,11 +55491,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68549,11 +55514,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68577,11 +55537,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -68605,11 +55560,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68633,11 +55583,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68661,11 +55606,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68689,11 +55629,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68717,11 +55652,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68745,11 +55675,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -68773,11 +55698,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68801,11 +55721,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -68829,11 +55744,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -68857,11 +55767,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -68885,11 +55790,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -68913,11 +55813,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -68941,11 +55836,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -68969,11 +55859,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -68997,11 +55882,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -69025,11 +55905,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69053,11 +55928,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69081,11 +55951,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69109,11 +55974,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69137,11 +55997,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69165,11 +56020,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69193,11 +56043,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69221,11 +56066,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69249,11 +56089,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69277,11 +56112,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69305,11 +56135,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69333,11 +56158,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69361,11 +56181,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -69389,11 +56204,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -69417,11 +56227,6 @@ "status": "not-implemented", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -69445,11 +56250,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69473,11 +56273,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69501,11 +56296,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69529,11 +56319,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69557,11 +56342,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69585,11 +56365,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69613,11 +56388,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69641,11 +56411,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69669,11 +56434,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69697,11 +56457,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69725,11 +56480,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69753,11 +56503,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69781,11 +56526,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69809,11 +56549,6 @@ "status": "not-implemented", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -69837,11 +56572,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69865,11 +56595,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69893,11 +56618,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69921,11 +56641,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69949,11 +56664,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -69977,11 +56687,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70005,11 +56710,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70033,11 +56733,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70061,11 +56756,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70089,11 +56779,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70117,11 +56802,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70145,11 +56825,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70173,11 +56848,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70201,11 +56871,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70229,11 +56894,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70257,11 +56917,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70285,11 +56940,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70313,11 +56963,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70341,11 +56986,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70369,11 +57009,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70397,11 +57032,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70425,11 +57055,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70453,11 +57078,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70481,11 +57101,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70509,11 +57124,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70537,11 +57147,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70565,11 +57170,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70593,11 +57193,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70621,11 +57216,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70649,11 +57239,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70677,11 +57262,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70705,11 +57285,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70733,11 +57308,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70761,11 +57331,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70789,11 +57354,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70817,11 +57377,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70845,11 +57400,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70873,11 +57423,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70901,11 +57446,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70929,11 +57469,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70957,11 +57492,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -70985,11 +57515,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -71013,11 +57538,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -71041,11 +57561,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -71069,11 +57584,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -71097,11 +57607,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -71125,11 +57630,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -71153,11 +57653,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -71181,11 +57676,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71209,11 +57699,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71237,11 +57722,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71265,11 +57745,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71293,11 +57768,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71321,11 +57791,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71349,11 +57814,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71377,11 +57837,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71405,11 +57860,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71433,11 +57883,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71461,11 +57906,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -71489,11 +57929,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71517,11 +57952,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71545,11 +57975,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71573,11 +57998,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71601,11 +58021,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71629,11 +58044,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71657,11 +58067,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71685,11 +58090,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71713,11 +58113,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71741,11 +58136,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71769,11 +58159,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71797,11 +58182,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -71825,11 +58205,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -71853,11 +58228,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71881,11 +58251,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71909,11 +58274,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71937,11 +58297,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -71965,11 +58320,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -71993,11 +58343,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -72021,11 +58366,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -72049,11 +58389,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -72077,11 +58412,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72105,11 +58435,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72133,11 +58458,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72161,11 +58481,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72189,11 +58504,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72217,11 +58527,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72245,11 +58550,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72273,11 +58573,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72301,11 +58596,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -72329,11 +58619,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72357,11 +58642,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72385,11 +58665,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -72413,11 +58688,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -72441,11 +58711,6 @@ "status": "partial", "detail": "Implemented for the documented static async-iteration subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -72469,11 +58734,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -72497,11 +58757,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -72525,11 +58780,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -72553,11 +58803,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72581,11 +58826,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -72609,11 +58849,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72637,11 +58872,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72665,11 +58895,6 @@ "status": "partial", "detail": "Implemented for the documented static async-iteration subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72693,11 +58918,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72721,11 +58941,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72749,11 +58964,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72777,11 +58987,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72805,11 +59010,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72833,11 +59033,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72861,11 +59056,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72889,11 +59079,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72917,11 +59102,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72945,11 +59125,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -72973,11 +59148,6 @@ "status": "partial", "detail": "Implemented for the documented static async-iteration subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73001,11 +59171,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73029,11 +59194,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73057,11 +59217,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73085,11 +59240,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73113,11 +59263,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -73141,11 +59286,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -73169,11 +59309,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -73197,11 +59332,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -73225,11 +59355,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -73253,11 +59378,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -73281,11 +59401,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -73309,11 +59424,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -73337,11 +59447,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -73365,11 +59470,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -73393,11 +59493,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -73421,11 +59516,6 @@ "status": "partial", "detail": "Implemented for the documented static async-iteration subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73449,11 +59539,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73477,11 +59562,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73505,11 +59585,6 @@ "status": "partial", "detail": "Implemented for the documented static async-iteration subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73533,11 +59608,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73561,11 +59631,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73589,11 +59654,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73617,11 +59677,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73645,11 +59700,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73673,11 +59723,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73701,11 +59746,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73729,11 +59769,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73757,11 +59792,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73785,11 +59815,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73813,11 +59838,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73841,11 +59861,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73869,11 +59884,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73897,11 +59907,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73925,11 +59930,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73953,11 +59953,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -73981,11 +59976,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74009,11 +59999,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74037,11 +60022,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74065,11 +60045,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74093,11 +60068,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74121,11 +60091,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74149,11 +60114,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74177,11 +60137,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74205,11 +60160,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74233,11 +60183,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74261,11 +60206,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74289,11 +60229,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74317,11 +60252,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74345,11 +60275,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74373,11 +60298,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -74401,11 +60321,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74429,11 +60344,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -74457,11 +60367,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -74485,11 +60390,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74513,11 +60413,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74541,11 +60436,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74569,11 +60459,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74597,11 +60482,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74625,11 +60505,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74653,11 +60528,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74681,11 +60551,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74709,11 +60574,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74737,11 +60597,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -74765,11 +60620,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -74793,11 +60643,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74821,11 +60666,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74849,11 +60689,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74877,11 +60712,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74905,11 +60735,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -74933,11 +60758,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -74961,11 +60781,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -74989,11 +60804,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -75017,11 +60827,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -75045,11 +60850,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -75073,11 +60873,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -75101,11 +60896,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -75129,11 +60919,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75157,11 +60942,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75185,11 +60965,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75213,11 +60988,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75241,11 +61011,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75269,11 +61034,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75297,11 +61057,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75325,11 +61080,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75353,11 +61103,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75381,11 +61126,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75409,11 +61149,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75437,11 +61172,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75465,11 +61195,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75493,11 +61218,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75521,11 +61241,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75549,11 +61264,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75577,11 +61287,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75605,11 +61310,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75633,11 +61333,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75661,11 +61356,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75689,11 +61379,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75717,11 +61402,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75745,11 +61425,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75773,11 +61448,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75801,11 +61471,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75829,11 +61494,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75857,11 +61517,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75885,11 +61540,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75913,11 +61563,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75941,11 +61586,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75969,11 +61609,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -75997,11 +61632,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76025,11 +61655,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76053,11 +61678,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76081,11 +61701,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76109,11 +61724,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76137,11 +61747,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76165,11 +61770,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76193,11 +61793,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76221,11 +61816,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76249,11 +61839,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76277,11 +61862,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76305,11 +61885,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76333,11 +61908,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76361,11 +61931,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76389,11 +61954,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76417,11 +61977,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76445,11 +62000,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76473,11 +62023,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76501,11 +62046,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76529,11 +62069,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76557,11 +62092,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76585,11 +62115,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76613,11 +62138,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76641,11 +62161,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76669,11 +62184,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76697,11 +62207,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76725,11 +62230,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76753,11 +62253,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76781,11 +62276,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76809,11 +62299,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76837,11 +62322,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76865,11 +62345,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76893,11 +62368,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76921,11 +62391,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76949,11 +62414,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -76977,11 +62437,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77005,11 +62460,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77033,11 +62483,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77061,11 +62506,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77089,11 +62529,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77117,11 +62552,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77145,11 +62575,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77173,11 +62598,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77201,11 +62621,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77229,11 +62644,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77257,11 +62667,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77285,11 +62690,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77313,11 +62713,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77341,11 +62736,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77369,11 +62759,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77397,11 +62782,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77425,11 +62805,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77453,11 +62828,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77481,11 +62851,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77509,11 +62874,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77537,11 +62897,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77565,11 +62920,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77593,11 +62943,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77621,11 +62966,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77649,11 +62989,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77677,11 +63012,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77705,11 +63035,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77733,11 +63058,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77761,11 +63081,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77789,11 +63104,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77817,11 +63127,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77845,11 +63150,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77873,11 +63173,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77901,11 +63196,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77929,11 +63219,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77957,11 +63242,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -77985,11 +63265,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -78013,11 +63288,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -78041,11 +63311,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -78069,11 +63334,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -78097,11 +63357,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -78125,11 +63380,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -78153,11 +63403,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -78181,11 +63426,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -78209,11 +63449,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -78237,11 +63472,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides cancellable promise timers, buffered interval iteration, scheduler waits and yields, and ref options over the native event loop; delay warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -78265,11 +63495,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides cancellable promise timers, buffered interval iteration, scheduler waits and yields, and ref options over the native event loop; delay warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -78293,11 +63518,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides cancellable promise timers, buffered interval iteration, scheduler waits and yields, and ref options over the native event loop; delay warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -78321,11 +63541,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provides cancellable promise timers, buffered interval iteration, scheduler waits and yields, and ref options over the native event loop; delay warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -78349,11 +63564,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provides cancellable promise timers, buffered interval iteration, scheduler waits and yields, and ref options over the native event loop; delay warnings remain outside this subset.", - "verification": "test-backed" } }, { @@ -78377,11 +63587,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -78405,11 +63610,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides timer and immediate handles with reference control, refresh, cancellation, and disposal over the native event loop.", - "verification": "test-backed" } }, { @@ -78433,11 +63633,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides timer and immediate handles with reference control, refresh, cancellation, and disposal over the native event loop.", - "verification": "test-backed" } }, { @@ -78461,11 +63656,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides timer and immediate handles with reference control, refresh, cancellation, and disposal over the native event loop.", - "verification": "test-backed" } }, { @@ -78489,11 +63679,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides timer and immediate handles with reference control, refresh, cancellation, and disposal over the native event loop.", - "verification": "test-backed" } }, { @@ -78517,11 +63702,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -78545,11 +63725,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Provides timer and immediate handles with reference control, refresh, cancellation, and disposal over the native event loop.", - "verification": "test-backed" } }, { @@ -78573,11 +63748,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides timer and immediate handles with reference control, refresh, cancellation, and disposal over the native event loop.", - "verification": "test-backed" } }, { @@ -78601,11 +63771,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides timer and immediate handles with reference control, refresh, cancellation, and disposal over the native event loop.", - "verification": "test-backed" } }, { @@ -78629,11 +63794,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides timer and immediate handles with reference control, refresh, cancellation, and disposal over the native event loop.", - "verification": "test-backed" } }, { @@ -78657,11 +63817,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides timer and immediate handles with reference control, refresh, cancellation, and disposal over the native event loop.", - "verification": "test-backed" } }, { @@ -78685,11 +63840,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -78713,11 +63863,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Provides timer and immediate handles with reference control, refresh, cancellation, and disposal over the native event loop.", - "verification": "test-backed" } }, { @@ -78741,11 +63886,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -78769,11 +63909,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -78797,11 +63932,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -78825,11 +63955,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -78853,11 +63978,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -78881,11 +64001,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -78909,11 +64024,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -78937,11 +64047,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -78965,11 +64070,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -78993,11 +64093,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79021,11 +64116,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79049,11 +64139,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79077,11 +64162,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79105,11 +64185,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79133,11 +64208,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79161,11 +64231,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79189,11 +64254,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -79217,11 +64277,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79245,11 +64300,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79273,11 +64323,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79301,11 +64346,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79329,11 +64369,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79357,11 +64392,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79385,11 +64415,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79413,11 +64438,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79441,11 +64461,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79469,11 +64484,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79497,11 +64507,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79525,11 +64530,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79553,11 +64553,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79581,11 +64576,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79609,11 +64599,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79637,11 +64622,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79665,11 +64645,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79693,11 +64668,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79721,11 +64691,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79749,11 +64714,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79777,11 +64737,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79805,11 +64760,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79833,11 +64783,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79861,11 +64806,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79889,11 +64829,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79917,11 +64852,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79945,11 +64875,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -79973,11 +64898,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80001,11 +64921,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80029,11 +64944,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80057,11 +64967,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80085,11 +64990,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80113,11 +65013,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80141,11 +65036,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80169,11 +65059,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -80197,11 +65082,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -80225,11 +65105,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -80253,11 +65128,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -80281,11 +65151,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -80309,11 +65174,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80337,11 +65197,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80365,11 +65220,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80393,11 +65243,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -80421,11 +65266,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80449,11 +65289,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80477,11 +65312,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80505,11 +65335,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80533,11 +65358,6 @@ "status": "not-implemented", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -80561,11 +65381,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -80589,11 +65404,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -80617,11 +65427,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -80645,11 +65450,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -80673,11 +65473,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -80701,11 +65496,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -80729,11 +65519,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -80757,11 +65542,6 @@ "status": "not-implemented", "detail": "No static implementation exists for this Node API family yet.", "verification": "declared-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island implementation exists for this Node API family yet.", - "verification": "declared-gap" } }, { @@ -80785,11 +65565,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -80813,11 +65588,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -80841,11 +65611,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80869,11 +65634,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80897,11 +65657,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80925,11 +65680,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -80953,11 +65703,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -80981,11 +65726,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -81009,11 +65749,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -81037,11 +65772,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -81065,11 +65795,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -81093,11 +65818,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -81121,11 +65841,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -81149,11 +65864,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -81177,11 +65887,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -81205,11 +65910,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -81233,11 +65933,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -81261,11 +65956,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -81289,11 +65979,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -81317,11 +66002,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81345,11 +66025,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81373,11 +66048,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81401,11 +66071,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81429,11 +66094,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81457,11 +66117,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81485,11 +66140,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81513,11 +66163,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81541,11 +66186,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81569,11 +66209,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81597,11 +66232,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81625,11 +66255,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81653,11 +66278,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81681,11 +66301,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81709,11 +66324,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81737,11 +66347,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81765,11 +66370,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81793,11 +66393,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81821,11 +66416,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81849,11 +66439,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81877,11 +66462,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81905,11 +66485,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81933,11 +66508,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81961,11 +66531,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -81989,11 +66554,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -82017,11 +66577,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -82045,11 +66600,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -82073,11 +66623,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -82101,11 +66646,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -82129,11 +66669,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -82157,11 +66692,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -82185,11 +66715,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -82213,11 +66738,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -82241,11 +66761,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -82269,11 +66784,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "No dynamic-island shim exists for this Node module yet.", - "verification": "registry-gap" } }, { @@ -82297,11 +66807,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -82325,11 +66830,6 @@ "status": "partial", "detail": "Supports absolute inputs and relative inputs with string or URL bases; setters and some WHATWG parsing behavior remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -82353,11 +66853,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -82381,11 +66876,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -82409,11 +66899,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -82437,11 +66922,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -82465,11 +66945,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -82493,11 +66968,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -82521,11 +66991,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -82549,11 +67014,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -82577,11 +67037,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -82605,11 +67060,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -82633,11 +67083,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -82661,11 +67106,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -82689,11 +67129,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -82717,11 +67152,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -82745,11 +67175,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -82773,11 +67198,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -82801,11 +67221,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -82829,11 +67244,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -82857,11 +67267,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -82885,11 +67290,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -82913,11 +67313,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -82941,11 +67336,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -82969,11 +67359,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -82997,11 +67382,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83025,11 +67405,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83053,11 +67428,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83081,11 +67451,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83109,11 +67474,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83137,11 +67497,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83165,11 +67520,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83193,11 +67543,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83221,11 +67566,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83249,11 +67589,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83277,11 +67612,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83305,11 +67635,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83333,11 +67658,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -83361,11 +67681,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -83389,11 +67704,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -83417,11 +67727,6 @@ "status": "partial", "detail": "Supports file-path conversion with POSIX or Windows options for the tested string and URL forms; internationalized hostnames remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Supports file-path conversion with POSIX or Windows options for the tested string and URL forms; internationalized hostnames remain unsupported.", - "verification": "test-backed" } }, { @@ -83445,11 +67750,6 @@ "status": "partial", "detail": "Converts file URLs to raw path bytes with POSIX or Windows options, preserving invalid UTF-8 and malformed escapes; internationalized hostnames remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Converts file URLs to raw path bytes with POSIX or Windows options, preserving invalid UTF-8 and malformed escapes; internationalized hostnames remain unsupported.", - "verification": "test-backed" } }, { @@ -83473,11 +67773,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -83501,11 +67796,6 @@ "status": "partial", "detail": "Supports file-path conversion with POSIX or Windows options for the tested string and URL forms; internationalized hostnames remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Supports file-path conversion with POSIX or Windows options for the tested string and URL forms; internationalized hostnames remain unsupported.", - "verification": "test-backed" } }, { @@ -83529,11 +67819,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -83557,11 +67842,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83585,11 +67865,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83613,11 +67888,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83641,11 +67911,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83669,11 +67934,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83697,11 +67957,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83725,11 +67980,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83753,11 +68003,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83781,11 +68026,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83809,11 +68049,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83837,11 +68072,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83865,11 +68095,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83893,11 +68118,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -83921,11 +68141,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -83949,11 +68164,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -83977,11 +68187,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -84005,11 +68210,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -84033,11 +68233,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -84061,11 +68256,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -84089,11 +68279,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -84117,11 +68302,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84145,11 +68325,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84173,11 +68348,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84201,11 +68371,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84229,11 +68394,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84257,11 +68417,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84285,11 +68440,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84313,11 +68463,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84341,11 +68486,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84369,11 +68509,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84397,11 +68532,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84425,11 +68555,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84453,11 +68578,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84481,11 +68601,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84509,11 +68624,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84537,11 +68647,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "supported", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -84565,11 +68670,6 @@ "status": "partial", "detail": "Native codec values support UTF-8 encoding and whole-buffer decoding with recognized literal labels and default options.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -84593,11 +68693,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -84621,11 +68716,6 @@ "status": "partial", "detail": "Native codec values support UTF-8 encoding and whole-buffer decoding with recognized literal labels and default options.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -84649,11 +68739,6 @@ "status": "partial", "detail": "Codec properties expose the canonical encoding and decoder flags.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Codec properties expose UTF-8 and decoder flags; other decoder encodings remain unsupported in the island.", - "verification": "test-backed" } }, { @@ -84677,11 +68762,6 @@ "status": "partial", "detail": "Codec properties expose the canonical encoding and decoder flags.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Codec properties expose UTF-8 and decoder flags; other decoder encodings remain unsupported in the island.", - "verification": "test-backed" } }, { @@ -84705,11 +68785,6 @@ "status": "partial", "detail": "Codec properties expose the canonical encoding and decoder flags.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Codec properties expose UTF-8 and decoder flags; other decoder encodings remain unsupported in the island.", - "verification": "test-backed" } }, { @@ -84733,11 +68808,6 @@ "status": "partial", "detail": "Native codec values support UTF-8 encoding and whole-buffer decoding with recognized literal labels and default options.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -84761,11 +68831,6 @@ "status": "partial", "detail": "Native codec values support UTF-8 encoding and whole-buffer decoding with recognized literal labels and default options.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -84789,11 +68854,6 @@ "status": "partial", "detail": "Writes complete UTF-8 characters into Uint8Array or Buffer views and reports UTF-16 units read and bytes written.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Writes complete UTF-8 characters into island-owned Uint8Array or Buffer views; byte arrays received from native code are copied.", - "verification": "test-backed" } }, { @@ -84817,11 +68877,6 @@ "status": "partial", "detail": "Codec properties expose the canonical encoding and decoder flags.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Codec properties expose UTF-8 and decoder flags; other decoder encodings remain unsupported in the island.", - "verification": "test-backed" } }, { @@ -84845,11 +68900,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Adapts callbacks and promises with receiver preservation, custom promisify hooks, function metadata, and Node-compatible argument and rejection handling; scheduling follows the island microtask queue.", - "verification": "test-backed" } }, { @@ -84873,11 +68923,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -84901,11 +68946,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -84929,11 +68969,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -84957,11 +68992,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -84985,11 +69015,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -85013,11 +69038,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -85041,11 +69061,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -85069,11 +69084,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -85097,11 +69107,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -85125,11 +69130,6 @@ "status": "partial", "detail": "Converts platform-specific negative error codes to names or messages, with Node-compatible validation for common argument forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Converts platform-specific negative error codes to names or messages, with Node-compatible validation for common argument forms.", - "verification": "test-backed" } }, { @@ -85153,11 +69153,6 @@ "status": "partial", "detail": "Returns a fresh Map of platform-specific error codes, names, and messages; entry tuples support updates but retain their fixed size.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Returns a fresh mutable Map of platform-specific error codes, names, and messages.", - "verification": "test-backed" } }, { @@ -85181,11 +69176,6 @@ "status": "partial", "detail": "Converts platform-specific negative error codes to names or messages, with Node-compatible validation for common argument forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Converts platform-specific negative error codes to names or messages, with Node-compatible validation for common argument forms.", - "verification": "test-backed" } }, { @@ -85209,11 +69199,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -85237,11 +69222,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -85265,11 +69245,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -85293,11 +69268,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -85321,11 +69291,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -85349,11 +69314,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -85377,11 +69337,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -85405,11 +69360,6 @@ "status": "partial", "detail": "Compares primitives, ordinary records and arrays, cycles, enumerable properties, and byte views with optional prototype skipping; opaque native objects and accessor properties remain refused.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Compares tested object, collection, cycle, byte-view, and builtin-value families with Node 24 prototype skipping; some exotic object brands remain unsupported.", - "verification": "test-backed" } }, { @@ -85433,11 +69383,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Parses command-line options, positionals, defaults, and tokens with Node-compatible configuration validation.", - "verification": "test-backed" } }, { @@ -85461,11 +69406,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Parses command-line options, positionals, defaults, and tokens with Node-compatible configuration validation.", - "verification": "test-backed" } }, { @@ -85489,11 +69429,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -85517,11 +69452,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Adapts callbacks and promises with receiver preservation, custom promisify hooks, function metadata, and Node-compatible argument and rejection handling; scheduling follows the island microtask queue.", - "verification": "test-backed" } }, { @@ -85545,11 +69475,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -85573,11 +69498,6 @@ "status": "partial", "detail": "Removes ANSI control sequences with the Node matcher and validates common non-string argument forms.", "verification": "test-backed" - }, - "dynamic": { - "status": "supported", - "detail": "Removes ANSI control sequences with the Node matcher and validates non-string arguments.", - "verification": "test-backed" } }, { @@ -85601,11 +69521,6 @@ "status": "partial", "detail": "Applies standard styles and aliases, nested ANSI resets, explicit color enabling, and standard process streams; custom native streams and inspect color-table mutation remain unsupported.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Applies standard styles and aliases with nested ANSI resets, stream validation, color environment settings, and tested option and conversion hooks; terminal metadata and warnings follow the embedded runtime.", - "verification": "test-backed" } }, { @@ -85629,11 +69544,6 @@ "status": "partial", "detail": "Converts native strings, primitives, and tested object conversion hooks to well-formed Unicode strings; native storage replaces unpaired surrogates at creation.", "verification": "test-backed" - }, - "dynamic": { - "status": "supported", - "detail": "Replaces unpaired surrogate code units and preserves Node string coercion, custom conversion hooks, and conversion errors.", - "verification": "test-backed" } }, { @@ -85657,11 +69567,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -85685,11 +69590,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -85713,11 +69613,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -85741,11 +69636,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -85769,11 +69659,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -85797,11 +69682,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -85825,11 +69705,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -85853,11 +69728,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -85881,11 +69751,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -85909,11 +69774,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -85937,11 +69797,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -85965,11 +69820,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -85993,11 +69843,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86021,11 +69866,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86049,11 +69889,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "declared-gap" } }, { @@ -86077,11 +69912,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86105,11 +69935,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86133,11 +69958,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "declared-gap" } }, { @@ -86161,11 +69981,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86189,11 +70004,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86217,11 +70027,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86245,11 +70050,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86273,11 +70073,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86301,11 +70096,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86329,11 +70119,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86357,11 +70142,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86385,11 +70165,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "declared-gap" } }, { @@ -86413,11 +70188,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86441,11 +70211,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86469,11 +70234,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86497,11 +70257,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86525,11 +70280,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86553,11 +70303,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86581,11 +70326,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86609,11 +70349,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86637,11 +70372,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86665,11 +70395,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86693,11 +70418,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86721,11 +70441,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86749,11 +70464,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86777,11 +70487,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86805,11 +70510,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86833,11 +70533,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86861,11 +70556,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86889,11 +70579,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86917,11 +70602,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86945,11 +70625,6 @@ "status": "partial", "detail": "Checks existing native runtime brands without inspecting public properties, with stored function values and tested predicate narrowing; unrepresented object forms retain compiler boundaries.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies.", - "verification": "test-backed" } }, { @@ -86968,11 +70643,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -86991,11 +70661,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -87014,11 +70679,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87037,11 +70697,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87060,11 +70715,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87083,11 +70733,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87106,11 +70751,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87129,11 +70769,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87152,11 +70787,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87175,11 +70805,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87198,11 +70823,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87221,11 +70841,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87244,11 +70859,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87267,11 +70877,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87290,11 +70895,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -87313,11 +70913,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87336,11 +70931,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87359,11 +70949,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87382,11 +70967,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87405,11 +70985,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87428,11 +71003,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87451,11 +71021,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87474,11 +71039,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87497,11 +71057,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87520,11 +71075,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -87543,11 +71093,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -87566,11 +71111,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -87589,11 +71129,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -87612,11 +71147,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87635,11 +71165,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87658,11 +71183,6 @@ "status": "partial", "detail": "Implemented by a dedicated static compiler/runtime path.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87681,11 +71201,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87704,11 +71219,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87727,11 +71237,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87750,11 +71255,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87773,11 +71273,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87796,11 +71291,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87819,11 +71309,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87842,11 +71327,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87865,11 +71345,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87888,11 +71363,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87911,11 +71381,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -87934,11 +71399,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87957,11 +71417,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -87980,11 +71435,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -88003,11 +71453,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -88026,11 +71471,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -88049,11 +71489,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -88072,11 +71507,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -88095,11 +71525,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -88118,11 +71543,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -88141,11 +71561,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -88164,11 +71579,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -88187,11 +71597,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -88210,11 +71615,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -88233,11 +71633,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -88256,11 +71651,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -88279,11 +71669,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -88302,11 +71687,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -88325,11 +71705,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -88348,11 +71723,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -88371,11 +71741,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -88394,11 +71759,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -88417,11 +71777,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -88440,11 +71795,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -88463,11 +71813,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -88486,11 +71831,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -88509,11 +71849,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -88537,11 +71872,6 @@ "status": "by-design", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "by-design", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -88565,11 +71895,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88593,11 +71918,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88621,11 +71941,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88649,11 +71964,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88677,11 +71987,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88705,11 +72010,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88733,11 +72033,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88761,11 +72056,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88789,11 +72079,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88817,11 +72102,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88845,11 +72125,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88873,11 +72148,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88901,11 +72171,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88929,11 +72194,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88957,11 +72217,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -88985,11 +72240,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89013,11 +72263,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89041,11 +72286,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89069,11 +72309,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89097,11 +72332,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89125,11 +72355,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89153,11 +72378,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89181,11 +72401,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89209,11 +72424,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89237,11 +72447,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89265,11 +72470,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89293,11 +72493,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89321,11 +72516,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89349,11 +72539,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89377,11 +72562,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89405,11 +72585,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89433,11 +72608,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89461,11 +72631,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89489,11 +72654,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89517,11 +72677,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89545,11 +72700,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89573,11 +72723,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89601,11 +72746,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89629,11 +72769,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89657,11 +72792,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89685,11 +72815,6 @@ "status": "by-design", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "by-design", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -89713,11 +72838,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89741,11 +72861,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89769,11 +72884,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89797,11 +72907,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89825,11 +72930,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89853,11 +72953,6 @@ "status": "by-design", "detail": "Intentionally outside the static native execution model.", "verification": "architectural-policy" - }, - "dynamic": { - "status": "by-design", - "detail": "Intentionally outside the dynamic-island execution model.", - "verification": "architectural-policy" } }, { @@ -89881,11 +72976,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -89909,11 +72999,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -89937,11 +73022,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -89965,11 +73045,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -89993,11 +73068,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90021,11 +73091,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90049,11 +73114,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90077,11 +73137,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90105,11 +73160,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90133,11 +73183,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90161,11 +73206,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90189,11 +73229,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90217,11 +73252,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90245,11 +73275,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90273,11 +73298,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90301,11 +73321,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90329,11 +73344,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90357,11 +73367,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90385,11 +73390,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90413,11 +73413,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90441,11 +73436,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90469,11 +73459,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90497,11 +73482,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90525,11 +73505,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90553,11 +73528,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90581,11 +73551,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90609,11 +73574,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90637,11 +73597,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90665,11 +73620,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90693,11 +73643,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90721,11 +73666,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90749,11 +73689,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90777,11 +73712,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90805,11 +73735,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90833,11 +73758,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90861,11 +73781,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90889,11 +73804,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90917,11 +73827,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90945,11 +73850,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -90973,11 +73873,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91001,11 +73896,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91029,11 +73919,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91057,11 +73942,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91085,11 +73965,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91113,11 +73988,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91141,11 +74011,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -91169,11 +74034,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91197,11 +74057,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91225,11 +74080,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91253,11 +74103,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91281,11 +74126,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91309,11 +74149,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91337,11 +74172,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91365,11 +74195,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91393,11 +74218,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91421,11 +74241,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91449,11 +74264,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91477,11 +74287,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91505,11 +74310,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91533,11 +74333,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91561,11 +74356,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91589,11 +74379,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91617,11 +74402,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91645,11 +74425,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -91673,11 +74448,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91701,11 +74471,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91729,11 +74494,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91757,11 +74517,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91785,11 +74540,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -91813,11 +74563,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91841,11 +74586,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91869,11 +74609,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91897,11 +74632,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -91925,11 +74655,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91953,11 +74678,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -91981,11 +74701,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92009,11 +74724,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -92037,11 +74747,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92065,11 +74770,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92093,11 +74793,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92121,11 +74816,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92149,11 +74839,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92177,11 +74862,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92205,11 +74885,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92233,11 +74908,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92261,11 +74931,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92289,11 +74954,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92317,11 +74977,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92345,11 +75000,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92373,11 +75023,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92401,11 +75046,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92429,11 +75069,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92457,11 +75092,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92485,11 +75115,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92513,11 +75138,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92541,11 +75161,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -92569,11 +75184,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92597,11 +75207,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92625,11 +75230,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92653,11 +75253,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92681,11 +75276,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -92709,11 +75299,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92737,11 +75322,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92765,11 +75345,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -92793,11 +75368,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92821,11 +75391,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92849,11 +75414,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92877,11 +75437,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92905,11 +75460,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -92933,11 +75483,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92961,11 +75506,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -92989,11 +75529,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93017,11 +75552,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93045,11 +75575,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93073,11 +75598,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93101,11 +75621,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93129,11 +75644,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93157,11 +75667,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93185,11 +75690,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93213,11 +75713,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -93241,11 +75736,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -93269,11 +75759,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -93297,11 +75782,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93325,11 +75805,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93353,11 +75828,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93381,11 +75851,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93409,11 +75874,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93437,11 +75897,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93465,11 +75920,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93493,11 +75943,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93521,11 +75966,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93549,11 +75989,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93577,11 +76012,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93605,11 +76035,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93633,11 +76058,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93661,11 +76081,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93689,11 +76104,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93717,11 +76127,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93745,11 +76150,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93773,11 +76173,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93801,11 +76196,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93829,11 +76219,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93857,11 +76242,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93885,11 +76265,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93913,11 +76288,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93941,11 +76311,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93969,11 +76334,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -93997,11 +76357,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94025,11 +76380,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -94053,11 +76403,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94081,11 +76426,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94109,11 +76449,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94137,11 +76472,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94165,11 +76495,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94193,11 +76518,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94221,11 +76541,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -94249,11 +76564,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94277,11 +76587,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94305,11 +76610,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94333,11 +76633,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94361,11 +76656,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94389,11 +76679,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94417,11 +76702,6 @@ "status": "partial", "detail": "Implemented for the documented static async-iteration subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94445,11 +76725,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94473,11 +76748,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -94501,11 +76771,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94529,11 +76794,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94557,11 +76817,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94585,11 +76840,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94613,11 +76863,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94641,11 +76886,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94669,11 +76909,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94697,11 +76932,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94725,11 +76955,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94753,11 +76978,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -94781,11 +77001,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94809,11 +77024,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94837,11 +77047,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94865,11 +77070,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -94893,11 +77093,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94921,11 +77116,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94949,11 +77139,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -94977,11 +77162,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -95005,11 +77185,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -95033,11 +77208,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -95061,11 +77231,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -95089,11 +77254,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -95117,11 +77277,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -95145,11 +77300,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -95173,11 +77323,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -95201,11 +77346,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95229,11 +77369,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95257,11 +77392,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95285,11 +77415,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95313,11 +77438,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -95341,11 +77461,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95369,11 +77484,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95397,11 +77507,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95425,11 +77530,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95453,11 +77553,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95481,11 +77576,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95509,11 +77599,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95537,11 +77622,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -95565,11 +77645,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95593,11 +77668,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95621,11 +77691,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -95649,11 +77714,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95677,11 +77737,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95705,11 +77760,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -95733,11 +77783,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95761,11 +77806,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95789,11 +77829,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95817,11 +77852,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95845,11 +77875,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -95873,11 +77898,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95901,11 +77921,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95929,11 +77944,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -95957,11 +77967,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -95985,11 +77990,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -96013,11 +78013,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -96041,11 +78036,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -96069,11 +78059,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -96097,11 +78082,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented for the documented embedded module-loader subset.", - "verification": "test-backed" } }, { @@ -96125,11 +78105,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -96153,11 +78128,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96181,11 +78151,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96209,11 +78174,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96237,11 +78197,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96265,11 +78220,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96293,11 +78243,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96321,11 +78266,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96349,11 +78289,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96377,11 +78312,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96405,11 +78335,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96433,11 +78358,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96461,11 +78381,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96489,11 +78404,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -96517,11 +78427,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96545,11 +78450,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96573,11 +78473,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96601,11 +78496,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96629,11 +78519,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96657,11 +78542,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96685,11 +78565,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96713,11 +78588,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -96741,11 +78611,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -96769,11 +78634,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -96797,11 +78657,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -96825,11 +78680,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -96853,11 +78703,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -96881,11 +78726,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -96909,11 +78749,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -96937,11 +78772,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96965,11 +78795,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -96993,11 +78818,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97021,11 +78841,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "refused", - "detail": "Exposed only as an explicit throwing or rejecting compatibility stub.", - "verification": "explicit-refusal" } }, { @@ -97049,11 +78864,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97077,11 +78887,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97105,11 +78910,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97133,11 +78933,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97161,11 +78956,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97189,11 +78979,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97217,11 +79002,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97245,11 +79025,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97273,11 +79048,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97301,11 +79071,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97329,11 +79094,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97357,11 +79117,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97385,11 +79140,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -97413,11 +79163,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97441,11 +79186,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97469,11 +79209,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97497,11 +79232,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -97525,11 +79255,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97553,11 +79278,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97581,11 +79301,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97609,11 +79324,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97637,11 +79347,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97665,11 +79370,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97693,11 +79393,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -97721,11 +79416,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -97749,11 +79439,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97777,11 +79462,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97805,11 +79485,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97833,11 +79508,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97861,11 +79531,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -97889,11 +79554,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -97917,11 +79577,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -97945,11 +79600,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -97973,11 +79623,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98001,11 +79646,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98029,11 +79669,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98057,11 +79692,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98085,11 +79715,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98113,11 +79738,6 @@ "status": "partial", "detail": "Implemented for the documented scriptc module-loader subset.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98141,11 +79761,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98169,11 +79784,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98197,11 +79807,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98225,11 +79830,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98253,11 +79853,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98281,11 +79876,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98309,11 +79899,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98337,11 +79922,6 @@ "status": "partial", "detail": "Derived from the exact API rows in this chapter.", "verification": "derived" - }, - "dynamic": { - "status": "partial", - "detail": "Derived from the exact API rows in this chapter.", - "verification": "derived" } }, { @@ -98365,11 +79945,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98393,11 +79968,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98421,11 +79991,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98449,11 +80014,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98477,11 +80037,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98505,11 +80060,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98533,11 +80083,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98561,11 +80106,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98589,11 +80129,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98617,11 +80152,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98645,11 +80175,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -98673,11 +80198,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -98701,11 +80221,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98729,11 +80244,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Implemented by the embedded Node compatibility shim.", - "verification": "test-backed" } }, { @@ -98757,11 +80267,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98785,11 +80290,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98813,11 +80313,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98841,11 +80336,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -98869,11 +80359,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98897,11 +80382,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98925,11 +80405,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98953,11 +80428,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -98981,11 +80451,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99009,11 +80474,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99037,11 +80497,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99065,11 +80520,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99093,11 +80543,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99121,11 +80566,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99149,11 +80589,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99177,11 +80612,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99205,11 +80635,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99233,11 +80658,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99261,11 +80681,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99289,11 +80704,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99317,11 +80727,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99345,11 +80750,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99373,11 +80773,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99401,11 +80796,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99429,11 +80819,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99457,11 +80842,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99485,11 +80865,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99513,11 +80888,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99541,11 +80911,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99569,11 +80934,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99597,11 +80957,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99625,11 +80980,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99653,11 +81003,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99681,11 +81026,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99709,11 +81049,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99737,11 +81072,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99765,11 +81095,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99793,11 +81118,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99821,11 +81141,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99849,11 +81164,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99877,11 +81187,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99905,11 +81210,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99933,11 +81233,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -99961,11 +81256,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -99989,11 +81279,6 @@ "status": "refused", "detail": "Explicitly rejected by a named compiler diagnostic.", "verification": "explicit-refusal" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100017,11 +81302,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100045,11 +81325,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100073,11 +81348,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100101,11 +81371,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100129,11 +81394,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100157,11 +81417,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100185,11 +81440,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100213,11 +81463,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100241,11 +81486,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100269,11 +81509,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100297,11 +81532,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100325,11 +81555,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100353,11 +81578,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100381,11 +81601,6 @@ "status": "partial", "detail": "Implemented for the call shapes accepted by the compiler lowering.", "verification": "test-backed" - }, - "dynamic": { - "status": "partial", - "detail": "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower.", - "verification": "test-backed" } }, { @@ -100409,11 +81624,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -100437,11 +81647,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -100465,11 +81670,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } }, { @@ -100493,11 +81693,6 @@ "status": "not-implemented", "detail": "No static compiler lowering is registered for this API yet.", "verification": "registry-gap" - }, - "dynamic": { - "status": "not-implemented", - "detail": "This API is not implemented by the dynamic-island shim.", - "verification": "registry-gap" } } ] diff --git a/docs/test/routes.test.mjs b/docs/test/routes.test.mjs index d9d6bfcc7..d6a2abd34 100644 --- a/docs/test/routes.test.mjs +++ b/docs/test/routes.test.mjs @@ -63,13 +63,13 @@ test("Markdown twins preserve examples and declare the HTML canonical URL", asyn }); test("literal HTML tables and definition lists remain readable", async () => { - const intro = await (await get("/docs")).text(); - assert.match(intro, /]/); + const coverage = await (await get("/docs/coverage")).text(); + assert.match(coverage, /]/); const cli = await (await get("/docs/cli")).text(); assert.match(cli, /]/); assert.match(cli, /]/); const markdown = await (await get("/docs/cli.md")).text(); - assert.ok(markdown.includes("--dynamic")); + assert.ok(!markdown.includes("--dynamic")); assert.ok(markdown.includes("--external-types")); }); diff --git a/examples/native-object/README.md b/examples/native-object/README.md index 3086e995c..80105456f 100644 --- a/examples/native-object/README.md +++ b/examples/native-object/README.md @@ -15,4 +15,4 @@ $ ./app-ld `cc` uses the C compiler as a linker driver. `ld` links the same precompiled runtime objects directly with the selected Apple SDK. The object defines `main`; it is a complete program object, not a library to load into another process. Use `scriptc build --lib --profile ...` for a host-callable static library. -The external object ABI is experimental. Always consume the runtime pack at the exact `runtime_pack.version` reported by the same scriptc installation. The object requires `scr_runtime_abi_v13`, so a mismatched runtime fails during the link instead of starting with an incompatible ABI. +The external object ABI is experimental. Always consume the runtime pack at the exact `runtime_pack.version` reported by the same scriptc installation. The object requires `scr_runtime_abi_v14`, so a mismatched runtime fails during the link instead of starting with an incompatible ABI. diff --git a/internal/compatibility/README.md b/internal/compatibility/README.md index 724a71141..0b4fdb957 100644 --- a/internal/compatibility/README.md +++ b/internal/compatibility/README.md @@ -4,13 +4,12 @@ This workspace package owns scriptc's Node.js parity system. - `node-v24.json` pins the Node release tag, commit, and canonical docs/source inputs. - `static-support.json` overlays dedicated compiler paths and their internal test evidence on the compiler's generated surface manifest. -- `dynamic-support.json` is the implementation-owned dynamic-island module/global registry. Its `globals.supported` entries are installed by the always-on web prelude, while `globals.npmSupported` entries are installed only by the embedded npm module bootstrap. It also generates `packages/runtime/src/scr_island_manifest.h`, so runtime exports and compatibility claims share one source. - `generated/node-v24-internal.json` is the engineering ledger, including implementation evidence and repository test paths. - `generated/node-v24-backlog.json` is the internal tier-specific work queue. It separates verification, implementation, explicit-refusal replacement, and partial-surface audit work, and prioritizes stable Node APIs above experimental, deprecated, and legacy APIs. -- `docs/src/generated/node-v24-compatibility.json` is the stripped public artifact consumed by the docs website. It contains compiler-relevant runtime APIs, statuses, verification bases, and user-facing details; documentation, metadata, command-line/configuration entries, and rows that are N/A in both tiers remain internal. +- `docs/src/generated/node-v24-compatibility.json` is the stripped public artifact consumed by the docs website. It contains compiler-relevant runtime APIs, statuses, verification bases, and user-facing details; documentation, metadata, command-line/configuration entries, and rows that are N/A for native execution remain internal. -Statuses are evidence-aware: `supported` and `partial` require test evidence; `refused` requires an explicit compiler diagnostic or dynamic throwing stub; `not-implemented` is the actionable backlog for an owned API family with no implementation match; `by-design` records an architectural exclusion; `unreviewed` still needs classification; and `not-applicable` is not a runtime API for that execution tier. +Statuses are evidence-aware: `supported` and `partial` require test evidence; `refused` requires an explicit compiler diagnostic or native throwing stub; `not-implemented` is the actionable backlog for an owned API family with no implementation match; `by-design` records an architectural exclusion; `unreviewed` still needs classification; and `not-applicable` is not a runtime API for that execution tier. Run `pnpm node-compat:backlog` from the repository root for a summary. The filters `--tier`, `--action`, `--priority`, `--chapter`, and `--status` compose; use `--format=json` or `--format=tsv` for tooling. -Run `pnpm node-compat` from the repository root after changing the Node pin or either support manifest. `pnpm node-compat:check` is the offline drift/evidence gate; `pnpm --filter @internal/compatibility check:upstream` additionally verifies the pinned upstream inputs over the network. +Run `pnpm node-compat` from the repository root after changing the Node pin or the support manifest. `pnpm node-compat:check` is the offline drift/evidence gate; `pnpm --filter @internal/compatibility check:upstream` additionally verifies the pinned upstream inputs over the network. diff --git a/internal/compatibility/dynamic-support.json b/internal/compatibility/dynamic-support.json deleted file mode 100644 index b37919f29..000000000 --- a/internal/compatibility/dynamic-support.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "schemaVersion": 1, - "chapterPolicies": { - "addons": "by-design", - "n-api": "by-design", - "embedding": "not-applicable", - "cli": "not-applicable", - "debugger": "not-applicable", - "deprecations": "not-applicable", - "intl": "not-applicable", - "permissions": "not-implemented", - "report": "not-implemented", - "single-executable-applications": "not-applicable", - "repl": "not-implemented", - "sqlite": "not-implemented", - "test": "not-implemented", - "tracing": "not-implemented", - "vm": "by-design", - "wasi": "by-design" - }, - "features": [ - {"chapter": "webstreams", "symbols": ["readableStream.cancel", "readableStream.getReader", "readableStream.tee"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts"]}, - {"chapter": "webstreams", "parent": "Class: `ReadableStream`", "symbols": ["locked"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts"]}, - {"chapter": "webstreams", "symbols": ["readableStreamDefaultReader.cancel", "readableStreamDefaultReader.read", "readableStreamDefaultReader.releaseLock"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts"]}, - {"chapter": "webstreams", "parent": "Class: `ReadableStreamDefaultReader`", "symbols": ["closed"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts"]}, - {"chapter": "webstreams", "symbols": ["readableStreamDefaultController.close", "readableStreamDefaultController.enqueue", "readableStreamDefaultController.error"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts"]}, - {"chapter": "webstreams", "symbols": ["readableStream.pipeTo", "readableStream.pipeThrough"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts"]}, - {"chapter": "webstreams", "parent": "Class: `TransformStream`", "symbols": ["readable", "writable"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts"]}, - {"chapter": "webstreams", "symbols": ["transformStreamDefaultController.enqueue", "transformStreamDefaultController.error", "transformStreamDefaultController.terminate"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts"]}, - {"chapter": "webstreams", "parent": "Class: `TransformStreamDefaultController`", "symbols": ["desiredSize"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts"]}, - {"chapter": "webstreams", "parent": "Class: `TextEncoderStream`", "symbols": ["encoding", "readable", "writable"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts"]}, - {"chapter": "webstreams", "symbols": ["writableStream.abort", "writableStream.close", "writableStream.getWriter", "writableStreamDefaultWriter.abort", "writableStreamDefaultWriter.close", "writableStreamDefaultWriter.releaseLock", "writableStreamDefaultWriter.write", "writableStreamDefaultController.error"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts"]}, - {"chapter": "webstreams", "parent": "Class: `WritableStream`", "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts"], "symbols": ["locked"]}, - {"chapter": "webstreams", "parent": "Class: `WritableStreamDefaultWriter`", "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts"], "symbols": ["closed", "desiredSize", "ready"]}, - {"chapter": "webstreams", "parent": "Class: `WritableStreamDefaultController`", "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts"], "symbols": ["signal"]}, - {"chapter": "webstreams", "parent": "Class: `CountQueuingStrategy`", "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts"], "symbols": ["highWaterMark", "size"]}, - {"chapter": "webstreams", "parent": "Class: `ByteLengthQueuingStrategy`", "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts"], "symbols": ["highWaterMark", "size"]}, - {"chapter": "webstreams", "parent": "Class: `ReadableStreamDefaultController`", "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts"], "symbols": ["desiredSize"]}, - {"chapter": "util", "symbols": ["util.types.isAnyArrayBuffer", "util.types.isArrayBufferView", "util.types.isArgumentsObject", "util.types.isArrayBuffer", "util.types.isAsyncFunction", "util.types.isBigInt64Array", "util.types.isBigUint64Array", "util.types.isBooleanObject", "util.types.isBoxedPrimitive", "util.types.isBigIntObject", "util.types.isDataView", "util.types.isDate", "util.types.isFloat16Array", "util.types.isFloat32Array", "util.types.isFloat64Array", "util.types.isGeneratorFunction", "util.types.isGeneratorObject", "util.types.isInt8Array", "util.types.isInt16Array", "util.types.isInt32Array", "util.types.isMap", "util.types.isMapIterator", "util.types.isModuleNamespaceObject", "util.types.isNativeError", "util.types.isNumberObject", "util.types.isPromise", "util.types.isProxy", "util.types.isRegExp", "util.types.isSet", "util.types.isSetIterator", "util.types.isSharedArrayBuffer", "util.types.isStringObject", "util.types.isSymbolObject", "util.types.isTypedArray", "util.types.isUint8Array", "util.types.isUint8ClampedArray", "util.types.isUint16Array", "util.types.isUint32Array", "util.types.isWeakMap", "util.types.isWeakSet"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-util-types/main.ts"]}, - {"chapter": "util", "symbols": ["util.types.isCryptoKey", "util.types.isKeyObject", "util.types.isExternal"], "status": "not-implemented"}, - { "chapter": "util", "symbols": ["util.styleText"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-style-text/main.ts"] }, - { "chapter": "util", "symbols": ["util.isDeepStrictEqual"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-deep-equality/main.ts"] }, - { "chapter": "assert", "symbols": ["assert.doesNotThrow", "assert.doesNotReject"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-no-error-assertions/main.ts"] }, - { "chapter": "util", "symbols": ["util.stripVTControlCharacters", "util.toUSVString"], "status": "supported", "evidence": ["tests/fixtures/npm/cases/node24-text-utilities/main.ts"] }, - { "chapter": "util", "symbols": ["util.getSystemErrorName", "util.getSystemErrorMessage", "util.getSystemErrorMap"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-system-errors/main.ts"] }, - { "chapter": "url", "symbols": ["url.fileURLToPath", "url.fileURLToPathBuffer", "url.pathToFileURL"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-file-url-conversion/main.ts"] }, - { "chapter": "url", "parent": "Class: `URL`", "signatures": ["`protocol` Type: {string}", "`username` Type: {string}", "`password` Type: {string}", "`host` Type: {string}", "`hostname` Type: {string}", "`port` Type: {string}"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-url-authority/main.ts"] }, - { "chapter": "url", "parent": "Class: `URL`", "signatures": ["`href` Type: {string}", "`pathname` Type: {string}", "`search` Type: {string}", "`hash` Type: {string}"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-url-mutation/main.ts"] }, - { "chapter": "diagnostics_channel", "symbols": ["start", "end", "asyncStart", "asyncEnd", "error", "TracingChannel", "channel.bindStore", "channel.unbindStore", "channel.runStores", "tracingChannel.subscribe", "tracingChannel.unsubscribe", "tracingChannel.traceSync", "tracingChannel.tracePromise", "tracingChannel.traceCallback"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts"] }, - { "chapter": "util", "symbols": ["util.MIMEType", "util.MIMEParams", "mime.toString", "mime.toJSON", "mimeParams.delete", "mimeParams.entries", "mimeParams.get", "mimeParams.has", "mimeParams.keys", "mimeParams.set", "mimeParams.values"], "signatures": ["`mimeParams[Symbol.iterator]()`"], "status": "supported", "evidence": ["tests/fixtures/npm/cases/node24-mime/main.ts", "tests/fixtures/npm/cases/node24-mime-errors/main.ts"] }, - { "chapter": "util", "parent": "Class: `util.MIMEType`", "signatures": ["`type` Type: {string}", "`subtype` Type: {string}", "`essence` Type: {string}", "`params` Type: {MIMEParams}"], "status": "supported", "evidence": ["tests/fixtures/npm/cases/node24-mime/main.ts", "tests/fixtures/npm/cases/node24-mime-errors/main.ts"] }, - { "chapter": "timers", "symbols": ["timersPromises.setTimeout", "timersPromises.setImmediate", "timersPromises.setInterval", "timersPromises.scheduler.wait", "timersPromises.scheduler.yield"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-promise-timers/main.ts", "tests/fixtures/npm/cases/node24-timers-unref/main.ts"] }, - { "chapter": "timers", "symbols": ["immediate.ref", "immediate.unref", "immediate.hasRef", "timeout.ref", "timeout.unref", "timeout.hasRef", "timeout.refresh", "timeout.close"], "signatures": ["`immediate[Symbol.dispose]()`", "`timeout[Symbol.dispose]()`"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/island-timers/main.ts", "tests/fixtures/npm/cases/node24-promise-timers/main.ts", "tests/fixtures/npm/cases/node24-timers-unref/main.ts"] }, - { "chapter": "events", "symbols": ["events.once", "events.on", "events.addAbortListener"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-async-events/main.ts"] }, - { "chapter": "events", "symbols": ["emitter.on", "emitter.addListener", "emitter.once", "emitter.prependListener", "emitter.prependOnceListener", "emitter.removeListener", "emitter.off", "emitter.removeAllListeners", "emitter.emit", "emitter.listenerCount", "emitter.eventNames", "events.errorMonitor"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/stream-shims/main.ts", "tests/fixtures/npm/cases/node24-event-emitter/main.ts"] }, - { "chapter": "util", "symbols": ["util.promisify", "util.callbackify"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/util-shims/main.ts", "tests/fixtures/npm/cases/node24-util-adapters/main.ts"] }, - { "chapter": "util", "symbols": ["util.parseArgs", "parseArgs"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/util-shims/main.ts", "tests/fixtures/npm/cases/node24-parseargs/main.ts"] }, - { "chapter": "buffer", "symbols": ["buffer.isAscii", "buffer.isUtf8", "buffer.transcode"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-text-encoding/main.ts"] }, - { "chapter": "util", "parent": "Class: `util.TextEncoder`", "signatures": ["`textEncoder.encodeInto(src, dest)`", "`encoding` Type: {string}"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-text-encoding/main.ts"] }, - { "chapter": "util", "parent": "Class: `util.TextDecoder`", "signatures": ["`encoding` Type: {string}", "`fatal` Type: {boolean}", "`ignoreBOM` Type: {boolean}"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-text-encoding/main.ts"] }, - { "chapter": "process", "symbols": ["process.chdir"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-env/main.ts"] }, - { "chapter": "util", "symbols": ["util.parseEnv"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-env/main.ts"] }, - { "chapter": "process", "symbols": ["process.loadEnvFile"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-env/main.ts"] }, - { "chapter": "fs", "signatures": ["`fsync` {boolean} Whether the stream is performing a `fs.fsyncSync()` after every write operation."], "status": "not-implemented" }, - { "chapter": "fs", "parent": "Class: `FileHandle`", "symbols": ["fd"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-fs-descriptors/main.ts"] }, - { "chapter": "environment_variables", "symbols": ["process.env"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts", "tests/fixtures/npm/cases/node24-env/main.ts"] }, - { "chapter": "environment_variables", "symbols": ["export"], "status": "not-applicable" }, - { "chapter": "modules", "symbols": ["__dirname", "__filename", "exports", "module", "require", "cache"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/create-require/main.ts", "tests/fixtures/npm/cases/dynamic-import/main.ts", "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts"] }, - { "chapter": "modules", "symbols": ["filename", "id", "loaded", "parent", "path", "module.require", "children", "isPreloading", "paths"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts"] }, - { "chapter": "modules", "symbols": ["require.resolve", "require.resolve.paths"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/create-require/main.ts"] }, - { "chapter": "modules", "symbols": ["extensions", "main", "Module"], "status": "not-implemented" }, - { "chapter": "modules", "symbols": ["node:", "node_modules"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/builtin-shims/main.ts", "tests/fixtures/npm/cases/create-require/main.ts"] }, - { "chapter": "esm", "symbols": ["import", "file:", "node:", "await"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/dynamic-import/main.ts", "tests/corpus/2646-top-level-await.ts"] }, - { "chapter": "esm", "signatures": ["`import()` expressions"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/dynamic-import/main.ts", "tests/corpus/2050-dynamic-import-own-module/main.ts", "tests/corpus/2790-dynamic-import-self-name/main.ts"] }, - { "chapter": "esm", "symbols": ["import.meta.resolve"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/dual-entry/main.ts", "tests/fixtures/npm/cases/node24-esm-metadata/main.ts"] }, - { "chapter": "esm", "symbols": ["meta", "dirname", "filename", "main", "url"], "status": "partial", "evidence": ["tests/fixtures/npm/cases/node24-esm-metadata/main.ts"] }, - { "chapter": "esm", "symbols": ["data:", "require", "__filename", "require.main", "require.resolve", "NODE_PATH", "require.extensions", "require.cache"], "status": "not-implemented" }, - { "chapter": "packages", "symbols": ["package.json", "\"name\"", "\"main\"", "\"type\"", "\"exports\"", "\"imports\""], "status": "partial", "evidence": ["tests/fixtures/npm/cases/dual-entry/main.ts", "tests/fixtures/npm/cases/self-name/main.ts", "tests/fixtures/npm/cases/scoped-nested/main.ts", "tests/corpus/2790-dynamic-import-self-name/main.ts"] }, - { "chapter": "packages", "symbols": ["--input-type"], "status": "not-applicable" }, - { "chapter": "typescript", "symbols": ["type"], "status": "supported", "evidence": ["tests/corpus/2705-type-import-link-dynamic/main.ts", "tests/corpus/2706-type-import-link-dynamic-success/main.ts", "tests/corpus/2708-type-import-link-dynamic/main.ts", "tests/harness/errors.test.ts"] } - ], - "modules": { - "events": { "exports": ["EventEmitter", "once", "on", "addAbortListener", "listenerCount", "getEventListeners", "setMaxListeners", "defaultMaxListeners", "errorMonitor", "captureRejectionSymbol"], "members": ["emitter.addListener", "emitter.emit", "emitter.eventNames", "emitter.getMaxListeners", "emitter.listenerCount", "emitter.listeners", "emitter.off", "emitter.on", "emitter.once", "emitter.prependListener", "emitter.prependOnceListener", "emitter.removeAllListeners", "emitter.removeListener", "emitter.setMaxListeners", "emitter.rawListeners", "events.getEventListeners", "events.listenerCount", "events.once", "events.on", "events.setMaxListeners"], "evidence": ["tests/fixtures/npm/cases/stream-shims/main.ts"] }, - "path": { "exports": ["sep", "delimiter", "basename", "dirname", "extname", "join", "resolve", "normalize", "relative", "isAbsolute", "toNamespacedPath", "parse", "format", "posix", "win32"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "path/posix": { "exports": ["sep", "delimiter", "basename", "dirname", "extname", "join", "resolve", "normalize", "relative", "isAbsolute", "toNamespacedPath", "parse", "format", "posix", "win32"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "path/win32": { "exports": ["sep", "delimiter", "basename", "dirname", "extname", "join", "resolve", "normalize", "relative", "isAbsolute", "toNamespacedPath", "parse", "format", "posix", "win32"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "process": { "exports": ["chdir", "loadEnvFile", "argv", "env", "platform", "execPath", "execArgv", "version", "versions", "stdout", "stderr", "stdin", "cwd", "exit", "nextTick", "hrtime", "pid", "ppid", "title", "argv0", "release", "config", "allowedNodeEnvironmentFlags", "emitWarning", "uptime", "memoryUsage", "umask", "exitCode", "on", "once", "off", "removeListener", "emit"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "fs": { "exports": ["readFileSync", "writeFileSync", "appendFileSync", "existsSync", "realpathSync", "mkdirSync", "rmSync", "rmdirSync", "unlinkSync", "readdirSync", "statSync", "lstatSync", "accessSync", "mkdtempSync", "chmodSync", "copyFileSync", "renameSync", "constants", "Stats", "Dirent", "promises", "readFile", "writeFile", "appendFile", "exists", "realpath", "mkdir", "rm", "rmdir", "unlink", "readdir", "stat", "lstat", "access", "mkdtemp", "chmod", "copyFile", "rename", "readlink", "readlinkSync", "createReadStream", "createWriteStream", "watch", "watchFile", "unwatchFile", "openSync", "closeSync", "readSync", "read", "open", "writeSync", "write", "close", "readvSync", "writevSync", "readv", "writev", "fstatSync", "fstat", "fchmodSync", "fchmod", "fsyncSync", "fsync", "fdatasyncSync", "fdatasync", "ftruncateSync", "ftruncate"], "refused": ["watch", "watchFile"], "members": ["dirent.isBlockDevice", "dirent.isCharacterDevice", "dirent.isDirectory", "dirent.isFIFO", "dirent.isFile", "dirent.isSocket", "dirent.isSymbolicLink", "stats.isBlockDevice", "stats.isCharacterDevice", "stats.isDirectory", "stats.isFIFO", "stats.isFile", "stats.isSocket", "stats.isSymbolicLink"], "evidence": ["tests/fixtures/npm/cases/fs-shims/main.ts", "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts"] }, - "fs/promises": { "exports": ["readFile", "writeFile", "appendFile", "realpath", "mkdir", "rm", "rmdir", "unlink", "readdir", "stat", "lstat", "access", "mkdtemp", "chmod", "copyFile", "rename", "readlink", "constants", "open"], "evidence": ["tests/fixtures/npm/cases/fs-shims/main.ts", "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts"], "members": ["FileHandle", "filehandle.fd", "filehandle.close", "filehandle.read", "filehandle.write", "filehandle.readv", "filehandle.writev", "filehandle.readFile", "filehandle.writeFile", "filehandle.appendFile", "filehandle.stat", "filehandle.sync", "filehandle.datasync", "filehandle.truncate", "filehandle.chmod"] }, - "child_process": { "exports": ["spawn", "spawnSync", "exec", "execSync", "execFile", "execFileSync", "fork"], "refused": ["spawn", "spawnSync", "exec", "execSync", "execFile", "execFileSync", "fork"], "evidence": ["tests/harness/npm.test.ts"] }, - "os": { "exports": ["EOL", "platform", "arch", "hostname", "homedir", "tmpdir", "type", "endianness", "userInfo", "release", "version", "machine", "cpus", "availableParallelism", "totalmem", "freemem", "loadavg", "uptime", "networkInterfaces", "constants"], "evidence": ["tests/fixtures/npm/cases/builtin-shims/main.ts"] }, - "tty": { "exports": ["isatty", "ReadStream", "WriteStream"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "http": { "exports": ["request", "get", "Agent", "globalAgent", "ClientRequest", "IncomingMessage", "STATUS_CODES", "METHODS", "createServer", "Server"], "refused": ["createServer", "Server"], "members": ["agent.destroy", "request.abort", "request.end", "request.destroy", "request.flushHeaders", "request.getHeader", "request.removeHeader", "request.setHeader", "request.setTimeout", "request.write", "message.destroy", "message.setEncoding", "message.pause", "message.resume"], "evidence": ["tests/fixtures/fetch/cases/island-http/main.ts"] }, - "https": { "exports": ["request", "get", "Agent", "globalAgent", "ClientRequest", "IncomingMessage", "STATUS_CODES", "METHODS", "createServer", "Server"], "refused": ["createServer", "Server"], "members": ["agent.destroy", "request.abort", "request.end", "request.destroy", "request.flushHeaders", "request.getHeader", "request.removeHeader", "request.setHeader", "request.setTimeout", "request.write", "message.destroy", "message.setEncoding", "message.pause", "message.resume"], "evidence": ["tests/fixtures/fetch/cases/island-http/main.ts"] }, - "net": { "exports": ["isIP", "isIPv4", "isIPv6", "connect", "createConnection", "createServer", "Socket", "Server"], "refused": ["connect", "createConnection", "createServer", "Socket", "Server"], "evidence": ["tests/fixtures/fetch/cases/island-http/main.ts"] }, - "tls": { "exports": ["connect", "createServer", "createSecureContext", "TLSSocket", "rootCertificates"], "refused": ["connect", "createServer", "createSecureContext", "TLSSocket"], "evidence": ["tests/fixtures/fetch/cases/island-http/main.ts"] }, - "diagnostics_channel": { "exports": ["channel", "subscribe", "unsubscribe", "hasSubscribers", "tracingChannel", "Channel"], "members": ["channel.publish", "channel.subscribe", "channel.unsubscribe", "channel.bindStore", "channel.unbindStore", "channel.runStores", "tracingChannel.subscribe", "tracingChannel.unsubscribe", "tracingChannel.traceSync", "tracingChannel.tracePromise", "tracingChannel.traceCallback"], "evidence": ["tests/fixtures/npm/cases/builtin-shims/main.ts", "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts"] }, - "module": { "exports": ["createRequire", "builtinModules", "isBuiltin", "syncBuiltinESMExports", "register", "findSourceMap"], "refused": ["register"], "evidence": ["tests/fixtures/npm/cases/create-require/main.ts", "tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "url": { "exports": ["URL", "URLSearchParams", "fileURLToPath", "fileURLToPathBuffer", "pathToFileURL", "parse", "format", "resolve", "domainToASCII", "domainToUnicode", "urlToHttpOptions"], "members": ["url.toString", "url.toJSON", "URL.canParse", "URL.parse", "urlSearchParams.append", "urlSearchParams.delete", "urlSearchParams.entries", "urlSearchParams.forEach", "urlSearchParams.get", "urlSearchParams.getAll", "urlSearchParams.has", "urlSearchParams.keys", "urlSearchParams.set", "urlSearchParams.sort", "urlSearchParams.toString", "urlSearchParams.values", "urlSearchParams.size"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts", "tests/fixtures/npm/cases/island-web-plumbing/main.ts", "tests/fixtures/npm/cases/node24-url-factories/main.ts"] }, - "buffer": { "exports": ["Buffer", "SlowBuffer", "INSPECT_MAX_BYTES", "kMaxLength", "kStringMaxLength", "constants", "isAscii", "isUtf8", "atob", "btoa", "Blob", "File", "transcode", "resolveObjectURL"], "members": ["Buffer.alloc", "Buffer.allocUnsafe", "Buffer.allocUnsafeSlow", "Buffer.from", "Buffer.isBuffer", "Buffer.isEncoding", "Buffer.byteLength", "Buffer.concat", "Buffer.compare", "buf.compare", "buf.copy", "buf.equals", "buf.fill", "buf.includes", "buf.indexOf", "buf.lastIndexOf", "buf.subarray", "buf.slice", "buf.swap16", "buf.swap32", "buf.swap64", "buf.toJSON", "buf.toString", "buf.write", "buf.readBigInt64BE", "buf.readBigInt64LE", "buf.readBigUInt64BE", "buf.readBigUInt64LE", "buf.readDoubleBE", "buf.readDoubleLE", "buf.readFloatBE", "buf.readFloatLE", "buf.readInt8", "buf.readInt16BE", "buf.readInt16LE", "buf.readInt32BE", "buf.readInt32LE", "buf.readIntBE", "buf.readIntLE", "buf.readUInt8", "buf.readUInt16BE", "buf.readUInt16LE", "buf.readUInt32BE", "buf.readUInt32LE", "buf.readUIntBE", "buf.readUIntLE", "buf.writeBigInt64BE", "buf.writeBigInt64LE", "buf.writeBigUInt64BE", "buf.writeBigUInt64LE", "buf.writeDoubleBE", "buf.writeDoubleLE", "buf.writeFloatBE", "buf.writeFloatLE", "buf.writeInt8", "buf.writeInt16BE", "buf.writeInt16LE", "buf.writeInt32BE", "buf.writeInt32LE", "buf.writeIntBE", "buf.writeIntLE", "buf.writeUInt8", "buf.writeUInt16BE", "buf.writeUInt16LE", "buf.writeUInt32BE", "buf.writeUInt32LE", "buf.writeUIntBE", "buf.writeUIntLE"], "evidence": ["tests/fixtures/npm/cases/buffer-shims/main.ts"] }, - "string_decoder": { "exports": ["StringDecoder"], "members": ["stringDecoder.write", "stringDecoder.end"], "evidence": ["tests/fixtures/npm/cases/buffer-shims/main.ts", "tests/fixtures/npm/cases/node24-string-decoder/main.ts"] }, - "assert": { "exports": ["AssertionError", "ok", "fail", "equal", "notEqual", "strictEqual", "notStrictEqual", "deepEqual", "notDeepEqual", "deepStrictEqual", "notDeepStrictEqual", "throws", "doesNotThrow", "rejects", "doesNotReject", "match", "doesNotMatch", "ifError", "strict"], "evidence": ["tests/fixtures/npm/cases/assert-shims/main.ts"] }, - "assert/strict": { "exports": ["AssertionError", "ok", "fail", "equal", "notEqual", "strictEqual", "notStrictEqual", "deepEqual", "notDeepEqual", "deepStrictEqual", "notDeepStrictEqual", "throws", "doesNotThrow", "rejects", "doesNotReject", "match", "doesNotMatch", "ifError", "strict"], "evidence": ["tests/fixtures/npm/cases/assert-shims/main.ts"] }, - "domain": { "exports": ["create", "createDomain", "Domain", "active"], "members": ["domain.add", "domain.bind", "domain.enter", "domain.exit", "domain.intercept", "domain.remove", "domain.run"], "evidence": ["tests/fixtures/npm/cases/island-web-plumbing/main.ts"] }, - "worker_threads": { "exports": ["isMainThread", "parentPort", "threadId", "workerData", "resourceLimits", "MessageChannel", "MessagePort", "Worker", "receiveMessageOnPort", "SHARE_ENV", "markAsUntransferable", "getEnvironmentData", "setEnvironmentData"], "refused": ["Worker"], "members": ["port.close", "port.postMessage", "port.hasRef", "port.ref", "port.start", "port.unref"], "evidence": ["tests/fixtures/npm/cases/island-web-plumbing/main.ts"] }, - "perf_hooks": { "exports": ["performance", "PerformanceObserver", "monitorEventLoopDelay", "constants"], "members": ["performanceObserver.disconnect", "performanceObserver.observe", "performanceObserver.takeRecords", "performance.clearMarks", "performance.clearMeasures", "performance.getEntries", "performance.getEntriesByName", "performance.getEntriesByType", "performance.mark", "performance.measure", "performance.now", "performance.toJSON"], "evidence": ["tests/fixtures/npm/cases/island-web-plumbing/main.ts"] }, - "v8": { "exports": ["startupSnapshot", "cachedDataVersionTag", "getHeapStatistics", "getHeapSpaceStatistics", "getHeapCodeStatistics", "getCppHeapStatistics", "setFlagsFromString", "takeCoverage", "stopCoverage", "setHeapSnapshotNearHeapLimit", "serialize", "deserialize", "writeHeapSnapshot", "getHeapSnapshot", "queryObjects", "startCpuProfile", "isStringOneByteRepresentation", "promiseHooks", "Serializer", "Deserializer", "DefaultSerializer", "DefaultDeserializer", "GCProfiler"], "refused": ["serialize", "deserialize", "writeHeapSnapshot", "getHeapSnapshot", "queryObjects", "startCpuProfile", "isStringOneByteRepresentation", "promiseHooks", "Serializer", "Deserializer", "DefaultSerializer", "DefaultDeserializer", "GCProfiler"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "dns": { "exports": ["lookup", "lookupService", "resolve", "resolve4", "resolve6", "resolveAny", "resolveCaa", "resolveCname", "resolveMx", "resolveNaptr", "resolveNs", "resolvePtr", "resolveSoa", "resolveSrv", "resolveTlsa", "resolveTxt", "reverse", "getServers", "setServers", "getDefaultResultOrder", "setDefaultResultOrder", "Resolver", "promises", "ADDRCONFIG", "V4MAPPED", "ALL", "NODATA", "FORMERR", "SERVFAIL", "NOTFOUND", "NOTIMP", "REFUSED", "BADQUERY", "BADNAME", "BADFAMILY", "BADRESP", "CONNREFUSED", "TIMEOUT", "EOF", "FILE", "NOMEM", "DESTRUCTION", "BADSTR", "BADFLAGS", "NONAME", "BADHINTS", "NOTINITIALIZED", "LOADIPHLPAPI", "ADDRGETNETWORKPARAMS", "CANCELLED"], "refused": ["lookup", "lookupService", "resolve", "resolve4", "resolve6", "resolveAny", "resolveCaa", "resolveCname", "resolveMx", "resolveNaptr", "resolveNs", "resolvePtr", "resolveSoa", "resolveSrv", "resolveTlsa", "resolveTxt", "reverse"], "evidence": ["tests/fixtures/npm/cases/island-web-plumbing/main.ts"] }, - "dns/promises": { "exports": ["lookup", "lookupService", "resolve", "resolve4", "resolve6", "resolveAny", "resolveCaa", "resolveCname", "resolveMx", "resolveNaptr", "resolveNs", "resolvePtr", "resolveSoa", "resolveSrv", "resolveTlsa", "resolveTxt", "reverse", "getServers", "setServers", "getDefaultResultOrder", "setDefaultResultOrder", "Resolver", "NODATA", "FORMERR", "SERVFAIL", "NOTFOUND", "NOTIMP", "REFUSED", "BADQUERY", "BADNAME", "BADFAMILY", "BADRESP", "CONNREFUSED", "TIMEOUT", "EOF", "FILE", "NOMEM", "DESTRUCTION", "BADSTR", "BADFLAGS", "NONAME", "BADHINTS", "NOTINITIALIZED", "LOADIPHLPAPI", "ADDRGETNETWORKPARAMS", "CANCELLED"], "refused": ["lookup", "lookupService", "resolve", "resolve4", "resolve6", "resolveAny", "resolveCaa", "resolveCname", "resolveMx", "resolveNaptr", "resolveNs", "resolvePtr", "resolveSoa", "resolveSrv", "resolveTlsa", "resolveTxt", "reverse"], "evidence": ["tests/fixtures/npm/cases/island-web-plumbing/main.ts"] }, - "async_hooks": { "exports": ["AsyncLocalStorage", "AsyncResource", "executionAsyncId", "triggerAsyncId", "executionAsyncResource", "createHook"], "members": ["asyncLocalStorage.run", "asyncLocalStorage.exit", "asyncLocalStorage.getStore", "asyncLocalStorage.enterWith", "asyncLocalStorage.disable", "asyncResource.runInAsyncScope", "asyncResource.bind", "asyncResource.emitDestroy", "asyncResource.asyncId", "asyncResource.triggerAsyncId"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "punycode": { "exports": ["version", "ucs2", "decode", "encode", "toASCII", "toUnicode"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "querystring": { "exports": ["parse", "stringify", "decode", "encode", "escape", "unescape", "unescapeBuffer"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "constants": { "exports": ["F_OK", "R_OK", "W_OK", "X_OK"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "console": { "exports": ["Console", "log", "info", "debug", "warn", "error", "trace", "dir", "assert", "count", "countReset", "time", "timeEnd", "group", "groupEnd", "table", "clear"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "timers": { "exports": ["setTimeout", "clearTimeout", "setInterval", "clearInterval", "setImmediate", "clearImmediate"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "timers/promises": { "exports": ["setTimeout", "setImmediate", "setInterval", "scheduler"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "zlib": { "exports": ["deflateSync", "inflateSync", "deflateRawSync", "inflateRawSync", "gzipSync", "gunzipSync", "unzipSync", "deflate", "inflate", "deflateRaw", "inflateRaw", "gzip", "gunzip", "unzip", "Deflate", "Inflate", "DeflateRaw", "InflateRaw", "Gzip", "Gunzip", "Unzip", "BrotliCompress", "BrotliDecompress", "createDeflate", "createInflate", "createDeflateRaw", "createInflateRaw", "createGzip", "createGunzip", "createUnzip", "createBrotliCompress", "createBrotliDecompress", "brotliCompressSync", "brotliDecompressSync", "constants"], "members": ["zlib.close", "zlib.flush", "zlib.reset"], "evidence": ["tests/fixtures/npm/cases/zlib-shims/main.ts"] }, - "readline": { "exports": ["Interface", "createInterface", "clearLine", "clearScreenDown", "cursorTo", "moveCursor", "emitKeypressEvents"], "members": ["rl.question", "rl.close", "rl.pause", "rl.prompt", "rl.resume", "rl.setPrompt", "rl.getPrompt", "rl.write"], "evidence": ["tests/fixtures/npm/cases/misc-shims/main.ts"] }, - "stream": { "exports": ["Stream", "Readable", "Writable", "Duplex", "Transform", "PassThrough", "pipeline", "finished", "addAbortSignal", "promises", "isErrored", "isDestroyed", "isReadable", "isWritable"], "members": ["stream.Readable.from", "readable.read", "readable.push", "readable.unshift", "readable.pause", "readable.resume", "readable.isPaused", "readable.setEncoding", "readable.pipe", "readable.unpipe", "readable.destroy", "writable.write", "writable.end", "writable.cork", "writable.uncork", "writable.setDefaultEncoding", "writable.destroy", "transform.destroy"], "refusedMembers": ["readable.wrap"], "evidence": ["tests/fixtures/npm/cases/stream-shims/main.ts"] }, - "stream/promises": { "exports": ["pipeline", "finished"], "evidence": ["tests/fixtures/npm/cases/stream-shims/main.ts"] }, - "stream/consumers": { "exports": ["text", "buffer", "arrayBuffer", "json", "blob"], "evidence": ["tests/fixtures/npm/cases/stream-shims/main.ts"] }, - "stream/web": {"exports": ["ReadableStream", "TransformStream", "TextDecoderStream", "WritableStream", "WritableStreamDefaultWriter", "WritableStreamDefaultController", "CountQueuingStrategy", "ByteLengthQueuingStrategy", "TransformStreamDefaultController", "TextEncoderStream", "ReadableStreamDefaultReader", "ReadableStreamDefaultController"], "evidence": ["tests/fixtures/npm/cases/web-streams/main.ts", "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts"]}, - "crypto": { "exports": ["createHash", "createHmac", "hash", "Hash", "Hmac", "randomBytes", "randomFillSync", "randomFill", "randomInt", "randomUUID", "getRandomValues", "timingSafeEqual", "pbkdf2", "pbkdf2Sync", "getHashes", "getCiphers", "getCurves", "webcrypto", "subtle", "constants", "KeyObject", "createCipheriv", "createDecipheriv", "createSign", "createVerify", "createDiffieHellman", "createECDH", "createPublicKey", "createPrivateKey", "createSecretKey", "diffieHellman", "generateKeyPair", "generateKeyPairSync", "generateKey", "generateKeySync", "sign", "verify", "publicEncrypt", "publicDecrypt", "privateEncrypt", "privateDecrypt", "scrypt", "scryptSync", "hkdf", "hkdfSync", "X509Certificate", "Certificate", "checkPrime", "checkPrimeSync", "generatePrime", "generatePrimeSync", "secureHeapUsed", "setEngine", "setFips", "getFips"], "refused": ["KeyObject", "createCipheriv", "createDecipheriv", "createSign", "createVerify", "createDiffieHellman", "createECDH", "createPublicKey", "createPrivateKey", "createSecretKey", "diffieHellman", "generateKeyPair", "generateKeyPairSync", "generateKey", "generateKeySync", "sign", "verify", "publicEncrypt", "publicDecrypt", "privateEncrypt", "privateDecrypt", "X509Certificate", "Certificate", "checkPrime", "checkPrimeSync", "generatePrime", "generatePrimeSync", "secureHeapUsed", "setEngine"], "members": ["hash.copy", "hash.digest", "hash.update", "hmac.digest", "hmac.update"], "evidence": ["tests/fixtures/npm/cases/crypto-shims/main.ts", "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts"] }, - "util": { "exports": ["getSystemErrorName", "getSystemErrorMessage", "getSystemErrorMap", "parseEnv", "format", "formatWithOptions", "inspect", "inherits", "promisify", "callbackify", "deprecate", "debuglog", "debug", "types", "isDeepStrictEqual", "stripVTControlCharacters", "styleText", "parseArgs", "toUSVString", "_extend", "TextEncoder", "TextDecoder", "MIMEType", "MIMEParams", "isArray"], "evidence": ["tests/fixtures/npm/cases/util-shims/main.ts"] }, - "util/types": { "exports": ["isAnyArrayBuffer", "isArrayBufferView", "isArgumentsObject", "isArrayBuffer", "isAsyncFunction", "isBigInt64Array", "isBigUint64Array", "isBooleanObject", "isBoxedPrimitive", "isBigIntObject", "isCryptoKey", "isDataView", "isDate", "isExternal", "isFloat16Array", "isFloat32Array", "isFloat64Array", "isGeneratorFunction", "isGeneratorObject", "isInt8Array", "isInt16Array", "isInt32Array", "isKeyObject", "isMap", "isMapIterator", "isModuleNamespaceObject", "isNativeError", "isNumberObject", "isPromise", "isProxy", "isRegExp", "isSet", "isSetIterator", "isSharedArrayBuffer", "isStringObject", "isSymbolObject", "isTypedArray", "isUint8Array", "isUint8ClampedArray", "isUint16Array", "isUint32Array", "isWeakMap", "isWeakSet"], "evidence": ["tests/fixtures/npm/cases/util-shims/main.ts", "tests/fixtures/npm/cases/node24-util-types/main.ts"] } - }, - "globals": { - "supported": ["atob", "btoa", "clearImmediate", "clearInterval", "clearTimeout", "queueMicrotask", "setImmediate", "setInterval", "setTimeout", "structuredClone", "AbortController", "AbortSignal", "Blob", "CustomEvent", "DOMException", "Event", "EventTarget", "File", "Headers", "MessageChannel", "MessageEvent", "MessagePort", "Request", "Response", "TextDecoder", "TextDecoderStream", "TextEncoder", "TextEncoderStream", "TransformStream", "TransformStreamDefaultController", "URLSearchParams", "ReadableStream", "ReadableStreamDefaultReader", "ReadableStreamDefaultController", "WritableStream", "WritableStreamDefaultWriter", "WritableStreamDefaultController", "CountQueuingStrategy", "ByteLengthQueuingStrategy"], - "npmSupported": ["Buffer", "URL"], - "absent": ["BroadcastChannel", "CloseEvent", "CompressionStream", "CryptoKey", "DecompressionStream", "EventSource", "FormData", "Navigator", "ReadableByteStreamController", "ReadableStreamBYOBReader", "ReadableStreamBYOBRequest", "Storage", "SubtleCrypto", "URLPattern", "WebAssembly", "WebSocket"], - "evidence": ["tests/harness/web-globals.test.ts"] - } -} diff --git a/internal/compatibility/generated/node-v24-backlog.json b/internal/compatibility/generated/node-v24-backlog.json index e16c10848..f5f6f75a0 100644 --- a/internal/compatibility/generated/node-v24-backlog.json +++ b/internal/compatibility/generated/node-v24-backlog.json @@ -3,8 +3,8 @@ "nodeVersion": "24.15.0", "nodeCommit": "848430679556aed0bd073f2bc263331ad84fa119", "summary": { - "taskCount": 3368, - "tierItemCount": 6638, + "taskCount": 3288, + "tierItemCount": 3288, "tiers": { "static": { "replace-refusal": 42, @@ -12,18 +12,12 @@ "audit-partial": 747, "classify": 2, "implement": 80 - }, - "dynamic": { - "audit-partial": 915, - "verify-gap": 2117, - "replace-refusal": 112, - "implement": 206 } }, "priorities": { - "high": 4475, - "normal": 1411, - "low": 752 + "high": 2239, + "normal": 673, + "low": 376 } }, "tasks": [ @@ -49,16 +43,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.assert.AssertionError", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.AssertionError", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -84,14 +68,6 @@ "confidence": "low", "source": "compiler-unmatched:assert", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:assert", - "tests": [] } } }, @@ -117,14 +93,6 @@ "confidence": "low", "source": "compiler-unmatched:assert", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:assert", - "tests": [] } } }, @@ -150,14 +118,6 @@ "confidence": "low", "source": "compiler-unmatched:assert", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:assert", - "tests": [] } } }, @@ -183,14 +143,6 @@ "confidence": "low", "source": "compiler-unmatched:assert", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:assert", - "tests": [] } } }, @@ -216,14 +168,6 @@ "confidence": "low", "source": "compiler-unmatched:assert", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:assert", - "tests": [] } } }, @@ -249,14 +193,6 @@ "confidence": "low", "source": "compiler-unmatched:assert", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:assert", - "tests": [] } } }, @@ -282,14 +218,6 @@ "confidence": "low", "source": "compiler-unmatched:assert", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:assert", - "tests": [] } } }, @@ -321,14 +249,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:assert", - "tests": [] } } }, @@ -354,16 +274,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.assert.deepEqual", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.deepEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -395,16 +305,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.deepStrictEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -436,16 +336,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.doesNotMatch", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -477,16 +367,6 @@ "tests/fixtures/node-types/no-error-assertions.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:assert.assert.doesNotReject", - "tests": [ - "tests/fixtures/npm/cases/node24-no-error-assertions/main.ts" - ] } } }, @@ -518,16 +398,6 @@ "tests/fixtures/node-types/no-error-assertions.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:assert.assert.doesNotThrow", - "tests": [ - "tests/fixtures/npm/cases/node24-no-error-assertions/main.ts" - ] } } }, @@ -559,16 +429,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.equal", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -600,16 +460,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.fail", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -641,16 +491,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.fail", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -682,16 +522,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.ifError", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -723,16 +553,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.match", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -758,16 +578,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.assert.notDeepEqual", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.notDeepEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -799,16 +609,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.notDeepStrictEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -840,16 +640,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.notEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -881,16 +671,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.notStrictEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -922,16 +702,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.ok", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -963,16 +733,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.rejects", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -1004,16 +764,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.strictEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -1045,16 +795,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:assert.throws", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] } } }, @@ -1080,14 +820,6 @@ "confidence": "low", "source": "compiler-unmatched:assert", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:assert", - "tests": [] } } }, @@ -1115,16 +847,6 @@ "tests": [ "tests/corpus/2213-async-local-storage.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:async_hooks.AsyncLocalStorage", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1150,14 +872,6 @@ "confidence": "low", "source": "compiler-unmatched:async_context", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_context", - "tests": [] } } }, @@ -1185,16 +899,6 @@ "tests": [ "tests/corpus/2213-async-local-storage.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:async_hooks.asyncLocalStorage.disable", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1222,16 +926,6 @@ "tests": [ "tests/corpus/2213-async-local-storage.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:async_hooks.asyncLocalStorage.getStore", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1259,16 +953,6 @@ "tests": [ "tests/corpus/2213-async-local-storage.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:async_hooks.asyncLocalStorage.enterWith", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1296,16 +980,6 @@ "tests": [ "tests/corpus/2213-async-local-storage.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:async_hooks.asyncLocalStorage.run", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1333,16 +1007,6 @@ "tests": [ "tests/corpus/2213-async-local-storage.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:async_hooks.asyncLocalStorage.exit", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1368,14 +1032,6 @@ "confidence": "low", "source": "compiler-unmatched:async_context", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_context", - "tests": [] } } }, @@ -1401,16 +1057,6 @@ "confidence": "low", "source": "compiler-unmatched:async_context", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:async_hooks.AsyncResource", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1436,16 +1082,6 @@ "confidence": "low", "source": "compiler-unmatched:async_context", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:async_hooks.AsyncResource", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1471,16 +1107,6 @@ "confidence": "low", "source": "compiler-unmatched:async_context", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:async_hooks.AsyncResource", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1506,16 +1132,6 @@ "confidence": "low", "source": "compiler-unmatched:async_context", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:async_hooks.asyncResource.bind", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1541,16 +1157,6 @@ "confidence": "low", "source": "compiler-unmatched:async_context", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:async_hooks.asyncResource.runInAsyncScope", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1576,16 +1182,6 @@ "confidence": "low", "source": "compiler-unmatched:async_context", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:async_hooks.asyncResource.emitDestroy", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1611,16 +1207,6 @@ "confidence": "low", "source": "compiler-unmatched:async_context", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:async_hooks.asyncResource.asyncId", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1646,16 +1232,6 @@ "confidence": "low", "source": "compiler-unmatched:async_context", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:async_hooks.asyncResource.triggerAsyncId", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1681,16 +1257,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:async_hooks.AsyncResource", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1716,14 +1282,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -1749,14 +1307,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -1782,14 +1332,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -1815,16 +1357,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:async_hooks.triggerAsyncId", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -1850,14 +1382,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -1885,14 +1409,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -1920,14 +1436,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -1953,14 +1461,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -1986,14 +1486,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -2019,14 +1511,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -2052,14 +1536,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -2085,16 +1561,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:async_hooks.executionAsyncResource", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -2120,16 +1586,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:async_hooks.executionAsyncId", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -2155,16 +1611,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:async_hooks.triggerAsyncId", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -2190,14 +1636,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -2225,16 +1663,6 @@ "tests": [ "tests/corpus/2213-async-local-storage.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:async_hooks.AsyncLocalStorage", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -2260,16 +1688,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:async_hooks.createHook", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -2295,14 +1713,6 @@ "confidence": "low", "source": "compiler-unmatched:async_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:async_hooks", - "tests": [] } } }, @@ -2328,14 +1738,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -2361,14 +1763,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -2394,14 +1788,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -2427,14 +1813,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -2460,16 +1838,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:buffer.SlowBuffer", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -2495,16 +1863,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:buffer.atob", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -2530,16 +1888,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:buffer.btoa", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -2569,16 +1917,6 @@ "tests/corpus/node24-buffer-encoding-errors.ts", "tests/fixtures/node-types/text-encoding.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:buffer.buffer.isAscii", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] } } }, @@ -2608,16 +1946,6 @@ "tests/corpus/node24-buffer-encoding-errors.ts", "tests/fixtures/node-types/text-encoding.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:buffer.buffer.isUtf8", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] } } }, @@ -2643,16 +1971,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:buffer.resolveObjectURL", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -2682,16 +2000,6 @@ "tests/corpus/node24-buffer-encoding-errors.ts", "tests/fixtures/node-types/text-encoding.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:buffer.buffer.transcode", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] } } }, @@ -2717,16 +2025,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:buffer.INSPECT_MAX_BYTES", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -2752,16 +2050,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:buffer.kMaxLength", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -2787,16 +2075,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:buffer.kStringMaxLength", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -2822,16 +2100,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.Buffer.from", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -2857,16 +2125,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.Buffer.allocUnsafe", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -2892,16 +2150,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:buffer.Blob", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -2927,16 +2175,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:buffer.Blob", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -2962,14 +2200,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -2995,14 +2225,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -3028,14 +2250,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -3061,14 +2275,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -3094,14 +2300,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -3127,14 +2325,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -3160,14 +2350,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -3193,16 +2375,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:buffer.Buffer", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3228,16 +2400,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.compare", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3263,16 +2425,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.copy", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3298,14 +2450,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -3331,16 +2475,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.equals", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3366,16 +2500,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.fill", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3401,16 +2525,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.includes", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3436,16 +2550,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.indexOf", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3471,14 +2575,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -3504,124 +2600,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.lastIndexOf", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - } - } - }, - { - "id": "buffer:192a90d09b9e", - "chapter": "buffer", - "label": "buf.readBigInt64BE([offset])", - "signature": "`buf.readBigInt64BE([offset])`", - "apiSymbol": "buf.readBigInt64BE", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/buffer.html#bufreadbigint64beoffset", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readBigInt64BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - } - } - }, - { - "id": "buffer:4cfbe8f7ea1a", - "chapter": "buffer", - "label": "buf.readBigInt64LE([offset])", - "signature": "`buf.readBigInt64LE([offset])`", - "apiSymbol": "buf.readBigInt64LE", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/buffer.html#bufreadbigint64leoffset", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readBigInt64LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - } - } - }, - { - "id": "buffer:884486b34123", - "chapter": "buffer", - "label": "buf.readBigUInt64BE([offset])", - "signature": "`buf.readBigUInt64BE([offset])`", - "apiSymbol": "buf.readBigUInt64BE", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/buffer.html#bufreadbiguint64beoffset", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readBigUInt64BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - } - } - }, - { - "id": "buffer:c6a190fd1f05", - "chapter": "buffer", - "label": "buf.readBigUInt64LE([offset])", - "signature": "`buf.readBigUInt64LE([offset])`", - "apiSymbol": "buf.readBigUInt64LE", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/buffer.html#bufreadbiguint64leoffset", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readBigUInt64LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3647,16 +2625,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readDoubleBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3682,16 +2650,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readDoubleLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3717,16 +2675,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readFloatBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3752,16 +2700,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readFloatLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3787,16 +2725,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readInt8", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3822,16 +2750,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readInt16BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3857,16 +2775,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readInt16LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3892,16 +2800,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readInt32BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3927,16 +2825,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readInt32LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3962,16 +2850,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readIntBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -3997,16 +2875,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readIntLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4032,16 +2900,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readUInt8", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4067,16 +2925,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readUInt16BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4102,16 +2950,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readUInt16LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4137,16 +2975,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readUInt32BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4172,16 +3000,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readUInt32LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4207,16 +3025,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readUIntBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4242,16 +3050,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.readUIntLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4277,16 +3075,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.subarray", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4312,16 +3100,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.slice", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4347,16 +3125,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.swap16", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4382,16 +3150,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.swap32", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4417,16 +3175,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.swap64", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4452,16 +3200,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.toJSON", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4487,16 +3225,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.toString", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4522,14 +3250,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -4555,124 +3275,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.write", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - } - } - }, - { - "id": "buffer:a0f65696c0ff", - "chapter": "buffer", - "label": "buf.writeBigInt64BE(value[, offset])", - "signature": "`buf.writeBigInt64BE(value[, offset])`", - "apiSymbol": "buf.writeBigInt64BE", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/buffer.html#bufwritebigint64bevalue-offset", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeBigInt64BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - } - } - }, - { - "id": "buffer:bec4d18deb28", - "chapter": "buffer", - "label": "buf.writeBigInt64LE(value[, offset])", - "signature": "`buf.writeBigInt64LE(value[, offset])`", - "apiSymbol": "buf.writeBigInt64LE", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/buffer.html#bufwritebigint64levalue-offset", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeBigInt64LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - } - } - }, - { - "id": "buffer:03fe65c4dcae", - "chapter": "buffer", - "label": "buf.writeBigUInt64BE(value[, offset])", - "signature": "`buf.writeBigUInt64BE(value[, offset])`", - "apiSymbol": "buf.writeBigUInt64BE", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/buffer.html#bufwritebiguint64bevalue-offset", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeBigUInt64BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - } - } - }, - { - "id": "buffer:16a200c1a65f", - "chapter": "buffer", - "label": "buf.writeBigUInt64LE(value[, offset])", - "signature": "`buf.writeBigUInt64LE(value[, offset])`", - "apiSymbol": "buf.writeBigUInt64LE", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/buffer.html#bufwritebiguint64levalue-offset", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeBigUInt64LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4698,16 +3300,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeDoubleBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4733,16 +3325,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeDoubleLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4768,16 +3350,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeFloatBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4803,16 +3375,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeFloatLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4838,16 +3400,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeInt8", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4873,16 +3425,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeInt16BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4908,16 +3450,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeInt16LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4943,16 +3475,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeInt32BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -4978,16 +3500,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeInt32LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -5013,16 +3525,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeIntBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -5048,16 +3550,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeIntLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -5083,16 +3575,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeUInt8", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -5118,16 +3600,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeUInt16BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -5153,16 +3625,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeUInt16LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -5188,16 +3650,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeUInt32BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -5223,16 +3675,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeUInt32LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -5258,16 +3700,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeUIntBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -5293,16 +3725,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:buffer.buf.writeUIntLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -5328,14 +3750,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -5361,14 +3775,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -5394,14 +3800,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -5427,14 +3825,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -5460,14 +3850,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -5493,14 +3875,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -5526,16 +3900,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:buffer.File", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] } } }, @@ -5561,14 +3925,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -5594,14 +3950,6 @@ "confidence": "low", "source": "compiler-unmatched:buffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:buffer", - "tests": [] } } }, @@ -5627,14 +3975,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -5660,14 +4000,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:child_process.exec", - "tests": [] } } }, @@ -5695,14 +4027,6 @@ "tests": [ "tests/corpus/2911-execfile-callback.ts" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:child_process.execFile", - "tests": [] } } }, @@ -5730,14 +4054,6 @@ "tests": [ "tests/corpus/2946-child-fork-ipc/main.ts" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:child_process.fork", - "tests": [] } } }, @@ -5773,14 +4089,6 @@ "tests/corpus/3131-child-rest-listeners.js", "tests/corpus/3132-child-generic-stream-completion.ts" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:child_process.spawn", - "tests": [] } } }, @@ -5806,14 +4114,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -5839,14 +4139,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -5882,14 +4174,6 @@ "tests/corpus/3131-child-rest-listeners.js", "tests/corpus/3132-child-generic-stream-completion.ts" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:child_process.execFileSync", - "tests": [] } } }, @@ -5925,14 +4209,6 @@ "tests/corpus/3131-child-rest-listeners.js", "tests/corpus/3132-child-generic-stream-completion.ts" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:child_process.execSync", - "tests": [] } } }, @@ -5968,14 +4244,6 @@ "tests/corpus/3131-child-rest-listeners.js", "tests/corpus/3132-child-generic-stream-completion.ts" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:child_process.spawnSync", - "tests": [] } } }, @@ -6001,14 +4269,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6034,14 +4294,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6069,14 +4321,6 @@ "tests": [ "tests/corpus/2946-child-fork-ipc/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6102,14 +4346,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6137,14 +4373,6 @@ "tests": [ "tests/corpus/2844-node-disposable-resources.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6170,14 +4398,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6205,14 +4425,6 @@ "tests": [ "tests/corpus/2946-child-fork-ipc/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6238,14 +4450,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6271,14 +4475,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6304,14 +4500,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6337,14 +4525,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6372,14 +4552,6 @@ "tests": [ "tests/corpus/2946-child-fork-ipc/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6405,14 +4577,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6438,14 +4602,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6471,14 +4627,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6504,14 +4652,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6537,14 +4677,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6570,14 +4702,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6606,14 +4730,6 @@ "tests/corpus/1565-spawn-pipe-streams.ts", "tests/corpus/2939-child-shell-text.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6646,14 +4762,6 @@ "tests/corpus/2897-child-stdin-destroy.ts", "tests/corpus/2898-child-stdin-spawn-failure.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6679,14 +4787,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6715,14 +4815,6 @@ "tests/corpus/1565-spawn-pipe-streams.ts", "tests/corpus/2939-child-shell-text.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6751,14 +4843,6 @@ "tests/corpus/2939-child-shell-text.ts", "tests/corpus/3131-child-rest-listeners.js" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6786,14 +4870,6 @@ "tests": [ "tests/corpus/2946-child-fork-ipc/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6819,14 +4895,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6852,14 +4920,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6887,14 +4947,6 @@ "tests": [ "tests/corpus/2946-child-fork-ipc/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6920,14 +4972,6 @@ "confidence": "low", "source": "compiler-unmatched:child_process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:child_process", - "tests": [] } } }, @@ -6953,14 +4997,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -6986,14 +5022,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7019,14 +5047,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7052,14 +5072,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7085,14 +5097,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7118,14 +5122,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7151,14 +5147,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7184,14 +5172,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7217,14 +5197,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7250,14 +5222,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7283,14 +5247,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7316,14 +5272,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7349,14 +5297,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7382,14 +5322,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7415,14 +5347,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7448,14 +5372,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7481,14 +5397,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7514,14 +5422,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7547,14 +5447,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7582,14 +5474,6 @@ "tests": [ "tests/corpus/957-builtins-namespace.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7617,14 +5501,6 @@ "tests": [ "tests/corpus/957-builtins-namespace.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7652,14 +5528,6 @@ "tests": [ "tests/corpus/957-builtins-namespace.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7685,14 +5553,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7718,14 +5578,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7751,14 +5603,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7784,14 +5628,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7817,14 +5653,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7850,14 +5678,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7883,14 +5703,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7916,14 +5728,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7949,14 +5753,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -7982,14 +5778,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -8015,14 +5803,6 @@ "confidence": "low", "source": "compiler-unmatched:cluster", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:cluster", - "tests": [] } } }, @@ -8048,14 +5828,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:console", - "tests": [] } } }, @@ -8081,14 +5853,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:console", - "tests": [] } } }, @@ -8114,14 +5878,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:console", - "tests": [] } } }, @@ -8147,16 +5903,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.console.Console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.Console", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8182,16 +5928,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.assert", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8217,16 +5953,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.clear", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8252,16 +5978,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.count", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8287,16 +6003,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.countReset", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8328,16 +6034,6 @@ "tests/corpus/console-native-value.js", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.debug", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8363,16 +6059,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.dir", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8398,14 +6084,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:console", - "tests": [] } } }, @@ -8437,16 +6115,6 @@ "tests/corpus/console-native-value.js", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.error", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8472,16 +6140,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.group", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8507,14 +6165,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:console", - "tests": [] } } }, @@ -8540,16 +6190,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.groupEnd", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8581,16 +6221,6 @@ "tests/corpus/console-native-value.js", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.info", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8622,16 +6252,6 @@ "tests/corpus/console-native-value.js", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.log", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8657,16 +6277,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.table", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8692,16 +6302,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.time", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8727,16 +6327,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.timeEnd", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8762,14 +6352,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:console", - "tests": [] } } }, @@ -8795,16 +6377,6 @@ "confidence": "low", "source": "compiler-unmatched:console", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.trace", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8836,16 +6408,6 @@ "tests/corpus/console-native-value.js", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:console.warn", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -8871,14 +6433,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -8904,14 +6458,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -8937,14 +6483,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -8970,14 +6508,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.checkPrime", - "tests": [] } } }, @@ -9003,14 +6533,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.checkPrimeSync", - "tests": [] } } }, @@ -9036,14 +6558,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.createCipheriv", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.createCipheriv", - "tests": [] } } }, @@ -9069,14 +6583,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.createDecipheriv", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.createDecipheriv", - "tests": [] } } }, @@ -9102,14 +6608,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.createDiffieHellman", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.createDiffieHellman", - "tests": [] } } }, @@ -9135,14 +6633,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.createDiffieHellman", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.createDiffieHellman", - "tests": [] } } }, @@ -9168,14 +6658,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.createDiffieHellmanGroup", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -9201,14 +6683,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.createECDH", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.createECDH", - "tests": [] } } }, @@ -9238,17 +6712,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.createHash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -9278,17 +6741,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.createHmac", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -9314,14 +6766,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.createPrivateKey", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.createPrivateKey", - "tests": [] } } }, @@ -9347,14 +6791,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.createPublicKey", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.createPublicKey", - "tests": [] } } }, @@ -9380,14 +6816,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.createSecretKey", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.createSecretKey", - "tests": [] } } }, @@ -9413,14 +6841,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.createSign", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.createSign", - "tests": [] } } }, @@ -9446,14 +6866,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.createVerify", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.createVerify", - "tests": [] } } }, @@ -9479,14 +6891,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -9512,14 +6916,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.diffieHellman", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.diffieHellman", - "tests": [] } } }, @@ -9545,14 +6941,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -9578,14 +6966,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.generateKey", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.generateKey", - "tests": [] } } }, @@ -9611,14 +6991,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.generateKeyPair", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.generateKeyPair", - "tests": [] } } }, @@ -9644,14 +7016,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.generateKeyPairSync", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.generateKeyPairSync", - "tests": [] } } }, @@ -9677,14 +7041,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.generateKeySync", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.generateKeySync", - "tests": [] } } }, @@ -9710,14 +7066,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.generatePrime", - "tests": [] } } }, @@ -9743,14 +7091,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.generatePrimeSync", - "tests": [] } } }, @@ -9776,14 +7116,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.getCipherInfo", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -9809,17 +7141,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.getCiphers", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -9845,17 +7166,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.getCurves", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -9881,14 +7191,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.getDiffieHellman", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -9914,17 +7216,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.getFips", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -9950,17 +7241,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.getHashes", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -9986,17 +7266,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.getRandomValues", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10026,17 +7295,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10066,17 +7324,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hkdf", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10106,17 +7353,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hkdfSync", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10146,17 +7382,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.pbkdf2", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10186,17 +7411,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.pbkdf2Sync", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10222,14 +7436,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.privateDecrypt", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.privateDecrypt", - "tests": [] } } }, @@ -10255,14 +7461,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.privateEncrypt", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.privateEncrypt", - "tests": [] } } }, @@ -10288,14 +7486,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.publicDecrypt", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.publicDecrypt", - "tests": [] } } }, @@ -10321,14 +7511,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.publicEncrypt", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.publicEncrypt", - "tests": [] } } }, @@ -10364,17 +7546,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.randomBytes", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10400,17 +7571,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.randomFill", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10440,17 +7600,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.randomFillSync", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10480,17 +7629,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.randomInt", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10526,17 +7664,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.randomUUID", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10566,17 +7693,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.scrypt", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10606,17 +7722,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.scryptSync", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10642,14 +7747,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.secureHeapUsed", - "tests": [] } } }, @@ -10675,14 +7772,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.setEngine", - "tests": [] } } }, @@ -10708,17 +7797,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.setFips", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.setFips", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10744,14 +7822,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.sign", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.sign", - "tests": [] } } }, @@ -10781,17 +7851,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.timingSafeEqual", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10817,14 +7876,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.verify", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.verify", - "tests": [] } } }, @@ -10850,17 +7901,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.constants", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10886,14 +7926,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -10919,17 +7951,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.subtle", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10955,17 +7976,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.crypto.webcrypto", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.webcrypto", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -10991,14 +8001,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.Certificate", - "tests": [] } } }, @@ -11024,14 +8026,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11057,14 +8051,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11090,14 +8076,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11123,14 +8101,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11156,14 +8126,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11189,14 +8151,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11222,14 +8176,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11255,14 +8201,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11288,14 +8226,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11321,14 +8251,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11354,14 +8276,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11387,14 +8301,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11420,14 +8326,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11453,14 +8351,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11486,14 +8376,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11519,14 +8401,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11552,14 +8426,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11585,14 +8451,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11618,14 +8476,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11651,14 +8501,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11684,14 +8526,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11717,14 +8551,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11750,14 +8576,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11783,14 +8601,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11816,14 +8626,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11849,14 +8651,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11882,14 +8676,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11915,14 +8701,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11948,14 +8726,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -11981,14 +8751,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12014,14 +8776,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12047,14 +8801,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12080,14 +8826,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12117,17 +8855,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.Hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -12157,17 +8884,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:crypto.hash.copy", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -12197,17 +8913,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:crypto.hash.digest", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -12237,17 +8942,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:crypto.hash.update", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -12277,17 +8971,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.Hmac", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -12317,17 +9000,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:crypto.hmac.digest", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -12357,17 +9029,6 @@ "tests/corpus/node24-crypto-sha2.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:crypto.hmac.update", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -12393,14 +9054,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.KeyObject", - "tests": [] } } }, @@ -12426,14 +9079,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12459,14 +9104,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12492,14 +9129,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12525,14 +9154,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12558,14 +9179,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12591,14 +9204,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12624,14 +9229,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12657,14 +9254,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12690,14 +9279,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12723,14 +9304,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12756,14 +9329,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12789,14 +9354,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12822,14 +9379,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12855,14 +9404,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:crypto.X509Certificate", - "tests": [] } } }, @@ -12888,14 +9429,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12921,14 +9454,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12954,14 +9479,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -12987,14 +9504,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13020,14 +9529,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13053,14 +9554,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13086,14 +9579,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13119,14 +9604,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13152,14 +9629,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13185,14 +9654,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13218,14 +9679,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13251,14 +9704,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13284,14 +9729,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13317,14 +9754,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13350,14 +9779,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13383,14 +9804,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13416,14 +9829,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13449,14 +9854,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13482,14 +9879,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13515,14 +9904,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13548,14 +9929,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13581,14 +9954,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13614,14 +9979,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13647,14 +10004,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13680,14 +10029,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13713,14 +10054,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13746,14 +10079,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13779,14 +10104,6 @@ "confidence": "low", "source": "compiler-unmatched:crypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:crypto", - "tests": [] } } }, @@ -13814,20 +10131,6 @@ "tests": [ "tests/corpus/2214-dc-bind-store.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:diagnostics_channel.hasSubscribers", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -13855,20 +10158,6 @@ "tests": [ "tests/corpus/2214-dc-bind-store.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:diagnostics_channel.channel", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -13896,20 +10185,6 @@ "tests": [ "tests/corpus/2214-dc-bind-store.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:diagnostics_channel.subscribe", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -13937,20 +10212,6 @@ "tests": [ "tests/corpus/2214-dc-bind-store.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:diagnostics_channel.unsubscribe", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -13978,20 +10239,6 @@ "tests": [ "tests/corpus/2214-dc-bind-store.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:diagnostics_channel.tracingChannel", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -14017,19 +10264,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.start", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -14055,19 +10289,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.end", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -14093,19 +10314,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.asyncStart", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -14131,19 +10339,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.asyncEnd", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -14169,19 +10364,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.error", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -14207,14 +10389,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14240,14 +10414,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14273,14 +10439,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14306,14 +10464,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14339,14 +10489,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14372,14 +10514,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14405,14 +10539,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14438,14 +10564,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14471,14 +10589,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14504,14 +10614,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14537,14 +10639,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14570,14 +10664,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14603,14 +10689,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14636,14 +10714,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14669,14 +10739,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14702,14 +10764,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14735,14 +10789,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14768,14 +10814,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14801,14 +10839,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14834,14 +10864,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14867,14 +10889,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14900,14 +10914,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14933,14 +10939,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14966,14 +10964,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -14999,14 +10989,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15032,14 +11014,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15065,14 +11039,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15098,14 +11064,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15131,14 +11089,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15164,14 +11114,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15197,14 +11139,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15230,14 +11164,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15263,14 +11189,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15296,14 +11214,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15329,14 +11239,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15362,14 +11264,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15395,14 +11289,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15428,14 +11314,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15461,14 +11339,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15494,14 +11364,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15527,14 +11389,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15560,14 +11414,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15593,14 +11439,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:diagnostics_channel", - "tests": [] } } }, @@ -15626,20 +11464,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:diagnostics_channel.Channel", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -15665,20 +11489,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:diagnostics_channel.channel.publish", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -15704,20 +11514,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:diagnostics_channel.channel.subscribe", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -15743,20 +11539,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:diagnostics_channel.channel.unsubscribe", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -15782,19 +11564,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.channel.bindStore", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -15820,19 +11589,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.channel.unbindStore", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -15858,19 +11614,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.channel.runStores", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -15898,20 +11641,6 @@ "tests": [ "tests/corpus/2214-dc-bind-store.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:diagnostics_channel.hasSubscribers", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -15937,19 +11666,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.TracingChannel", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -15975,19 +11691,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.tracingChannel.subscribe", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -16013,19 +11716,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.tracingChannel.unsubscribe", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -16051,19 +11741,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.tracingChannel.traceSync", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -16089,19 +11766,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.tracingChannel.tracePromise", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -16127,19 +11791,6 @@ "confidence": "low", "source": "compiler-unmatched:diagnostics_channel", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:diagnostics_channel.tracingChannel.traceCallback", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -16167,20 +11818,6 @@ "tests": [ "tests/corpus/2214-dc-bind-store.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:diagnostics_channel.hasSubscribers", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] } } }, @@ -16206,16 +11843,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:dns/promises.Resolver", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -16241,14 +11868,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:dns", - "tests": [] } } }, @@ -16274,16 +11893,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:dns/promises.getServers", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -16309,14 +11918,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.lookup", - "tests": [] } } }, @@ -16342,14 +11943,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.lookupService", - "tests": [] } } }, @@ -16375,14 +11968,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolve", - "tests": [] } } }, @@ -16408,14 +11993,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolve4", - "tests": [] } } }, @@ -16441,14 +12018,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolve6", - "tests": [] } } }, @@ -16474,14 +12043,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolveAny", - "tests": [] } } }, @@ -16507,14 +12068,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolveCaa", - "tests": [] } } }, @@ -16540,14 +12093,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolveCname", - "tests": [] } } }, @@ -16573,14 +12118,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolveMx", - "tests": [] } } }, @@ -16606,14 +12143,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolveNaptr", - "tests": [] } } }, @@ -16639,14 +12168,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolveNs", - "tests": [] } } }, @@ -16672,14 +12193,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolvePtr", - "tests": [] } } }, @@ -16705,14 +12218,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolveSoa", - "tests": [] } } }, @@ -16738,14 +12243,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolveSrv", - "tests": [] } } }, @@ -16771,14 +12268,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolveTlsa", - "tests": [] } } }, @@ -16804,14 +12293,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.resolveTxt", - "tests": [] } } }, @@ -16837,14 +12318,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns/promises.reverse", - "tests": [] } } }, @@ -16870,16 +12343,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:dns/promises.setDefaultResultOrder", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -16905,16 +12368,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:dns/promises.getDefaultResultOrder", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -16940,16 +12393,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:dns/promises.setServers", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -16975,14 +12418,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolve", - "tests": [] } } }, @@ -17008,14 +12443,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.lookup", - "tests": [] } } }, @@ -17041,16 +12468,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:dns.Resolver", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -17076,16 +12493,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:dns.Resolver", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -17111,14 +12518,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:dns", - "tests": [] } } }, @@ -17144,14 +12543,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:dns", - "tests": [] } } }, @@ -17177,16 +12568,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:dns.getServers", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -17212,14 +12593,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.lookup", - "tests": [] } } }, @@ -17245,14 +12618,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.lookupService", - "tests": [] } } }, @@ -17278,14 +12643,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolve", - "tests": [] } } }, @@ -17311,14 +12668,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolve4", - "tests": [] } } }, @@ -17344,14 +12693,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolve6", - "tests": [] } } }, @@ -17377,14 +12718,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolveAny", - "tests": [] } } }, @@ -17410,14 +12743,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolveCname", - "tests": [] } } }, @@ -17443,14 +12768,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolveCaa", - "tests": [] } } }, @@ -17476,14 +12793,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolveMx", - "tests": [] } } }, @@ -17509,14 +12818,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolveNaptr", - "tests": [] } } }, @@ -17542,14 +12843,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolveNs", - "tests": [] } } }, @@ -17575,14 +12868,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolvePtr", - "tests": [] } } }, @@ -17608,14 +12893,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolveSoa", - "tests": [] } } }, @@ -17641,14 +12918,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolveSrv", - "tests": [] } } }, @@ -17674,14 +12943,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolveTlsa", - "tests": [] } } }, @@ -17707,14 +12968,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.resolveTxt", - "tests": [] } } }, @@ -17740,14 +12993,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:dns.reverse", - "tests": [] } } }, @@ -17773,16 +13018,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:dns.setDefaultResultOrder", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -17808,16 +13043,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:dns.getDefaultResultOrder", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -17843,16 +13068,6 @@ "confidence": "low", "source": "compiler-unmatched:dns", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:dns.setServers", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -17878,16 +13093,6 @@ "confidence": "low", "source": "compiler-unmatched:domain", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:domain.Domain", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -17913,16 +13118,6 @@ "confidence": "low", "source": "compiler-unmatched:domain", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:domain.domain.add", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -17948,16 +13143,6 @@ "confidence": "low", "source": "compiler-unmatched:domain", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:domain.domain.bind", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -17983,16 +13168,6 @@ "confidence": "low", "source": "compiler-unmatched:domain", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:domain.domain.enter", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -18018,16 +13193,6 @@ "confidence": "low", "source": "compiler-unmatched:domain", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:domain.domain.exit", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -18053,16 +13218,6 @@ "confidence": "low", "source": "compiler-unmatched:domain", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:domain.domain.intercept", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -18088,16 +13243,6 @@ "confidence": "low", "source": "compiler-unmatched:domain", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:domain.domain.remove", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -18123,16 +13268,6 @@ "confidence": "low", "source": "compiler-unmatched:domain", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:domain.domain.run", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -18158,14 +13293,6 @@ "confidence": "low", "source": "compiler-unmatched:domain", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:domain", - "tests": [] } } }, @@ -18191,16 +13318,6 @@ "confidence": "low", "source": "compiler-unmatched:domain", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:domain.create", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -18226,14 +13343,6 @@ "confidence": "low", "source": "compiler-unmatched:domain", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:domain", - "tests": [] } } }, @@ -18257,17 +13366,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:environment_variables.process.env", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/node24-env/main.ts" - ] } } }, @@ -18288,14 +13386,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18316,14 +13406,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18346,14 +13428,6 @@ "tests": [ "tests/corpus/error-stack-limit.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18374,14 +13448,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18402,14 +13468,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18430,14 +13488,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18461,14 +13511,6 @@ "tests/corpus/error-stack-frames.ts", "tests/corpus/error-stack-limit.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18489,14 +13531,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18517,14 +13551,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18545,14 +13571,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18573,14 +13591,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18601,14 +13611,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18629,14 +13631,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18661,14 +13655,6 @@ "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18693,14 +13679,6 @@ "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18725,14 +13703,6 @@ "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18753,14 +13723,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18781,14 +13743,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18813,14 +13767,6 @@ "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18841,14 +13787,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18873,14 +13811,6 @@ "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18901,14 +13831,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18929,14 +13851,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18957,14 +13871,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -18985,14 +13891,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19013,14 +13911,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19041,14 +13931,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19069,14 +13951,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19097,14 +13971,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19125,14 +13991,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19153,14 +14011,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19181,14 +14031,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19209,14 +14051,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19237,14 +14071,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19265,14 +14091,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19293,14 +14111,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19321,14 +14131,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19349,14 +14151,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19377,14 +14171,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19405,14 +14191,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19433,14 +14211,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19461,14 +14231,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19489,14 +14251,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19517,14 +14271,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19545,14 +14291,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19573,14 +14311,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19601,14 +14331,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19629,14 +14351,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19657,14 +14371,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19685,14 +14391,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19713,14 +14411,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19741,14 +14431,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19769,14 +14451,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19797,14 +14471,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19825,14 +14491,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19853,14 +14511,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19881,14 +14531,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19909,14 +14551,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19937,14 +14571,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19965,14 +14591,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -19993,14 +14611,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20021,14 +14631,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20049,14 +14651,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20077,14 +14671,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20105,14 +14691,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20133,14 +14711,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20161,14 +14731,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20189,14 +14751,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20217,14 +14771,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20245,14 +14791,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20273,14 +14811,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20301,14 +14831,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20329,14 +14851,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20357,14 +14871,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20385,14 +14891,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20413,14 +14911,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20441,14 +14931,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20469,14 +14951,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20497,14 +14971,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20525,14 +14991,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20553,14 +15011,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20581,14 +15031,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20609,14 +15051,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20637,14 +15071,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20665,14 +15091,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20693,14 +15111,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20721,14 +15131,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20749,14 +15151,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20777,14 +15171,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20805,14 +15191,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20833,14 +15211,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20861,14 +15231,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20889,14 +15251,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20917,14 +15271,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20945,14 +15291,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -20973,14 +15311,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21001,14 +15331,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21029,14 +15351,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21057,14 +15371,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21085,14 +15391,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21113,14 +15411,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21141,14 +15431,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21169,14 +15451,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21197,14 +15471,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21225,14 +15491,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21253,14 +15511,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21281,14 +15531,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21309,14 +15551,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21337,14 +15571,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21365,14 +15591,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21393,14 +15611,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21421,14 +15631,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21449,14 +15651,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21477,14 +15671,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21505,14 +15691,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21533,14 +15711,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21561,14 +15731,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21589,14 +15751,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21617,14 +15771,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21645,14 +15791,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21673,14 +15811,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21701,14 +15831,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21729,14 +15851,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21757,14 +15871,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21785,14 +15891,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21813,14 +15911,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21841,14 +15931,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21869,14 +15951,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21897,14 +15971,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21925,14 +15991,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21953,14 +16011,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -21981,14 +16031,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22009,14 +16051,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22037,14 +16071,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22065,14 +16091,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22093,14 +16111,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22121,14 +16131,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22149,14 +16151,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22177,14 +16171,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22205,14 +16191,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22233,14 +16211,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22261,14 +16231,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22289,14 +16251,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22317,14 +16271,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22345,14 +16291,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22373,14 +16311,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22401,14 +16331,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22429,14 +16351,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22457,14 +16371,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22485,14 +16391,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22513,14 +16411,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22541,14 +16431,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22569,14 +16451,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22597,14 +16471,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22625,14 +16491,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22653,14 +16511,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22681,14 +16531,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22709,14 +16551,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22737,14 +16571,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22765,14 +16591,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22793,14 +16611,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22821,14 +16631,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22849,14 +16651,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22877,14 +16671,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22905,14 +16691,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22933,14 +16711,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22961,14 +16731,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -22989,14 +16751,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23017,14 +16771,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23045,14 +16791,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23073,14 +16811,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23101,14 +16831,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23129,14 +16851,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23157,14 +16871,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23185,14 +16891,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23213,14 +16911,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23241,14 +16931,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23269,14 +16951,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23297,14 +16971,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23325,14 +16991,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23353,14 +17011,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23381,14 +17031,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23409,14 +17051,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23437,14 +17071,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23465,14 +17091,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23493,14 +17111,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23521,14 +17131,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23549,14 +17151,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23577,14 +17171,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23605,14 +17191,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23633,14 +17211,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23661,14 +17231,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23689,14 +17251,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23717,14 +17271,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23745,14 +17291,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23773,14 +17311,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23801,14 +17331,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23829,14 +17351,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23857,14 +17371,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23885,14 +17391,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23913,14 +17411,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23941,14 +17431,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23969,14 +17451,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -23997,14 +17471,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24025,14 +17491,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24053,14 +17511,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24081,14 +17531,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24109,14 +17551,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24137,14 +17571,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24165,14 +17591,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24193,14 +17611,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24221,14 +17631,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24249,14 +17651,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24277,14 +17671,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24305,14 +17691,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24333,14 +17711,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24361,14 +17731,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24389,14 +17751,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24417,14 +17771,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24445,14 +17791,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24473,14 +17811,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24501,14 +17831,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24529,14 +17851,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24557,14 +17871,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24585,14 +17891,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24613,14 +17911,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24641,14 +17931,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24669,14 +17951,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24697,14 +17971,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24725,14 +17991,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24753,14 +18011,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24781,14 +18031,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24809,14 +18051,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24837,14 +18071,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24865,14 +18091,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24893,14 +18111,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24921,14 +18131,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24949,14 +18151,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -24977,14 +18171,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25005,14 +18191,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25033,14 +18211,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25061,14 +18231,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25089,14 +18251,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25117,14 +18271,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25145,14 +18291,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25173,14 +18311,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25201,14 +18331,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25229,14 +18351,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25257,14 +18371,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25285,14 +18391,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25313,14 +18411,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25341,14 +18431,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25369,14 +18451,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25397,14 +18471,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25425,14 +18491,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25453,14 +18511,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25481,14 +18531,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25509,14 +18551,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25537,14 +18571,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25565,14 +18591,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25593,14 +18611,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25621,14 +18631,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25649,14 +18651,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25677,14 +18671,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25705,14 +18691,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25733,14 +18711,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25761,14 +18731,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25794,14 +18756,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25827,14 +18781,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25860,14 +18806,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25893,14 +18831,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25926,14 +18856,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25959,14 +18881,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -25987,14 +18901,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26015,14 +18921,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26048,14 +18946,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26076,14 +18966,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26104,14 +18986,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26132,14 +19006,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26160,14 +19026,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26188,14 +19046,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26216,14 +19066,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26244,14 +19086,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26272,14 +19106,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26300,14 +19126,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26328,14 +19146,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26356,14 +19166,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26384,14 +19186,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26412,14 +19206,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26440,14 +19226,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26468,14 +19246,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26496,14 +19266,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26524,14 +19286,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26552,14 +19306,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26580,14 +19326,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26608,14 +19346,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26636,14 +19366,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26664,14 +19386,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26692,14 +19406,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26720,14 +19426,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26748,14 +19446,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26776,14 +19466,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26804,14 +19486,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26832,14 +19506,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26860,14 +19526,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26888,14 +19546,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26916,14 +19566,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26944,14 +19586,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -26972,14 +19606,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27000,14 +19626,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27028,14 +19646,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27056,14 +19666,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27084,14 +19686,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27112,14 +19706,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27140,14 +19726,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27168,14 +19746,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27196,14 +19766,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27224,14 +19786,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27252,14 +19806,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27280,14 +19826,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27308,14 +19846,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27336,14 +19866,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27364,14 +19886,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27392,14 +19906,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27420,14 +19926,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27448,14 +19946,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27476,14 +19966,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27504,14 +19986,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27532,14 +20006,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27560,14 +20026,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27588,14 +20046,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27616,14 +20066,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27644,14 +20086,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27672,14 +20106,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27700,14 +20126,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27728,14 +20146,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27756,14 +20166,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27784,14 +20186,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27812,14 +20206,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27840,14 +20226,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27868,14 +20246,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27896,14 +20266,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27924,14 +20286,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27952,14 +20306,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -27980,14 +20326,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28008,14 +20346,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28036,14 +20366,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28064,14 +20386,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28092,14 +20406,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28120,14 +20426,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28148,14 +20446,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28176,14 +20466,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28204,14 +20486,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28232,14 +20506,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28260,14 +20526,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28288,14 +20546,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28316,14 +20566,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28344,14 +20586,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28372,14 +20606,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28400,14 +20626,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28428,14 +20646,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28456,14 +20666,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28484,14 +20686,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28512,14 +20706,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28540,14 +20726,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28573,14 +20751,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28606,14 +20776,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28639,14 +20801,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28672,14 +20826,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28700,14 +20846,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28728,14 +20866,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28756,14 +20886,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28784,14 +20906,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28812,14 +20926,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28840,14 +20946,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28868,14 +20966,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28896,14 +20986,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28924,14 +21006,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28952,14 +21026,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -28980,14 +21046,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29013,14 +21071,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29046,14 +21096,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29079,14 +21121,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29112,14 +21146,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29145,14 +21171,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29178,14 +21196,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29211,14 +21221,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29244,14 +21246,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29277,14 +21271,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29310,14 +21296,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29343,14 +21321,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29376,14 +21346,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29409,14 +21371,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29442,14 +21396,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29475,14 +21421,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29508,14 +21446,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29541,14 +21471,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29574,14 +21496,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29607,14 +21521,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29640,14 +21546,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29673,14 +21571,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29706,14 +21596,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29739,14 +21621,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29772,14 +21646,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29805,14 +21671,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29838,14 +21696,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29871,14 +21721,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29904,14 +21746,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29937,14 +21771,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -29970,14 +21796,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30003,14 +21821,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30036,14 +21846,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30069,14 +21871,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30102,14 +21896,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30135,14 +21921,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30168,14 +21946,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30201,14 +21971,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30234,14 +21996,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30267,14 +22021,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30300,14 +22046,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30333,14 +22071,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30366,14 +22096,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30399,14 +22121,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30432,14 +22146,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30465,14 +22171,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30498,14 +22196,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30531,14 +22221,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30564,14 +22246,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30597,14 +22271,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30630,14 +22296,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30663,14 +22321,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30696,14 +22346,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30724,14 +22366,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30752,14 +22386,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30780,14 +22406,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30808,14 +22426,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30836,14 +22446,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30864,14 +22466,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30892,14 +22486,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30920,14 +22506,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30948,14 +22526,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -30976,14 +22546,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31004,14 +22566,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31032,14 +22586,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31060,14 +22606,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31088,14 +22626,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31116,14 +22646,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31144,14 +22666,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31172,14 +22686,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31200,14 +22706,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31228,14 +22726,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31256,14 +22746,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31284,14 +22766,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31312,14 +22786,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31340,14 +22806,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31368,14 +22826,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31396,14 +22846,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31424,14 +22866,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31452,14 +22886,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31480,14 +22906,6 @@ "confidence": "low", "source": "compiler-unmatched:errors", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:errors", - "tests": [] } } }, @@ -31513,14 +22931,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31546,14 +22956,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31579,14 +22981,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31612,14 +23006,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31645,14 +23031,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31678,14 +23056,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31711,14 +23081,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31744,14 +23106,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31777,14 +23131,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31810,14 +23156,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31843,14 +23181,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31876,14 +23206,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31909,14 +23231,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31942,14 +23256,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -31975,14 +23281,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32008,14 +23306,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32041,14 +23331,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32074,14 +23356,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32107,14 +23381,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32140,14 +23406,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32173,14 +23431,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32206,14 +23456,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32239,14 +23481,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32272,14 +23506,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32305,14 +23531,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32338,14 +23556,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32371,14 +23581,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32404,14 +23606,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32437,14 +23631,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32470,14 +23656,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32503,14 +23681,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32536,14 +23706,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32569,14 +23731,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32602,14 +23756,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32635,14 +23781,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32668,14 +23806,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32701,14 +23831,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32734,14 +23856,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32767,14 +23881,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32800,14 +23906,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32833,14 +23931,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32866,14 +23956,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32902,16 +23984,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:events.EventEmitter", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -32937,14 +24009,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -32973,17 +24037,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.emitter.addListener", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -33012,17 +24065,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.emitter.emit", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -33051,17 +24093,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.emitter.eventNames", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -33090,16 +24121,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:events.emitter.getMaxListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -33128,17 +24149,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.emitter.listenerCount", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -33167,16 +24177,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:events.emitter.listeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -33205,17 +24205,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.emitter.off", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -33244,17 +24233,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.emitter.on", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -33283,17 +24261,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.emitter.once", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -33322,17 +24289,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.emitter.prependListener", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -33361,17 +24317,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.emitter.prependOnceListener", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -33400,17 +24345,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.emitter.removeAllListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -33439,17 +24373,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.emitter.removeListener", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -33478,16 +24401,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:events.emitter.setMaxListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -33516,16 +24429,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:events.emitter.rawListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -33551,14 +24454,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -33584,14 +24479,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -33617,14 +24504,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -33650,14 +24529,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -33683,14 +24554,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -33716,14 +24579,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -33749,14 +24604,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -33785,16 +24632,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:events.events.getEventListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -33820,14 +24657,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -33856,16 +24685,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.events.once", - "tests": [ - "tests/fixtures/npm/cases/node24-async-events/main.ts" - ] } } }, @@ -33894,16 +24713,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:events.events.listenerCount", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -33932,16 +24741,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.events.on", - "tests": [ - "tests/fixtures/npm/cases/node24-async-events/main.ts" - ] } } }, @@ -33970,16 +24769,6 @@ "tests/corpus/1677-emitter-listeners.ts", "tests/corpus/2620-ee-override-once-order.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:events.events.setMaxListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -34005,16 +24794,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.events.addAbortListener", - "tests": [ - "tests/fixtures/npm/cases/node24-async-events/main.ts" - ] } } }, @@ -34040,16 +24819,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:events.defaultMaxListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -34075,17 +24844,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:events.events.errorMonitor", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] } } }, @@ -34111,14 +24869,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:events", - "tests": [] } } }, @@ -34144,16 +24894,6 @@ "confidence": "low", "source": "compiler-unmatched:events", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:events.captureRejectionSymbol", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -34182,17 +24922,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.FileHandle", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34221,17 +24950,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.appendFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34259,17 +24977,6 @@ "tests": [ "tests/corpus/3135-fs-file-handle-controls.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.chmod", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34295,14 +25002,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -34331,17 +25030,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.close", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34367,14 +25055,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -34400,14 +25080,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -34435,17 +25107,6 @@ "tests": [ "tests/corpus/3135-fs-file-handle-controls.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.datasync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34474,17 +25135,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34513,17 +25163,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34552,17 +25191,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34588,14 +25216,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -34624,17 +25244,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.readFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34660,14 +25269,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -34695,17 +25296,6 @@ "tests": [ "tests/corpus/3135-fs-file-handle-controls.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.readv", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34734,17 +25324,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.stat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34772,17 +25351,6 @@ "tests": [ "tests/corpus/3135-fs-file-handle-controls.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.sync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34810,17 +25378,6 @@ "tests": [ "tests/corpus/3135-fs-file-handle-controls.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.truncate", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34849,14 +25406,6 @@ "tests/corpus/node24-fs-timestamps-promises.ts", "tests/fixtures/node-types/fs-timestamps.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -34885,17 +25434,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34924,17 +25462,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -34963,17 +25490,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35002,17 +25518,6 @@ "tests/corpus/2686-fs-file-handle.ts", "tests/corpus/3136-fs-file-handle-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.writeFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35040,17 +25545,6 @@ "tests": [ "tests/corpus/3135-fs-file-handle-controls.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs/promises.filehandle.writev", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35078,14 +25572,6 @@ "tests": [ "tests/corpus/2844-node-disposable-resources.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -35113,16 +25599,6 @@ "tests": [ "tests/corpus/2686-fs-file-handle.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:fs.fd", - "tests": [ - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35148,14 +25624,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -35181,17 +25649,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.access", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35217,17 +25674,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.appendFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35258,17 +25704,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.chmod", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35294,14 +25729,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -35327,17 +25754,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.copyFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35363,14 +25779,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -35396,14 +25804,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -35429,14 +25829,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -35462,14 +25854,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -35498,14 +25882,6 @@ "tests/corpus/node24-fs-timestamps-promises.ts", "tests/corpus/node24-fs-timestamps-symlinks.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -35535,14 +25911,6 @@ "tests/corpus/node24-fs-links-promise-errors.cjs", "tests/fixtures/node-types/fs-links.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -35570,17 +25938,6 @@ "tests": [ "tests/corpus/2941-fsp-lstat-identity.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.lstat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35611,17 +25968,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.mkdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35647,17 +25993,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.mkdtemp", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35683,14 +26018,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -35721,17 +26048,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.open", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35757,14 +26073,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -35792,17 +26100,6 @@ "tests": [ "tests/corpus/2942-fsp-readdir-dirent.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.readdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35833,17 +26130,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.readFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35874,17 +26160,6 @@ "tests/corpus/node24-fs-links-promise-errors.cjs", "tests/fixtures/node-types/fs-links.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.readlink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35912,17 +26187,6 @@ "tests": [ "tests/corpus/2940-fsp-realpath.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.realpath", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35953,17 +26217,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.rename", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -35989,17 +26242,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.rmdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36030,17 +26272,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.rm", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36071,17 +26302,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.stat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36112,14 +26332,6 @@ "tests/corpus/node24-fs-statfs-errors.cjs", "tests/fixtures/node-types/fs-statfs.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -36150,14 +26362,6 @@ "tests/corpus/node24-fs-links-promise-errors.cjs", "tests/fixtures/node-types/fs-links.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -36183,14 +26387,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -36221,17 +26417,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.unlink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36259,14 +26444,6 @@ "tests": [ "tests/corpus/node24-fs-timestamps-promises.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -36292,14 +26469,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -36330,17 +26499,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs/promises.writeFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36366,17 +26524,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.constants", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36402,17 +26549,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.access", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36438,17 +26574,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.appendFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36474,17 +26599,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.chmod", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36510,14 +26624,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -36543,17 +26649,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.close", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36579,17 +26674,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.copyFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36615,14 +26699,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -36648,17 +26724,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.createReadStream", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36684,17 +26749,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.createWriteStream", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36720,17 +26774,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.exists", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36758,17 +26801,6 @@ "tests": [ "tests/corpus/3137-fs-vector-callbacks.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.fchmod", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36794,14 +26826,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -36829,17 +26853,6 @@ "tests": [ "tests/corpus/3137-fs-vector-callbacks.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.fdatasync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36865,17 +26878,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.fstat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36901,17 +26903,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.fsync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36939,17 +26930,6 @@ "tests": [ "tests/corpus/3137-fs-vector-callbacks.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.ftruncate", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -36979,14 +26959,6 @@ "tests/corpus/node24-fs-timestamps-symlinks.ts", "tests/corpus/node24-fs-timestamps-errors.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37012,14 +26984,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37045,14 +27009,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37078,14 +27034,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37115,14 +27063,6 @@ "tests/corpus/node24-fs-timestamps-symlinks.ts", "tests/corpus/node24-fs-timestamps-errors.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37153,14 +27093,6 @@ "tests/corpus/node24-fs-links-options.cjs", "tests/fixtures/node-types/fs-links.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37186,17 +27118,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.lstat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37222,17 +27143,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.mkdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37258,17 +27168,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.mkdtemp", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37294,17 +27193,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.open", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37330,14 +27218,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37363,14 +27243,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37396,17 +27268,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37432,17 +27293,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37468,17 +27318,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37504,17 +27343,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.readdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37540,17 +27368,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.readFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37581,17 +27398,6 @@ "tests/corpus/node24-fs-links-options.cjs", "tests/fixtures/node-types/fs-links.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.readlink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37619,17 +27425,6 @@ "tests": [ "tests/corpus/3137-fs-vector-callbacks.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.readv", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37655,17 +27450,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.realpath", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37691,14 +27475,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37729,17 +27505,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.rename", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37765,17 +27530,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.rmdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37801,17 +27555,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.rm", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37837,17 +27580,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.stat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -37878,14 +27610,6 @@ "tests/corpus/node24-fs-statfs-errors.cjs", "tests/fixtures/node-types/fs-statfs.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37916,14 +27640,6 @@ "tests/corpus/node24-fs-links-options.cjs", "tests/fixtures/node-types/fs-links.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37949,14 +27665,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -37982,17 +27690,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.unlink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38018,17 +27715,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.unwatchFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38058,14 +27744,6 @@ "tests/corpus/node24-fs-timestamps-symlinks.ts", "tests/corpus/node24-fs-timestamps-errors.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -38096,14 +27774,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:fs.watch", - "tests": [] } } }, @@ -38129,14 +27799,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:fs.watchFile", - "tests": [] } } }, @@ -38162,17 +27824,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38198,17 +27849,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38234,17 +27874,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38270,17 +27899,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.writeFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38306,17 +27924,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.writeFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38344,17 +27951,6 @@ "tests": [ "tests/corpus/3137-fs-vector-callbacks.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.writev", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38385,17 +27981,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.accessSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38426,17 +28011,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.appendFileSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38467,17 +28041,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.chmodSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38508,14 +28071,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -38546,17 +28101,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.closeSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38587,17 +28131,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.copyFileSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38623,14 +28156,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -38661,17 +28186,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.existsSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38699,17 +28213,6 @@ "tests": [ "tests/corpus/2950-fs-descriptor-publication.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.fchmodSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38735,14 +28238,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -38770,17 +28265,6 @@ "tests": [ "tests/corpus/3134-fs-vectors.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.fdatasyncSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38808,17 +28292,6 @@ "tests": [ "tests/corpus/2950-fs-descriptor-publication.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.fstatSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38846,17 +28319,6 @@ "tests": [ "tests/corpus/2950-fs-descriptor-publication.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.fsyncSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38884,17 +28346,6 @@ "tests": [ "tests/corpus/3134-fs-vectors.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.ftruncateSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -38923,14 +28374,6 @@ "tests/corpus/node24-fs-timestamps.ts", "tests/corpus/node24-fs-timestamps-errors.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -38956,14 +28399,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -38989,14 +28424,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -39022,14 +28449,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -39059,14 +28478,6 @@ "tests/corpus/node24-fs-timestamps-symlinks.ts", "tests/corpus/node24-fs-timestamps-errors.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -39097,14 +28508,6 @@ "tests/corpus/node24-fs-links-errors.cjs", "tests/fixtures/node-types/fs-links.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -39135,17 +28538,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.lstatSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39176,17 +28568,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.mkdirSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39217,17 +28598,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.mkdtempSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39253,14 +28623,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -39286,14 +28648,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -39324,17 +28678,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.openSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39365,17 +28708,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.readdirSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39407,17 +28739,6 @@ "tests/corpus/2920-fs-promises-function-values.ts", "tests/corpus/fs-read-encodings.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.readFileSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39448,17 +28769,6 @@ "tests/corpus/node24-fs-links-errors.cjs", "tests/fixtures/node-types/fs-links.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.readlinkSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39489,17 +28799,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.readSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39530,17 +28829,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.readSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39568,17 +28856,6 @@ "tests": [ "tests/corpus/3134-fs-vectors.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.readvSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39609,17 +28886,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.realpathSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39647,14 +28913,6 @@ "tests": [ "tests/corpus/fs-native-realpath.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -39685,17 +28943,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.renameSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39726,17 +28973,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.rmdirSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39767,17 +29003,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.rmSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39808,17 +29033,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.statSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39849,14 +29063,6 @@ "tests/corpus/node24-fs-statfs-errors.cjs", "tests/fixtures/node-types/fs-statfs.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -39887,14 +29093,6 @@ "tests/corpus/node24-fs-links-errors.cjs", "tests/fixtures/node-types/fs-links.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -39920,14 +29118,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -39958,17 +29148,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.unlinkSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -39998,14 +29177,6 @@ "tests/corpus/node24-fs-timestamps-errors.cjs", "tests/fixtures/node-types/fs-timestamps.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40036,17 +29207,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.writeFileSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40077,17 +29237,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.writeSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40118,17 +29267,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.writeSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40159,17 +29297,6 @@ "tests/corpus/2919-fs-function-values.ts", "tests/corpus/2920-fs-promises-function-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.writeSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40197,17 +29324,6 @@ "tests": [ "tests/corpus/3134-fs-vectors.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.writevSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40233,14 +29349,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40266,14 +29374,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40299,14 +29399,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40332,14 +29424,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40365,14 +29449,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40398,14 +29474,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40431,14 +29499,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40464,14 +29524,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40497,14 +29549,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40530,14 +29574,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40563,14 +29599,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40596,17 +29624,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.Dirent", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40632,17 +29649,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.dirent.isBlockDevice", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40668,17 +29674,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.dirent.isCharacterDevice", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40704,17 +29699,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.dirent.isDirectory", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40740,17 +29724,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.dirent.isFIFO", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40776,17 +29749,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.dirent.isFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40812,17 +29774,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.dirent.isSocket", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40848,17 +29799,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.dirent.isSymbolicLink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -40884,14 +29824,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40917,14 +29849,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40950,14 +29874,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -40983,14 +29899,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41016,14 +29924,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41049,14 +29949,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41082,14 +29974,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41115,14 +29999,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41148,14 +30024,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41181,14 +30049,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41214,14 +30074,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41247,14 +30099,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41280,14 +30124,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41313,14 +30149,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41346,14 +30174,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41379,14 +30199,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41412,14 +30224,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41445,14 +30249,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41478,14 +30274,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41511,17 +30299,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.Stats", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -41547,17 +30324,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.stats.isBlockDevice", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -41583,17 +30349,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.stats.isCharacterDevice", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -41619,17 +30374,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.stats.isDirectory", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -41655,17 +30399,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.stats.isFIFO", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -41691,17 +30424,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.stats.isFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -41727,17 +30449,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.stats.isSocket", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -41763,17 +30474,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:fs.stats.isSymbolicLink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -41801,14 +30501,6 @@ "tests": [ "tests/corpus/2941-fsp-lstat-identity.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41836,14 +30528,6 @@ "tests": [ "tests/corpus/2941-fsp-lstat-identity.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41869,14 +30553,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41902,14 +30578,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41935,14 +30603,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -41968,14 +30628,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42001,14 +30653,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42034,14 +30678,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42067,14 +30703,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42100,14 +30728,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42133,14 +30753,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42166,14 +30778,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42201,14 +30805,6 @@ "tests": [ "tests/corpus/2941-fsp-lstat-identity.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42234,14 +30830,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42267,14 +30855,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42300,14 +30880,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42333,14 +30905,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42366,14 +30930,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42399,14 +30955,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42432,14 +30980,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42465,14 +31005,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42498,14 +31030,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42535,189 +31059,6 @@ "tests/corpus/node24-fs-statfs-options.cjs", "tests/fixtures/node-types/fs-statfs.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] - } - } - }, - { - "id": "fs:eb5d75d27df4", - "chapter": "fs", - "label": "bavail", - "signature": "`bavail` Type: {number|bigint}", - "apiSymbol": "bavail", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/fs.html#class-fsstatfs", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] - } - } - }, - { - "id": "fs:bce506d811f8", - "chapter": "fs", - "label": "bfree", - "signature": "`bfree` Type: {number|bigint}", - "apiSymbol": "bfree", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/fs.html#class-fsstatfs", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] - } - } - }, - { - "id": "fs:fcd0f2b57d05", - "chapter": "fs", - "label": "blocks", - "signature": "`blocks` Type: {number|bigint}", - "apiSymbol": "blocks", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/fs.html#class-fsstatfs", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] - } - } - }, - { - "id": "fs:8f9cdecf8983", - "chapter": "fs", - "label": "bsize", - "signature": "`bsize` Type: {number|bigint}", - "apiSymbol": "bsize", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/fs.html#class-fsstatfs", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] - } - } - }, - { - "id": "fs:4d046e9b2b75", - "chapter": "fs", - "label": "ffree", - "signature": "`ffree` Type: {number|bigint}", - "apiSymbol": "ffree", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/fs.html#class-fsstatfs", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] - } - } - }, - { - "id": "fs:d056678eaa8f", - "chapter": "fs", - "label": "files", - "signature": "`files` Type: {number|bigint}", - "apiSymbol": "files", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/fs.html#class-fsstatfs", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] - } - } - }, - { - "id": "fs:50b1621ed254", - "chapter": "fs", - "label": "type", - "signature": "`type` Type: {number|bigint}", - "apiSymbol": "type", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/fs.html#class-fsstatfs", - "nodeStability": { - "index": "2", - "level": 2, - "text": "Stable", - "inherited": true - }, - "priority": "high", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42743,14 +31084,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42776,14 +31109,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42809,14 +31134,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42842,14 +31159,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42875,14 +31184,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42908,14 +31209,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42941,14 +31234,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -42974,14 +31259,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43007,14 +31284,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43040,14 +31309,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43073,14 +31334,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43106,14 +31359,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43139,14 +31384,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:fs.fsync", - "tests": [] } } }, @@ -43172,14 +31409,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43205,14 +31434,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43238,17 +31459,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.mkdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -43274,14 +31484,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43307,14 +31509,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43340,14 +31534,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43373,14 +31559,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43406,14 +31584,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43439,14 +31609,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43472,14 +31634,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43505,14 +31659,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43538,14 +31684,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43571,14 +31709,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43604,14 +31734,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43637,14 +31759,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43670,14 +31784,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43703,14 +31809,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43736,14 +31834,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43769,14 +31859,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43802,14 +31884,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43835,14 +31909,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43868,14 +31934,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:fs", - "tests": [] } } }, @@ -43901,17 +31959,6 @@ "confidence": "low", "source": "compiler-unmatched:fs", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:fs.constants", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] } } }, @@ -43937,16 +31984,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:AbortController", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -43972,14 +32009,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -44005,14 +32034,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -44038,16 +32059,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:AbortSignal", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44073,14 +32084,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -44106,14 +32109,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -44139,14 +32134,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -44172,14 +32159,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -44205,14 +32184,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -44238,16 +32209,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:Blob", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44273,16 +32234,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:BroadcastChannel", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44308,16 +32259,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-npm-global:Buffer", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44343,16 +32284,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:ByteLengthQueuingStrategy", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44378,16 +32309,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:CloseEvent", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44413,16 +32334,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:CompressionStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44448,16 +32359,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:CountQueuingStrategy", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44483,14 +32384,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -44516,16 +32409,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:CryptoKey", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44551,16 +32434,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:CustomEvent", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44586,16 +32459,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:DecompressionStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44621,16 +32484,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:DOMException", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44656,16 +32509,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:Event", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44691,16 +32534,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:EventSource", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44726,16 +32559,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:EventTarget", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44761,16 +32584,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:File", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44796,16 +32609,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:FormData", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44831,16 +32634,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:Headers", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44866,16 +32659,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:MessageChannel", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44901,16 +32684,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:MessageEvent", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44936,16 +32709,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:MessagePort", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -44971,16 +32734,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:Navigator", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45006,14 +32759,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -45039,14 +32784,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -45072,14 +32809,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -45105,14 +32834,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -45138,14 +32859,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -45171,14 +32884,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -45204,16 +32909,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:ReadableByteStreamController", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45239,16 +32934,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:ReadableStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45274,16 +32959,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:ReadableStreamBYOBReader", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45309,16 +32984,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:ReadableStreamBYOBRequest", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45344,16 +33009,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:ReadableStreamDefaultController", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45379,16 +33034,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:ReadableStreamDefaultReader", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45414,16 +33059,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:Request", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45449,16 +33084,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:Response", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45484,16 +33109,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:Storage", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45519,16 +33134,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:SubtleCrypto", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45558,16 +33163,6 @@ "tests/corpus/text-codec-values/main.ts", "tests/corpus/3133-text-decoder-streaming.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:TextDecoder", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45593,16 +33188,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:TextDecoderStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45632,16 +33217,6 @@ "tests/corpus/text-codec-values/main.ts", "tests/corpus/3133-text-decoder-streaming.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:TextEncoder", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45667,16 +33242,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:TextEncoderStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45702,16 +33267,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:TransformStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45737,16 +33292,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:TransformStreamDefaultController", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45772,16 +33317,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-npm-global:URL", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45807,16 +33342,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:URLPattern", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45842,16 +33367,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:URLSearchParams", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45877,16 +33392,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:WebAssembly", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45912,16 +33417,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "verified-absence", - "confidence": "high", - "source": "island-global-absent:WebSocket", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45947,16 +33442,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:WritableStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -45982,16 +33467,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:WritableStreamDefaultController", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46017,16 +33492,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:WritableStreamDefaultWriter", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46052,16 +33517,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:atob", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46087,16 +33542,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:btoa", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46127,16 +33572,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:clearImmediate", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46167,16 +33602,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:clearInterval", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46207,16 +33632,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:clearTimeout", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46242,16 +33657,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:queueMicrotask", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46277,14 +33682,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46315,16 +33712,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:setImmediate", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46355,16 +33742,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:setInterval", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46395,16 +33772,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:setTimeout", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46430,16 +33797,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-global:structuredClone", - "tests": [ - "tests/harness/web-globals.test.ts" - ] } } }, @@ -46465,14 +33822,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46498,14 +33847,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46531,14 +33872,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46564,14 +33897,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46597,14 +33922,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46632,14 +33949,6 @@ "tests": [ "tests/harness/fetch-conformance.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46665,14 +33974,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46698,14 +33999,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46731,14 +34024,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46764,14 +34049,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46797,14 +34074,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46830,14 +34099,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46863,14 +34124,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46896,14 +34149,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46929,14 +34174,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46962,14 +34199,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -46995,14 +34224,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -47028,14 +34249,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -47061,14 +34274,6 @@ "confidence": "low", "source": "compiler-unmatched:globals", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:globals", - "tests": [] } } }, @@ -47094,14 +34299,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47129,16 +34326,6 @@ "tests": [ "tests/corpus/2973-http-static-agent.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:http.Agent", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -47164,14 +34351,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47197,14 +34376,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47230,14 +34401,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47265,16 +34428,6 @@ "tests": [ "tests/corpus/2973-http-static-agent.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:http.agent.destroy", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -47302,14 +34455,6 @@ "tests": [ "tests/corpus/2973-http-static-agent.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47337,14 +34482,6 @@ "tests": [ "tests/corpus/2973-http-static-agent.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47372,14 +34509,6 @@ "tests": [ "tests/corpus/2973-http-static-agent.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47407,14 +34536,6 @@ "tests": [ "tests/corpus/2973-http-static-agent.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47440,14 +34561,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47475,14 +34588,6 @@ "tests": [ "tests/corpus/2973-http-static-agent.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47510,14 +34615,6 @@ "tests": [ "tests/corpus/2973-http-static-agent.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47546,16 +34643,6 @@ "tests/corpus/2981-http-static-events.ts", "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:http.ClientRequest", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -47583,16 +34670,6 @@ "tests": [ "tests/corpus/2988-http-static-client-abort.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:http.request.abort", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -47624,14 +34701,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47661,16 +34730,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:http.request.end", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -47700,16 +34759,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:http.request.destroy", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -47738,14 +34787,6 @@ "tests/corpus/2978-http-static-client-timeout.ts", "tests/corpus/2986-http-static-client-socket-finish.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47777,16 +34818,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:http.request.flushHeaders", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -47814,16 +34845,6 @@ "tests": [ "tests/corpus/2954-http-outgoing-headers.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:http.request.getHeader", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -47851,14 +34872,6 @@ "tests": [ "tests/corpus/2954-http-outgoing-headers.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47886,14 +34899,6 @@ "tests": [ "tests/corpus/2954-http-outgoing-headers.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47921,14 +34926,6 @@ "tests": [ "tests/corpus/2954-http-outgoing-headers.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47956,14 +34953,6 @@ "tests": [ "tests/corpus/2954-http-outgoing-headers.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -47991,16 +34980,6 @@ "tests": [ "tests/corpus/2954-http-outgoing-headers.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:http.request.removeHeader", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -48028,16 +35007,6 @@ "tests": [ "tests/corpus/2954-http-outgoing-headers.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:http.request.setHeader", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -48065,14 +35034,6 @@ "tests": [ "tests/corpus/2975-http-static-client-controls.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48101,14 +35062,6 @@ "tests/corpus/2978-http-static-client-timeout.ts", "tests/corpus/2987-http-static-timeout-errors.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48137,16 +35090,6 @@ "tests/corpus/2978-http-static-client-timeout.ts", "tests/corpus/2987-http-static-timeout-errors.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:http.request.setTimeout", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -48178,14 +35121,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48215,16 +35150,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:http.request.write", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -48252,14 +35177,6 @@ "tests": [ "tests/corpus/2988-http-static-client-abort.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48287,14 +35204,6 @@ "tests": [ "tests/corpus/2986-http-static-client-socket-finish.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48322,14 +35231,6 @@ "tests": [ "tests/corpus/2975-http-static-client-controls.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48355,14 +35256,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48390,14 +35283,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48425,14 +35310,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48460,14 +35337,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48495,14 +35364,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48530,14 +35391,6 @@ "tests": [ "tests/corpus/2975-http-static-client-controls.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48565,14 +35418,6 @@ "tests": [ "tests/corpus/2986-http-static-client-socket-finish.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48600,14 +35445,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48635,14 +35472,6 @@ "tests": [ "tests/corpus/2986-http-static-client-socket-finish.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48670,14 +35499,6 @@ "tests": [ "tests/corpus/2988-http-static-client-abort.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48705,14 +35526,6 @@ "tests": [ "tests/corpus/2981-http-static-events.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48738,14 +35551,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48771,14 +35576,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48806,14 +35603,6 @@ "tests": [ "tests/corpus/2986-http-static-client-socket-finish.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48839,14 +35628,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48874,14 +35655,6 @@ "tests": [ "tests/corpus/2981-http-static-events.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48909,14 +35682,6 @@ "tests": [ "tests/corpus/2986-http-static-client-socket-finish.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48945,14 +35710,6 @@ "tests/corpus/2978-http-static-client-timeout.ts", "tests/corpus/2987-http-static-timeout-errors.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -48980,14 +35737,6 @@ "tests": [ "tests/fixtures/server/cases/upgrade-both/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49016,14 +35765,6 @@ "tests/corpus/2981-http-static-events.ts", "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:http.Server", - "tests": [] } } }, @@ -49052,14 +35793,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49089,14 +35822,6 @@ "tests/corpus/2983-http-static-close-idle.ts", "tests/corpus/2984-http-static-close-upgrade.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49126,14 +35851,6 @@ "tests/corpus/2983-http-static-close-idle.ts", "tests/corpus/2984-http-static-close-upgrade.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49162,14 +35879,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49198,14 +35907,6 @@ "tests/corpus/2979-http-static-server-timeout.ts", "tests/corpus/2980-http-static-server-timeout-default.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49231,14 +35932,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49268,14 +35961,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49303,14 +35988,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49336,14 +36013,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49373,14 +36042,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49406,14 +36067,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49443,14 +36096,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49480,14 +36125,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49517,14 +36154,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49550,14 +36179,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49583,14 +36204,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49616,14 +36229,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49651,14 +36256,6 @@ "tests": [ "tests/corpus/2981-http-static-events.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49686,14 +36283,6 @@ "tests": [ "tests/fixtures/server/cases/http2-connect/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49721,14 +36310,6 @@ "tests": [ "tests/corpus/2981-http-static-events.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49754,14 +36335,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49789,14 +36362,6 @@ "tests": [ "tests/corpus/2981-http-static-events.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49824,14 +36389,6 @@ "tests": [ "tests/fixtures/server/cases/upgrade-both/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49860,14 +36417,6 @@ "tests/corpus/2981-http-static-events.ts", "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49899,14 +36448,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49938,14 +36479,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -49975,14 +36508,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50014,14 +36539,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50051,14 +36568,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50086,14 +36595,6 @@ "tests": [ "tests/corpus/2954-http-outgoing-headers.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50121,14 +36622,6 @@ "tests": [ "tests/corpus/2954-http-outgoing-headers.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50158,14 +36651,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50195,14 +36680,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50232,14 +36709,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50267,14 +36736,6 @@ "tests": [ "tests/corpus/2957-http-static-response-controls.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50306,14 +36767,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50343,14 +36796,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50378,14 +36823,6 @@ "tests": [ "tests/corpus/2956-http-static-informational.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50413,14 +36850,6 @@ "tests": [ "tests/corpus/2956-http-static-informational.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50450,14 +36879,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50485,14 +36906,6 @@ "tests": [ "tests/corpus/2956-http-static-informational.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50520,14 +36933,6 @@ "tests": [ "tests/corpus/2957-http-static-response-controls.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50555,14 +36960,6 @@ "tests": [ "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50590,14 +36987,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50625,14 +37014,6 @@ "tests": [ "tests/corpus/2957-http-static-response-controls.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50660,14 +37041,6 @@ "tests": [ "tests/corpus/2957-http-static-response-controls.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50695,14 +37068,6 @@ "tests": [ "tests/corpus/2957-http-static-response-controls.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50730,14 +37095,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50765,14 +37122,6 @@ "tests": [ "tests/corpus/2957-http-static-response-controls.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50800,14 +37149,6 @@ "tests": [ "tests/corpus/2957-http-static-response-controls.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50835,14 +37176,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50870,14 +37203,6 @@ "tests": [ "tests/corpus/2957-http-static-response-controls.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50905,14 +37230,6 @@ "tests": [ "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50940,14 +37257,6 @@ "tests": [ "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -50976,16 +37285,6 @@ "tests/corpus/2981-http-static-events.ts", "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:http.IncomingMessage", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -51013,16 +37312,6 @@ "tests": [ "tests/corpus/2985-http-static-message-destroy.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:http.message.destroy", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -51052,14 +37341,6 @@ "tests/corpus/2977-http-static-incoming-timeout.ts", "tests/corpus/2987-http-static-timeout-errors.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51087,14 +37368,6 @@ "tests": [ "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51122,14 +37395,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51157,14 +37422,6 @@ "tests": [ "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51192,14 +37449,6 @@ "tests": [ "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51231,14 +37480,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51266,14 +37507,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51301,14 +37534,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51336,14 +37561,6 @@ "tests": [ "tests/corpus/2972-http-static-distinct-snapshots.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51375,14 +37592,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51410,14 +37619,6 @@ "tests": [ "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51445,14 +37646,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51480,14 +37673,6 @@ "tests": [ "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51519,14 +37704,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51558,14 +37735,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51593,14 +37762,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51628,14 +37789,6 @@ "tests": [ "tests/corpus/2985-http-static-message-destroy.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51663,14 +37816,6 @@ "tests": [ "tests/corpus/2976-http-static-incoming-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51696,14 +37841,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51735,14 +37872,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51768,14 +37897,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51807,14 +37928,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51840,14 +37953,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51873,14 +37978,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51912,14 +38009,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51945,14 +38034,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -51978,14 +38059,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52011,14 +38084,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52044,14 +38109,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52077,14 +38134,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52110,14 +38159,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52143,14 +38184,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52176,14 +38209,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52209,14 +38234,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52248,14 +38265,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52281,14 +38290,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52314,14 +38315,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52349,14 +38342,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52382,14 +38367,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52421,14 +38398,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts", "tests/fixtures/server/cases/http-trailers/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52456,14 +38425,6 @@ "tests": [ "tests/corpus/2955-http-static-state.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52489,14 +38450,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52522,14 +38475,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52555,14 +38500,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52588,14 +38525,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52621,14 +38550,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52654,14 +38575,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52687,14 +38600,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52720,14 +38625,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52757,14 +38654,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:http.createServer", - "tests": [] } } }, @@ -52794,16 +38683,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:http.get", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -52833,16 +38712,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:http.get", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -52872,16 +38741,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:http.request", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -52911,16 +38770,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:http.request", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -52948,14 +38797,6 @@ "tests": [ "tests/corpus/2953-http-header-validation.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -52983,14 +38824,6 @@ "tests": [ "tests/corpus/2953-http-header-validation.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -53016,14 +38849,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -53049,14 +38874,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -53084,16 +38901,6 @@ "tests": [ "tests/corpus/2974-http-static-module-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:http.METHODS", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -53121,16 +38928,6 @@ "tests": [ "tests/corpus/2974-http-static-module-values.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:http.STATUS_CODES", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -53156,16 +38953,6 @@ "confidence": "low", "source": "compiler-unmatched:http", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:http.globalAgent", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -53193,14 +38980,6 @@ "tests": [ "tests/corpus/2974-http-static-module-values.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:http", - "tests": [] } } }, @@ -53226,14 +39005,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53259,14 +39030,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53292,14 +39055,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53325,14 +39080,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53358,14 +39105,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53391,14 +39130,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53424,14 +39155,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53457,14 +39180,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53490,14 +39205,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53523,14 +39230,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53556,14 +39255,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53589,14 +39280,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53622,14 +39305,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53655,14 +39330,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53688,14 +39355,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53721,14 +39380,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53754,14 +39405,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53787,14 +39430,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53820,14 +39455,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53853,14 +39480,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53886,14 +39505,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53919,14 +39530,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53952,14 +39555,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -53985,14 +39580,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54018,14 +39605,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54051,14 +39630,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54084,14 +39655,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54117,14 +39680,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54150,14 +39705,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54183,14 +39730,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54216,14 +39755,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54249,14 +39780,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54282,14 +39805,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54315,14 +39830,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54348,14 +39855,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54381,14 +39880,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54414,14 +39905,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54447,14 +39930,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54480,14 +39955,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54513,14 +39980,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54546,14 +40005,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54579,14 +40030,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54612,14 +40055,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54645,14 +40080,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54678,14 +40105,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54711,14 +40130,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54744,14 +40155,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54777,14 +40180,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54810,14 +40205,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54843,14 +40230,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54876,14 +40255,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54909,14 +40280,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54942,14 +40305,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -54975,14 +40330,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55008,14 +40355,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55041,14 +40380,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55074,14 +40405,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55107,14 +40430,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55140,14 +40455,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55173,14 +40480,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55206,14 +40505,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55239,14 +40530,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55272,14 +40555,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55305,14 +40580,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55338,14 +40605,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55371,14 +40630,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55404,14 +40655,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55437,14 +40680,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55470,14 +40705,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55503,14 +40730,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55536,14 +40755,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55569,14 +40780,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55602,14 +40805,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55635,14 +40830,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55668,14 +40855,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55701,14 +40880,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55734,14 +40905,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55767,14 +40930,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55800,14 +40955,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55833,14 +40980,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55866,14 +41005,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55899,14 +41030,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55932,14 +41055,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -55968,14 +41083,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56001,14 +41108,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56034,14 +41133,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56067,14 +41158,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56104,14 +41187,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56137,14 +41212,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56170,14 +41237,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56203,14 +41262,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56236,14 +41287,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56269,14 +41312,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56302,14 +41337,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56335,14 +41362,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56368,14 +41387,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56404,14 +41415,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56437,14 +41440,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56470,14 +41465,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56507,14 +41494,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56540,14 +41519,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56573,14 +41544,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56606,14 +41569,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56639,14 +41594,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56672,14 +41619,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56705,14 +41644,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56738,14 +41669,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56771,14 +41694,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56804,14 +41719,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.http2.createServer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56837,14 +41744,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56870,14 +41769,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.http2.connect", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56903,14 +41794,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56936,14 +41819,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -56969,14 +41844,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57002,14 +41869,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57035,14 +41894,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57068,14 +41919,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57101,14 +41944,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57134,14 +41969,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57171,14 +41998,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57208,14 +42027,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57241,14 +42052,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57274,14 +42077,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57307,14 +42102,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57340,14 +42127,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57373,14 +42152,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57406,14 +42177,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57439,14 +42202,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57472,14 +42227,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57505,14 +42252,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57538,14 +42277,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57571,14 +42302,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57604,14 +42327,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57637,14 +42352,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57670,14 +42377,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57703,14 +42402,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57736,14 +42427,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57769,14 +42452,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57802,14 +42477,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57835,14 +42502,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57868,14 +42527,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57905,14 +42556,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57942,14 +42585,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -57975,14 +42610,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58008,14 +42635,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58045,14 +42664,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58082,14 +42693,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58119,14 +42722,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58152,14 +42747,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58189,14 +42776,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58222,14 +42801,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58255,14 +42826,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58292,14 +42855,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58325,14 +42880,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58358,14 +42905,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58391,14 +42930,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58424,14 +42955,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58457,14 +42980,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58490,14 +43005,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58523,14 +43030,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58556,14 +43055,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58589,14 +43080,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58622,14 +43105,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58655,14 +43130,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58688,14 +43155,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58721,14 +43180,6 @@ "confidence": "low", "source": "compiler-unmatched:http2", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:http2", - "tests": [] } } }, @@ -58754,16 +43205,6 @@ "confidence": "low", "source": "compiler-unmatched:https", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:https.Agent", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -58789,14 +43230,6 @@ "confidence": "low", "source": "compiler-unmatched:https", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:https.Server", - "tests": [] } } }, @@ -58825,14 +43258,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:https", - "tests": [] } } }, @@ -58858,14 +43283,6 @@ "confidence": "low", "source": "compiler-unmatched:https", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:https", - "tests": [] } } }, @@ -58891,14 +43308,6 @@ "confidence": "low", "source": "compiler-unmatched:https", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:https", - "tests": [] } } }, @@ -58924,14 +43333,6 @@ "confidence": "low", "source": "compiler-unmatched:https", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:https", - "tests": [] } } }, @@ -58960,14 +43361,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:https", - "tests": [] } } }, @@ -58993,14 +43386,6 @@ "confidence": "low", "source": "compiler-unmatched:https", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:https", - "tests": [] } } }, @@ -59030,14 +43415,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:https", - "tests": [] } } }, @@ -59063,14 +43440,6 @@ "confidence": "low", "source": "compiler-unmatched:https", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:https", - "tests": [] } } }, @@ -59100,14 +43469,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:https", - "tests": [] } } }, @@ -59137,14 +43498,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:https", - "tests": [] } } }, @@ -59174,14 +43527,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:https", - "tests": [] } } }, @@ -59211,14 +43556,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:https.createServer", - "tests": [] } } }, @@ -59248,16 +43585,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:https.get", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -59287,16 +43614,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:https.get", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -59326,16 +43643,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:https.request", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -59365,16 +43672,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:https.request", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -59400,16 +43697,6 @@ "confidence": "low", "source": "compiler-unmatched:https", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:https.globalAgent", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -59435,14 +43722,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59468,14 +43747,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59501,14 +43772,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59534,14 +43797,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59567,14 +43822,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59600,14 +43847,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59633,14 +43872,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59666,14 +43897,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59699,14 +43922,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59732,14 +43947,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59765,14 +43972,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59798,14 +43997,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59831,14 +44022,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59864,14 +44047,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59897,14 +44072,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59930,14 +44097,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59963,14 +44122,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -59996,14 +44147,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60029,14 +44172,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60062,14 +44197,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60095,14 +44222,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60128,14 +44247,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60161,14 +44272,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60194,14 +44297,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60227,14 +44322,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60260,14 +44347,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60293,14 +44372,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60326,14 +44397,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60359,14 +44422,6 @@ "confidence": "low", "source": "compiler-unmatched:inspector", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:inspector,node:inspector/promises", - "tests": [] } } }, @@ -60399,18 +44454,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs", "tests/corpus/2923-cjs-factory-export/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.require", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -60443,18 +44486,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs", "tests/corpus/2923-cjs-factory-export/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.__dirname", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -60487,18 +44518,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs", "tests/corpus/2923-cjs-factory-export/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.__filename", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -60531,18 +44550,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs", "tests/corpus/2923-cjs-factory-export/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.exports", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -60568,18 +44575,6 @@ "confidence": "low", "source": null, "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.module", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -60612,18 +44607,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs", "tests/corpus/2923-cjs-factory-export/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.require", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -60652,16 +44635,6 @@ "tests/corpus/2858-import-meta-resolve/main.mjs", "tests/corpus/2860-require-resolve/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.require.resolve", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts" - ] } } }, @@ -60690,16 +44663,6 @@ "tests/corpus/2858-import-meta-resolve/main.mjs", "tests/corpus/2860-require-resolve/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.require.resolve.paths", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts" - ] } } }, @@ -60727,18 +44690,6 @@ "tests": [ "tests/corpus/2880-cjs-module-graph/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.cache", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -60764,14 +44715,6 @@ "confidence": "medium", "source": "compiler-feature:modules.extensions", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:modules.extensions", - "tests": [] } } }, @@ -60804,14 +44747,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs", "tests/corpus/2923-cjs-factory-export/main.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:modules.main", - "tests": [] } } }, @@ -60837,18 +44772,6 @@ "confidence": "low", "source": null, "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.module", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -60881,16 +44804,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs", "tests/corpus/2923-cjs-factory-export/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.module.require", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -60918,16 +44831,6 @@ "tests": [ "tests/corpus/2880-cjs-module-graph/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.children", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -60960,18 +44863,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs", "tests/corpus/2923-cjs-factory-export/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.exports", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -61004,18 +44895,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs", "tests/corpus/2923-cjs-factory-export/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.exports", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -61048,16 +44927,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs", "tests/corpus/2923-cjs-factory-export/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.filename", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -61085,16 +44954,6 @@ "tests": [ "tests/corpus/2880-cjs-module-graph/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.id", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -61122,16 +44981,6 @@ "tests": [ "tests/corpus/2880-cjs-module-graph/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.isPreloading", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -61159,16 +45008,6 @@ "tests": [ "tests/corpus/2880-cjs-module-graph/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.loaded", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -61196,16 +45035,6 @@ "tests": [ "tests/corpus/2880-cjs-module-graph/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.parent", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -61233,16 +45062,6 @@ "tests": [ "tests/corpus/2880-cjs-module-graph/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.path", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -61270,16 +45089,6 @@ "tests": [ "tests/corpus/2880-cjs-module-graph/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.paths", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] } } }, @@ -61307,14 +45116,6 @@ "tests": [ "tests/corpus/2880-cjs-module-graph/main.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:modules.Module", - "tests": [] } } }, @@ -61343,17 +45144,6 @@ "tests/corpus/1598-cjs-builtin-require/main.js", "tests/corpus/1596-cjs-modules/main.js" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.node:", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/create-require/main.ts" - ] } } }, @@ -61382,17 +45172,6 @@ "tests/corpus/1598-cjs-builtin-require/main.js", "tests/corpus/1596-cjs-modules/main.js" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:modules.node_modules", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/create-require/main.ts" - ] } } }, @@ -61422,16 +45201,6 @@ "tests/corpus/node24-esm-metadata/main.mjs", "tests/fixtures/node-types/esm-metadata.mts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.meta", - "tests": [ - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] } } }, @@ -61459,17 +45228,6 @@ "tests": [ "tests/corpus/2858-import-meta-resolve/main.mjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.import.meta.resolve", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] } } }, @@ -61499,16 +45257,6 @@ "tests/corpus/node24-esm-metadata/main.mjs", "tests/fixtures/node-types/esm-metadata.mts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.dirname", - "tests": [ - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] } } }, @@ -61538,16 +45286,6 @@ "tests/corpus/node24-esm-metadata/main.mjs", "tests/fixtures/node-types/esm-metadata.mts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.filename", - "tests": [ - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] } } }, @@ -61577,16 +45315,6 @@ "tests/corpus/node24-esm-metadata/main.mjs", "tests/fixtures/node-types/esm-metadata.mts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.url", - "tests": [ - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] } } }, @@ -61616,16 +45344,6 @@ "tests/corpus/node24-esm-metadata/main.mjs", "tests/fixtures/node-types/esm-metadata.mts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.main", - "tests": [ - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] } } }, @@ -61657,17 +45375,6 @@ "tests/corpus/2934-static-import-stored.ts", "tests/corpus/2935-module-namespace-values/main.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.import", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] } } }, @@ -61699,17 +45406,6 @@ "tests/corpus/2934-static-import-stored.ts", "tests/corpus/2935-module-namespace-values/main.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.file:", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] } } }, @@ -61735,14 +45431,6 @@ "confidence": "medium", "source": "compiler-feature:esm.data:", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:esm.data:", - "tests": [] } } }, @@ -61774,17 +45462,6 @@ "tests/corpus/2934-static-import-stored.ts", "tests/corpus/2935-module-namespace-values/main.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.node:", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] } } }, @@ -61816,17 +45493,6 @@ "tests/corpus/2934-static-import-stored.ts", "tests/corpus/2935-module-namespace-values/main.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.import", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] } } }, @@ -61858,17 +45524,6 @@ "tests/corpus/2934-static-import-stored.ts", "tests/corpus/2935-module-namespace-values/main.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.import", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] } } }, @@ -61894,14 +45549,6 @@ "confidence": "medium", "source": "compiler-feature:esm.require", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:esm.require", - "tests": [] } } }, @@ -61927,14 +45574,6 @@ "confidence": "medium", "source": "compiler-feature:esm.require", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:esm.require", - "tests": [] } } }, @@ -61960,14 +45599,6 @@ "confidence": "medium", "source": "compiler-feature:esm.__filename", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:esm.__filename", - "tests": [] } } }, @@ -61993,14 +45624,6 @@ "confidence": "medium", "source": "compiler-feature:esm.require.main", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:esm.require.main", - "tests": [] } } }, @@ -62026,14 +45649,6 @@ "confidence": "medium", "source": "compiler-feature:esm.require.resolve", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:esm.require.resolve", - "tests": [] } } }, @@ -62059,14 +45674,6 @@ "confidence": "medium", "source": "compiler-feature:esm.NODE_PATH", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:esm.NODE_PATH", - "tests": [] } } }, @@ -62092,14 +45699,6 @@ "confidence": "medium", "source": "compiler-feature:esm.require.extensions", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:esm.require.extensions", - "tests": [] } } }, @@ -62125,14 +45724,6 @@ "confidence": "medium", "source": "compiler-feature:esm.require.cache", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:esm.require.cache", - "tests": [] } } }, @@ -62164,17 +45755,6 @@ "tests/corpus/2934-static-import-stored.ts", "tests/corpus/2935-module-namespace-values/main.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:esm.await", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] } } }, @@ -62195,14 +45775,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62229,17 +45801,6 @@ "tests/corpus/2932-create-require-program/main.ts", "tests/harness/npm-static.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:module.createRequire", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -62265,14 +45826,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62295,17 +45848,6 @@ "tests": [ "tests/corpus/2932-create-require-program/main.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:module.isBuiltin", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -62331,14 +45873,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:module.register", - "tests": [] } } }, @@ -62364,14 +45898,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62397,14 +45923,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62427,17 +45945,6 @@ "tests": [ "tests/corpus/2932-create-require-program/main.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:module.syncBuiltinESMExports", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -62462,17 +45969,6 @@ "tests/corpus/2637-create-require-bare/main.ts", "tests/corpus/2932-create-require-program/main.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:module.builtinModules", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -62493,14 +45989,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62521,14 +46009,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62549,14 +46029,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62577,14 +46049,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62610,14 +46074,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62643,14 +46099,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62676,14 +46124,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62709,14 +46149,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62742,14 +46174,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62775,17 +46199,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:module.findSourceMap", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -62811,14 +46224,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62844,14 +46249,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62877,14 +46274,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62910,14 +46299,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62943,14 +46324,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -62976,14 +46349,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -63009,14 +46374,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:module.register", - "tests": [] } } }, @@ -63042,14 +46399,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -63075,14 +46424,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -63108,14 +46449,6 @@ "confidence": "low", "source": "compiler-unmatched:module", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:module", - "tests": [] } } }, @@ -63142,19 +46475,6 @@ "tests/corpus/2390-dot-requires/main.cjs", "tests/corpus/2830-cjs-require-self-name/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:packages.package.json", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] } } }, @@ -63181,19 +46501,6 @@ "tests/corpus/2390-dot-requires/main.cjs", "tests/corpus/2830-cjs-require-self-name/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:packages.package.json", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] } } }, @@ -63220,19 +46527,6 @@ "tests/corpus/2390-dot-requires/main.cjs", "tests/corpus/2830-cjs-require-self-name/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:packages.\"name\"", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] } } }, @@ -63259,19 +46553,6 @@ "tests/corpus/2390-dot-requires/main.cjs", "tests/corpus/2830-cjs-require-self-name/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:packages.\"main\"", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] } } }, @@ -63298,19 +46579,6 @@ "tests/corpus/2390-dot-requires/main.cjs", "tests/corpus/2830-cjs-require-self-name/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:packages.\"type\"", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] } } }, @@ -63337,19 +46605,6 @@ "tests/corpus/2390-dot-requires/main.cjs", "tests/corpus/2830-cjs-require-self-name/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:packages.\"exports\"", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] } } }, @@ -63376,19 +46631,6 @@ "tests/corpus/2390-dot-requires/main.cjs", "tests/corpus/2830-cjs-require-self-name/main.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:packages.\"imports\"", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] } } }, @@ -63409,14 +46651,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63437,14 +46671,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63465,14 +46691,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63493,14 +46711,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63521,14 +46731,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63549,14 +46751,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63582,14 +46776,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63615,14 +46801,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63643,14 +46821,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63671,14 +46841,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63699,14 +46861,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63727,14 +46881,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63755,14 +46901,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63783,14 +46921,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63811,14 +46941,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63839,14 +46961,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:net.Server", - "tests": [] } } }, @@ -63870,14 +46984,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63901,14 +47007,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63929,14 +47027,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63957,14 +47047,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -63988,14 +47070,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64019,14 +47093,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64050,14 +47116,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64081,14 +47139,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64112,14 +47162,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64140,14 +47182,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64168,14 +47202,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64196,14 +47222,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64224,14 +47242,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64252,14 +47262,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64280,14 +47282,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64308,14 +47302,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64336,14 +47322,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64364,14 +47342,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64392,14 +47362,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64420,14 +47382,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:net.Socket", - "tests": [] } } }, @@ -64450,14 +47404,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64480,14 +47426,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64510,14 +47448,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64540,14 +47470,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64570,14 +47492,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64601,14 +47515,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64629,14 +47535,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64660,14 +47558,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64691,14 +47581,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64721,14 +47603,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64749,14 +47623,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64780,14 +47646,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64811,14 +47669,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64839,14 +47689,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64867,14 +47709,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64898,14 +47732,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64926,14 +47752,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64954,14 +47772,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -64984,14 +47794,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65015,14 +47817,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65043,14 +47837,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65076,14 +47862,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65104,14 +47882,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65132,14 +47902,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65160,14 +47922,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65188,14 +47942,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65216,14 +47962,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65244,14 +47982,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65272,14 +48002,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65300,14 +48022,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65328,14 +48042,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65356,14 +48062,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65384,14 +48082,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65416,14 +48106,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65444,14 +48126,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65472,14 +48146,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65500,14 +48166,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65528,14 +48186,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65556,14 +48206,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65584,14 +48226,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65612,14 +48246,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65640,14 +48266,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65668,14 +48286,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65696,14 +48306,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65724,14 +48326,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65752,14 +48346,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65780,14 +48366,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -65811,14 +48389,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:net.connect", - "tests": [] } } }, @@ -65842,14 +48412,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:net.connect", - "tests": [] } } }, @@ -65873,14 +48435,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:net.connect", - "tests": [] } } }, @@ -65904,14 +48458,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:net.connect", - "tests": [] } } }, @@ -65935,14 +48481,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:net.createConnection", - "tests": [] } } }, @@ -65966,14 +48504,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:net.createConnection", - "tests": [] } } }, @@ -65997,14 +48527,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:net.createConnection", - "tests": [] } } }, @@ -66028,14 +48550,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:net.createConnection", - "tests": [] } } }, @@ -66059,14 +48573,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:net.createServer", - "tests": [] } } }, @@ -66087,14 +48593,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -66115,14 +48613,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -66146,14 +48636,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -66177,14 +48659,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:net", - "tests": [] } } }, @@ -66205,16 +48679,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:net.isIP", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -66235,16 +48699,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:net.isIPv4", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -66265,16 +48719,6 @@ "confidence": "low", "source": "compiler-unmatched:net", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:net.isIPv6", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -66302,16 +48746,6 @@ "tests": [ "tests/corpus/4598-os-available-parallelism.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.availableParallelism", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66337,16 +48771,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.arch", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66372,16 +48796,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.cpus", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66407,16 +48821,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.endianness", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66442,16 +48846,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.freemem", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66477,14 +48871,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:os", - "tests": [] } } }, @@ -66513,16 +48899,6 @@ "tests/corpus/1480-os-network-interfaces.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.homedir", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66548,16 +48924,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.hostname", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66583,16 +48949,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.loadavg", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66618,16 +48974,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.machine", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66656,16 +49002,6 @@ "tests/corpus/1480-os-network-interfaces.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.networkInterfaces", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66694,16 +49030,6 @@ "tests/corpus/1480-os-network-interfaces.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.platform", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66732,16 +49058,6 @@ "tests/corpus/1480-os-network-interfaces.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.release", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66767,14 +49083,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:os", - "tests": [] } } }, @@ -66803,16 +49111,6 @@ "tests/corpus/1480-os-network-interfaces.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.tmpdir", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66841,16 +49139,6 @@ "tests/corpus/1480-os-network-interfaces.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.totalmem", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66879,16 +49167,6 @@ "tests/corpus/1480-os-network-interfaces.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.type", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66914,16 +49192,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.uptime", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66952,16 +49220,6 @@ "tests/corpus/1480-os-network-interfaces.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.userInfo", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -66987,16 +49245,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.version", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -67025,16 +49273,6 @@ "tests/corpus/1480-os-network-interfaces.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.EOL", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -67060,16 +49298,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:os.constants", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] } } }, @@ -67095,14 +49323,6 @@ "confidence": "low", "source": "compiler-unmatched:os", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:os", - "tests": [] } } }, @@ -67134,16 +49354,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.basename", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67175,16 +49385,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.dirname", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67216,16 +49416,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.extname", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67251,16 +49441,6 @@ "confidence": "low", "source": "compiler-unmatched:path", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.format", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67286,14 +49466,6 @@ "confidence": "low", "source": "compiler-unmatched:path", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:path", - "tests": [] } } }, @@ -67325,16 +49497,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.isAbsolute", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67366,16 +49528,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.join", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67407,16 +49559,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.normalize", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67442,16 +49584,6 @@ "confidence": "low", "source": "compiler-unmatched:path", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.parse", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67483,16 +49615,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.relative", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67524,16 +49646,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.resolve", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67565,16 +49677,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.toNamespacedPath", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67606,16 +49708,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.delimiter", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67647,16 +49739,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.posix", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67688,16 +49770,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.sep", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67729,16 +49801,6 @@ "tests/corpus/2917-builtin-callable-widths.ts", "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:path.win32", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -67764,14 +49826,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -67797,14 +49851,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -67830,14 +49876,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -67863,14 +49901,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -67896,14 +49926,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -67929,14 +49951,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -67962,14 +49976,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -67995,14 +50001,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68028,14 +50026,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68061,14 +50051,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68094,14 +50076,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68127,14 +50101,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68160,14 +50126,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68193,14 +50151,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68226,14 +50176,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68259,14 +50201,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68292,14 +50226,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68325,14 +50251,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68358,14 +50276,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68391,14 +50301,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68424,14 +50326,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68457,14 +50351,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68490,14 +50376,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68523,14 +50401,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68556,14 +50426,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68589,14 +50451,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68622,14 +50476,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68655,14 +50501,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68688,14 +50526,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68721,14 +50551,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68754,14 +50576,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68787,14 +50601,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68820,14 +50626,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68853,14 +50651,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68886,14 +50676,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68919,14 +50701,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68952,14 +50726,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -68985,14 +50751,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69018,16 +50776,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:perf_hooks.PerformanceObserver", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -69053,16 +50801,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performanceObserver.disconnect", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -69088,16 +50826,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performanceObserver.observe", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -69123,16 +50851,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performanceObserver.takeRecords", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -69158,14 +50876,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69191,14 +50901,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69224,14 +50926,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69257,14 +50951,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69290,14 +50976,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69323,14 +51001,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69356,14 +51026,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69389,14 +51051,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69422,14 +51076,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69455,14 +51101,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69488,14 +51126,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69521,14 +51151,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69554,14 +51176,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69587,14 +51201,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69620,14 +51226,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69653,14 +51251,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69686,14 +51276,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69719,14 +51301,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69752,14 +51326,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69785,14 +51351,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69818,14 +51376,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69851,14 +51401,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69884,14 +51426,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69917,14 +51451,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69950,14 +51476,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -69983,14 +51501,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70016,14 +51526,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70052,14 +51554,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70085,14 +51579,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70118,14 +51604,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70151,14 +51629,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70184,14 +51654,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70217,14 +51679,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70250,16 +51704,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:perf_hooks.monitorEventLoopDelay", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -70285,14 +51729,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70318,16 +51754,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:perf_hooks.performance", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -70353,16 +51779,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performance.clearMarks", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -70388,16 +51804,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performance.clearMeasures", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -70423,14 +51829,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70456,14 +51854,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70489,16 +51879,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performance.getEntries", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -70524,16 +51904,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performance.getEntriesByName", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -70559,16 +51929,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performance.getEntriesByType", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -70594,16 +51954,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performance.mark", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -70629,14 +51979,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70662,16 +52004,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performance.measure", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -70697,16 +52029,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performance.now", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -70732,14 +52054,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70765,14 +52079,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70798,16 +52104,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:perf_hooks.performance.toJSON", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -70833,14 +52129,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70866,14 +52154,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70899,14 +52179,6 @@ "confidence": "low", "source": "compiler-unmatched:perf_hooks", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:perf_hooks", - "tests": [] } } }, @@ -70932,14 +52204,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:permissions", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:permissions", - "tests": [] } } }, @@ -70965,14 +52229,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:permissions", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:permissions", - "tests": [] } } }, @@ -70993,14 +52249,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71023,14 +52271,6 @@ "tests": [ "tests/corpus/2946-child-fork-ipc/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71051,14 +52291,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71081,14 +52313,6 @@ "tests": [ "tests/corpus/2946-child-fork-ipc/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71114,14 +52338,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71142,14 +52358,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71170,14 +52378,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71205,14 +52405,6 @@ "tests/corpus/process-uncaught-monitor.cjs", "tests/corpus/process-uncaught-handler-throws.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71233,14 +52425,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71268,14 +52452,6 @@ "tests/corpus/process-uncaught-monitor.cjs", "tests/corpus/process-uncaught-handler-throws.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71296,14 +52472,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71324,14 +52492,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71352,14 +52512,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71383,14 +52535,6 @@ "tests/corpus/1443-signal-handlers.ts", "tests/corpus/process-named-signals.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71411,14 +52555,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71442,14 +52578,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71473,16 +52601,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:process.process.chdir", - "tests": [ - "tests/fixtures/npm/cases/node24-env/main.ts" - ] } } }, @@ -71506,14 +52624,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71537,14 +52647,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71568,16 +52670,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.cwd", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -71600,14 +52692,6 @@ "tests": [ "tests/corpus/2946-child-fork-ipc/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71628,14 +52712,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71656,16 +52732,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.emitWarning", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -71686,16 +52752,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.emitWarning", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -71721,14 +52777,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71752,16 +52800,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.exit", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -71787,14 +52825,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71820,14 +52850,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71853,14 +52875,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71881,14 +52895,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71912,14 +52918,6 @@ "tests/corpus/process-builtin-values.js", "packages/compiler/test/process-builtin-values.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71940,14 +52938,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71968,14 +52958,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -71999,14 +52981,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72027,14 +53001,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72058,14 +53024,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72086,14 +53044,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72121,16 +53071,6 @@ "tests": [ "tests/corpus/process-hrtime.js" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.hrtime", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -72153,14 +53093,6 @@ "tests": [ "tests/corpus/process-hrtime.js" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72181,14 +53113,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72212,14 +53136,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72246,16 +53162,6 @@ "tests/fixtures/node-types/env-files.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:process.process.loadEnvFile", - "tests": [ - "tests/fixtures/npm/cases/node24-env/main.ts" - ] } } }, @@ -72276,16 +53182,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.memoryUsage", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -72306,14 +53202,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72339,16 +53227,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.nextTick", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -72374,14 +53252,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72407,14 +53277,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72438,14 +53300,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72468,14 +53322,6 @@ "tests": [ "tests/corpus/2946-child-fork-ipc/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72496,14 +53342,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72524,14 +53362,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72552,14 +53382,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72580,14 +53402,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72608,14 +53422,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72641,14 +53447,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72669,14 +53467,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72700,14 +53490,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72736,16 +53518,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.umask", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -72769,16 +53541,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.umask", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -72804,14 +53566,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72835,16 +53589,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.uptime", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -72865,16 +53609,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.allowedNodeEnvironmentFlags", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -72895,14 +53629,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -72926,16 +53652,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.argv", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -72956,16 +53672,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.argv0", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -72986,14 +53692,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73014,14 +53712,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73042,14 +53732,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73070,16 +53752,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.config", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -73102,14 +53774,6 @@ "tests": [ "tests/corpus/2946-child-fork-ipc/main.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73130,14 +53794,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73161,16 +53817,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.env", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -73191,16 +53837,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.execArgv", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -73224,16 +53860,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.execPath", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -73259,16 +53885,6 @@ "tests/corpus/2943-process-exit-code-invalid.ts", "tests/corpus/2944-process-exit-code-wrap.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.exitCode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -73289,14 +53905,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73317,14 +53925,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73345,14 +53945,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73378,14 +53970,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73406,14 +53990,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73434,14 +54010,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73467,14 +54035,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73500,14 +54060,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73533,14 +54085,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73566,14 +54110,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73599,14 +54135,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73632,14 +54160,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73660,14 +54180,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73688,14 +54200,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73716,14 +54220,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73747,16 +54243,6 @@ "tests/corpus/990-process-basics.ts", "tests/corpus/2314-process-introspection.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.pid", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -73777,16 +54263,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.platform", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -73807,16 +54283,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.ppid", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -73837,16 +54303,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.release", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -73867,14 +54323,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73895,14 +54343,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73923,14 +54363,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73951,14 +54383,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -73979,14 +54403,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74007,14 +54423,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74035,14 +54443,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74063,14 +54463,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74091,14 +54483,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74119,14 +54503,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74147,14 +54523,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74180,14 +54548,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74213,16 +54573,6 @@ "tests/corpus/stdio-write-errors.mjs", "tests/harness/event-loop.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.stderr", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74243,14 +54593,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74276,16 +54618,6 @@ "tests/corpus/stdio-write-errors.mjs", "tests/harness/event-loop.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.stdin", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74306,14 +54638,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74339,16 +54663,6 @@ "tests/corpus/stdio-write-errors.mjs", "tests/harness/event-loop.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.stdout", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74369,14 +54683,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74397,14 +54703,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74425,16 +54723,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.title", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74455,14 +54743,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74483,14 +54763,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:process", - "tests": [] } } }, @@ -74511,16 +54783,6 @@ "confidence": "low", "source": "compiler-unmatched:process", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.version", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74543,16 +54805,6 @@ "tests": [ "tests/corpus/process-versions-storage.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:process.versions", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74578,16 +54830,6 @@ "confidence": "low", "source": "compiler-unmatched:punycode", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:punycode.decode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74613,16 +54855,6 @@ "confidence": "low", "source": "compiler-unmatched:punycode", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:punycode.encode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74648,16 +54880,6 @@ "confidence": "low", "source": "compiler-unmatched:punycode", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:punycode.toASCII", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74683,16 +54905,6 @@ "confidence": "low", "source": "compiler-unmatched:punycode", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:punycode.toUnicode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74718,16 +54930,6 @@ "confidence": "low", "source": "compiler-unmatched:punycode", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:punycode.ucs2", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74753,14 +54955,6 @@ "confidence": "low", "source": "compiler-unmatched:punycode", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:punycode", - "tests": [] } } }, @@ -74786,14 +54980,6 @@ "confidence": "low", "source": "compiler-unmatched:punycode", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:punycode", - "tests": [] } } }, @@ -74819,16 +55005,6 @@ "confidence": "low", "source": "compiler-unmatched:punycode", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:punycode.version", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74857,16 +55033,6 @@ "tests/corpus/957-builtins-namespace.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:querystring.decode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74895,16 +55061,6 @@ "tests/corpus/957-builtins-namespace.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:querystring.encode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74933,16 +55089,6 @@ "tests/corpus/957-builtins-namespace.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:querystring.escape", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -74971,16 +55117,6 @@ "tests/corpus/957-builtins-namespace.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:querystring.parse", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75009,16 +55145,6 @@ "tests/corpus/957-builtins-namespace.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:querystring.stringify", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75047,16 +55173,6 @@ "tests/corpus/957-builtins-namespace.ts", "tests/corpus/2917-builtin-callable-widths.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:querystring.unescape", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75082,14 +55198,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75115,16 +55223,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:readline.rl.question", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75150,14 +55248,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75183,14 +55273,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75216,14 +55298,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75249,14 +55323,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75282,14 +55348,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75315,14 +55373,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75348,14 +55398,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75381,14 +55423,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75414,14 +55448,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75447,16 +55473,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:readline.Interface", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75482,16 +55498,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:readline.rl.question", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75517,16 +55523,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:readline.clearLine", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75552,16 +55548,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:readline.clearScreenDown", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75589,16 +55575,6 @@ "tests": [ "tests/corpus/1475-readline-closed-stdin.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:readline.createInterface", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75624,14 +55600,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75657,16 +55625,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:readline.cursorTo", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75692,16 +55650,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:readline.moveCursor", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75727,14 +55675,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75762,16 +55702,6 @@ "tests": [ "tests/corpus/1475-readline-closed-stdin.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:readline.rl.close", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75799,14 +55729,6 @@ "tests": [ "tests/corpus/2844-node-disposable-resources.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -75832,16 +55754,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:readline.rl.pause", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75867,16 +55779,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:readline.rl.prompt", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75902,16 +55804,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:readline.rl.resume", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75937,16 +55829,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:readline.rl.setPrompt", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -75972,16 +55854,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:readline.rl.getPrompt", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -76007,16 +55879,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:readline.rl.write", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -76042,14 +55904,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76075,14 +55929,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76108,14 +55954,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76141,14 +55979,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76174,14 +56004,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76207,14 +56029,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76240,14 +56054,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76273,14 +56079,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76306,14 +56104,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76339,14 +56129,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76372,14 +56154,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76405,14 +56179,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76438,14 +56204,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:readline", - "tests": [] } } }, @@ -76471,16 +56229,6 @@ "confidence": "low", "source": "compiler-unmatched:readline", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:readline.emitKeypressEvents", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -76506,14 +56254,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76539,14 +56279,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76572,14 +56304,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76605,14 +56329,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76638,14 +56354,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76671,14 +56379,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76704,14 +56404,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76737,14 +56429,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76770,14 +56454,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76803,14 +56479,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76836,14 +56504,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76869,14 +56529,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76902,14 +56554,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:repl", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:repl", - "tests": [] } } }, @@ -76935,14 +56579,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -76968,14 +56604,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77001,14 +56629,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77034,14 +56654,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77067,14 +56679,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77100,14 +56704,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77133,14 +56729,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77166,14 +56754,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77199,14 +56779,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77232,14 +56804,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77265,14 +56829,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77298,14 +56854,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77331,14 +56879,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77364,14 +56904,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77397,14 +56929,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77430,14 +56954,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77463,14 +56979,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77496,14 +57004,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77529,14 +57029,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77562,14 +57054,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77595,14 +57079,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77628,14 +57104,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77661,14 +57129,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77694,14 +57154,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77727,14 +57179,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77760,14 +57204,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77793,14 +57229,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77826,14 +57254,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77859,14 +57279,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77892,14 +57304,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77925,14 +57329,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77958,14 +57354,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -77991,14 +57379,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78024,14 +57404,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78057,14 +57429,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78090,14 +57454,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78123,14 +57479,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78156,14 +57504,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78189,14 +57529,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78222,14 +57554,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78255,14 +57579,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78288,14 +57604,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78321,14 +57629,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78354,14 +57654,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78387,14 +57679,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78420,14 +57704,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78453,14 +57729,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:sqlite", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:sqlite", - "tests": [] } } }, @@ -78490,16 +57758,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -78529,16 +57787,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -78568,16 +57816,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.finished", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -78607,16 +57845,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.finished", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -78646,16 +57874,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -78685,16 +57903,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -78720,14 +57928,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -78753,16 +57953,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.isErrored", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -78788,16 +57978,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.isReadable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -78823,16 +58003,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.isWritable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -78858,16 +58028,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.stream.Readable.from", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -78893,14 +58053,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -78926,14 +58078,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -78959,14 +58103,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -78992,14 +58128,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79025,14 +58153,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79058,14 +58178,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79091,14 +58203,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79124,14 +58228,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79157,16 +58253,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.addAbortSignal", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -79196,14 +58282,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79229,14 +58307,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79266,16 +58336,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.read", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -79305,16 +58365,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.push", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -79344,16 +58394,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.finished", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -79383,16 +58423,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -79422,16 +58452,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -79457,14 +58477,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79490,16 +58502,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.isErrored", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -79525,16 +58527,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.isReadable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -79560,16 +58552,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.isWritable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -79595,16 +58577,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.stream.Readable.from", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -79630,14 +58602,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79663,14 +58627,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79696,14 +58652,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79729,14 +58677,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79762,14 +58702,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79795,14 +58727,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79828,14 +58752,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79861,14 +58777,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79894,16 +58802,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.addAbortSignal", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -79933,14 +58831,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79966,14 +58856,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -79999,16 +58881,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.Writable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -80038,16 +58910,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.writable.cork", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -80075,16 +58937,6 @@ "tests": [ "tests/corpus/2897-child-stdin-destroy.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.writable.destroy", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -80114,16 +58966,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.writable.end", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -80153,16 +58995,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.writable.setDefaultEncoding", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -80192,16 +59024,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.writable.uncork", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -80227,14 +59049,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80264,16 +59078,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.writable.write", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -80299,14 +59103,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80332,14 +59128,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80368,14 +59156,6 @@ "tests/corpus/2893-child-stdin-duplex.ts", "tests/corpus/2895-child-stdin-write-after-end.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80401,14 +59181,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80434,14 +59206,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80467,14 +59231,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80500,14 +59256,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80533,14 +59281,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80566,14 +59306,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80599,14 +59331,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80632,14 +59356,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80665,14 +59381,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80698,14 +59406,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80733,14 +59433,6 @@ "tests": [ "tests/corpus/2894-child-stdin-backpressure.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80766,14 +59458,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80799,14 +59483,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80832,14 +59508,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80865,14 +59533,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -80898,16 +59558,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.Readable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -80937,16 +59587,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.destroy", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -80976,16 +59616,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.isPaused", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -81015,16 +59645,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.pause", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -81054,16 +59674,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.pipe", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -81093,16 +59703,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.read", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -81132,16 +59732,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.resume", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -81171,16 +59761,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.setEncoding", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -81210,16 +59790,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.unpipe", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -81249,16 +59819,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.unshift", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -81284,14 +59844,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-member-stub:node:stream.readable.wrap", - "tests": [] } } }, @@ -81320,14 +59872,6 @@ "tests/corpus/1746-stream-for-await.ts", "tests/corpus/2861-readable-iterator-close.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81353,14 +59897,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81386,14 +59922,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81422,14 +59950,6 @@ "tests/corpus/1746-stream-for-await.ts", "tests/corpus/2861-readable-iterator-close.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81455,14 +59975,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81488,14 +60000,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81521,14 +60025,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81554,14 +60050,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81587,14 +60075,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81620,14 +60100,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81653,14 +60125,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81686,14 +60150,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81719,14 +60175,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81752,14 +60200,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81785,14 +60225,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81818,14 +60250,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81851,14 +60275,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81884,14 +60300,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81917,14 +60325,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81950,14 +60350,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -81983,14 +60375,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82016,14 +60400,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82049,14 +60425,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82082,14 +60450,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82115,14 +60475,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82148,14 +60500,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82181,14 +60525,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82214,14 +60550,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82247,14 +60575,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82280,14 +60600,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82313,14 +60625,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82346,14 +60650,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82379,14 +60675,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82412,14 +60700,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82445,16 +60725,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.Duplex", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -82480,14 +60750,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82513,16 +60775,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.Transform", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -82548,16 +60800,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.transform.destroy", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -82583,14 +60825,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82616,14 +60850,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82649,14 +60875,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82682,14 +60900,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82715,14 +60925,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82748,14 +60950,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82781,14 +60975,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82814,14 +61000,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82847,14 +61025,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82884,16 +61054,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.push", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -82919,16 +61079,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream.PassThrough", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -82954,14 +61104,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -82987,14 +61129,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -83020,14 +61154,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -83053,14 +61179,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -83090,16 +61208,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.read", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -83129,16 +61237,6 @@ "tests/corpus/1688-stream-writable-basics.ts", "tests/corpus/1814-stream-pipeline.cjs" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:stream.readable.push", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] } } }, @@ -83164,14 +61262,6 @@ "confidence": "low", "source": "compiler-unmatched:stream", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:stream", - "tests": [] } } }, @@ -83200,17 +61290,6 @@ "tests/corpus/1662-string-decoder-encodings.ts", "tests/corpus/node24-string-decoder.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:string_decoder.StringDecoder", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts", - "tests/fixtures/npm/cases/node24-string-decoder/main.ts" - ] } } }, @@ -83239,17 +61318,6 @@ "tests/corpus/1662-string-decoder-encodings.ts", "tests/corpus/node24-string-decoder.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:string_decoder.stringDecoder.end", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts", - "tests/fixtures/npm/cases/node24-string-decoder/main.ts" - ] } } }, @@ -83278,17 +61346,6 @@ "tests/corpus/1662-string-decoder-encodings.ts", "tests/corpus/node24-string-decoder.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:string_decoder.stringDecoder.write", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts", - "tests/fixtures/npm/cases/node24-string-decoder/main.ts" - ] } } }, @@ -83316,14 +61373,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83349,14 +61398,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83388,14 +61429,6 @@ "tests/corpus/1721-assert-throws-regex-class.ts", "tests/corpus/2936-static-loose-equality.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83421,14 +61454,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83454,14 +61479,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83487,14 +61504,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83520,14 +61529,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83553,14 +61554,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83586,14 +61579,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83619,14 +61604,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83652,14 +61629,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83685,14 +61654,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83718,14 +61679,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83751,14 +61704,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83784,14 +61729,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83817,14 +61754,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83850,14 +61779,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83883,14 +61804,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83916,14 +61829,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83949,14 +61854,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -83982,14 +61879,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84015,14 +61904,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84048,14 +61929,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84081,14 +61954,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84114,14 +61979,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84147,14 +62004,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84180,14 +62029,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84213,14 +62054,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84246,14 +62079,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84279,14 +62104,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84312,14 +62129,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84345,14 +62154,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84378,14 +62179,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84411,14 +62204,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84444,14 +62229,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84477,14 +62254,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84510,14 +62279,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84543,14 +62304,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84576,14 +62329,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84609,14 +62354,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84642,14 +62379,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84675,14 +62404,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84708,14 +62429,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84741,14 +62454,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84774,14 +62479,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84807,14 +62504,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84840,14 +62529,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84873,14 +62554,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84906,14 +62579,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84939,14 +62604,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -84972,14 +62629,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85005,14 +62654,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85038,14 +62679,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85071,14 +62704,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85104,14 +62729,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85137,14 +62754,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85170,14 +62779,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85203,14 +62804,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85236,14 +62829,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85269,14 +62854,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85304,14 +62881,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85337,14 +62906,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85370,14 +62931,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85405,14 +62958,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85440,14 +62985,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85475,14 +63012,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85508,14 +63037,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85543,14 +63064,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85576,14 +63089,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85609,14 +63114,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85642,14 +63139,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85675,14 +63164,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85710,14 +63191,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85743,14 +63216,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85776,14 +63241,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85809,14 +63266,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85842,14 +63291,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85875,14 +63316,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85908,14 +63341,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85941,14 +63366,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -85974,14 +63391,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86009,14 +63418,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86042,14 +63443,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86075,14 +63468,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86110,14 +63495,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86143,14 +63520,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86176,14 +63545,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86209,14 +63570,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86244,14 +63597,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86279,14 +63624,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86314,14 +63651,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86349,14 +63678,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86384,14 +63705,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86417,14 +63730,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86450,14 +63755,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86483,14 +63780,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86518,14 +63807,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86551,14 +63832,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86584,14 +63857,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86617,14 +63882,6 @@ "confidence": "low", "source": "compiler-unmatched:test", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86652,14 +63909,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86687,14 +63936,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86722,14 +63963,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86757,14 +63990,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:test", - "tests": [] } } }, @@ -86795,16 +64020,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:timers.setImmediate", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -86835,16 +64050,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:timers.setInterval", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -86875,16 +64080,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:timers.setTimeout", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -86915,16 +64110,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:timers.clearImmediate", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -86955,16 +64140,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:timers.clearInterval", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -86995,16 +64170,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:timers.clearTimeout", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -87035,17 +64200,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.timersPromises.setTimeout", - "tests": [ - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87076,17 +64230,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.timersPromises.setImmediate", - "tests": [ - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87117,17 +64260,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.timersPromises.setInterval", - "tests": [ - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87153,17 +64285,6 @@ "confidence": "low", "source": "compiler-unmatched:timers", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.timersPromises.scheduler.wait", - "tests": [ - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87189,17 +64310,6 @@ "confidence": "low", "source": "compiler-unmatched:timers", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.timersPromises.scheduler.yield", - "tests": [ - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87225,14 +64335,6 @@ "confidence": "low", "source": "compiler-unmatched:timers", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:timers", - "tests": [] } } }, @@ -87263,18 +64365,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.immediate.hasRef", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87305,18 +64395,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.immediate.ref", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87347,18 +64425,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.immediate.unref", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87386,18 +64452,6 @@ "tests": [ "tests/corpus/2844-node-disposable-resources.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.immediate", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87423,14 +64477,6 @@ "confidence": "low", "source": "compiler-unmatched:timers", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:timers", - "tests": [] } } }, @@ -87456,18 +64502,6 @@ "confidence": "low", "source": "compiler-unmatched:timers", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.timeout.close", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87498,18 +64532,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.timeout.hasRef", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87540,18 +64562,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.timeout.ref", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87582,18 +64592,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.timeout.refresh", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87624,18 +64622,6 @@ "tests/corpus/2093-timers-promises.ts", "tests/corpus/2852-timers-promises-interval.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.timeout.unref", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87665,14 +64651,6 @@ "tests/corpus/2672-http-request-response-callback.ts", "tests/corpus/2689-http-server-timeout-properties.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:timers", - "tests": [] } } }, @@ -87700,18 +64678,6 @@ "tests": [ "tests/corpus/2844-node-disposable-resources.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:timers.timeout", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] } } }, @@ -87737,14 +64703,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -87770,14 +64728,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -87806,14 +64756,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -87842,14 +64784,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -87875,14 +64809,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -87911,14 +64837,6 @@ "tests/corpus/2500-net-autosel-timeout.ts", "tests/corpus/2596-net-arg-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -87944,14 +64862,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -87977,14 +64887,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88010,14 +64912,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88043,14 +64937,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88076,14 +64962,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88109,14 +64987,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88142,14 +65012,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88175,14 +65037,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88208,14 +65062,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88241,14 +65087,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:tls.TLSSocket", - "tests": [] } } }, @@ -88274,14 +65112,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88307,14 +65137,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88340,14 +65162,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88373,14 +65187,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88406,14 +65212,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88439,14 +65237,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88472,14 +65262,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88505,14 +65287,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88538,14 +65312,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88571,14 +65337,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88604,14 +65362,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88637,14 +65387,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88670,14 +65412,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88703,14 +65437,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88736,14 +65462,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88769,14 +65487,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88802,14 +65512,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88835,14 +65537,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88868,14 +65562,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88901,14 +65587,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88934,14 +65612,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -88967,14 +65637,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89000,14 +65662,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89033,14 +65687,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89066,14 +65712,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89099,14 +65737,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89132,14 +65762,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89165,14 +65787,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89198,14 +65812,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89231,14 +65837,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89264,14 +65862,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89297,14 +65887,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89330,14 +65912,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89363,14 +65937,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89396,14 +65962,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.tls.connect", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:tls.connect", - "tests": [] } } }, @@ -89429,14 +65987,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.tls.connect", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:tls.connect", - "tests": [] } } }, @@ -89462,14 +66012,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.tls.connect", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:tls.connect", - "tests": [] } } }, @@ -89495,14 +66037,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.tls.createSecureContext", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:tls.createSecureContext", - "tests": [] } } }, @@ -89528,14 +66062,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:tls.createServer", - "tests": [] } } }, @@ -89564,14 +66090,6 @@ "tests/corpus/2331-tls-server-options-typed.ts", "tests/corpus/2557-tls-ca-store.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89600,14 +66118,6 @@ "tests/corpus/2331-tls-server-options-typed.ts", "tests/corpus/2557-tls-ca-store.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89633,14 +66143,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89669,16 +66171,6 @@ "tests/corpus/2331-tls-server-options-typed.ts", "tests/corpus/2557-tls-ca-store.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:tls.rootCertificates", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] } } }, @@ -89704,14 +66196,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89737,14 +66221,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89770,14 +66246,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89803,14 +66271,6 @@ "confidence": "low", "source": "compiler-unmatched:tls", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tls", - "tests": [] } } }, @@ -89836,14 +66296,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:tracing", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:tracing", - "tests": [] } } }, @@ -89869,14 +66321,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:tracing", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:tracing", - "tests": [] } } }, @@ -89902,14 +66346,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:tracing", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:tracing", - "tests": [] } } }, @@ -89935,14 +66371,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:tracing", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:tracing", - "tests": [] } } }, @@ -89968,14 +66396,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:tracing", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:tracing", - "tests": [] } } }, @@ -90001,14 +66421,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:tracing", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:tracing", - "tests": [] } } }, @@ -90034,14 +66446,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:tracing", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:tracing", - "tests": [] } } }, @@ -90067,14 +66471,6 @@ "confidence": "medium", "source": "compiler-chapter-policy:tracing", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-chapter-policy:tracing", - "tests": [] } } }, @@ -90100,16 +66496,6 @@ "confidence": "low", "source": "compiler-unmatched:tty", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:tty.ReadStream", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -90135,14 +66521,6 @@ "confidence": "low", "source": "compiler-unmatched:tty", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90168,14 +66546,6 @@ "confidence": "low", "source": "compiler-unmatched:tty", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90207,14 +66577,6 @@ "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/terminal-geometry.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90240,16 +66602,6 @@ "confidence": "low", "source": "compiler-unmatched:tty", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:tty.WriteStream", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -90275,14 +66627,6 @@ "confidence": "low", "source": "compiler-unmatched:tty", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90308,14 +66652,6 @@ "confidence": "low", "source": "compiler-unmatched:tty", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90341,14 +66677,6 @@ "confidence": "low", "source": "compiler-unmatched:tty", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90374,14 +66702,6 @@ "confidence": "low", "source": "compiler-unmatched:tty", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90413,14 +66733,6 @@ "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/terminal-geometry.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90446,14 +66758,6 @@ "confidence": "low", "source": "compiler-unmatched:tty", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90479,14 +66783,6 @@ "confidence": "low", "source": "compiler-unmatched:tty", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90518,14 +66814,6 @@ "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/terminal-geometry.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90557,14 +66845,6 @@ "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/terminal-geometry.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90596,14 +66876,6 @@ "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/terminal-geometry.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90629,14 +66901,6 @@ "confidence": "low", "source": "compiler-unmatched:tty", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:tty", - "tests": [] } } }, @@ -90668,16 +66932,6 @@ "tests/fixtures/node-types/terminal-error-fields.ts", "tests/harness/terminal-geometry.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:tty.isatty", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] } } }, @@ -90703,14 +66957,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -90738,14 +66984,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -90773,14 +67011,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -90806,14 +67036,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -90839,14 +67061,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -90872,14 +67086,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -90907,14 +67113,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -90942,14 +67140,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -90977,14 +67167,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91012,14 +67194,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91045,14 +67219,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91080,14 +67246,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91113,14 +67271,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91146,14 +67296,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91179,14 +67321,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91212,14 +67346,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91245,14 +67371,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91278,14 +67396,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91311,14 +67421,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91346,14 +67448,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91381,14 +67475,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91416,14 +67502,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91449,14 +67527,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91482,14 +67552,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91515,14 +67577,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91548,14 +67602,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91581,14 +67627,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91614,14 +67652,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91647,14 +67677,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91682,14 +67704,6 @@ "tests": [ "tests/corpus/2597-dgram-send-ladders.cjs" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91715,14 +67729,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91748,14 +67754,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91781,14 +67779,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91814,14 +67804,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91847,14 +67829,6 @@ "confidence": "low", "source": "compiler-unmatched:dgram", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "unshimmed:node:dgram", - "tests": [] } } }, @@ -91885,18 +67859,6 @@ "tests/corpus/node24-url-mutation-coercion.js", "tests/fixtures/node-types/url-mutation.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:url.URL", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -91927,18 +67889,6 @@ "tests/fixtures/node-types/url-factories.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.url.toString", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -91969,18 +67919,6 @@ "tests/fixtures/node-types/url-factories.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.url.toJSON", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -92006,14 +67944,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -92039,14 +67969,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -92077,18 +67999,6 @@ "tests/fixtures/node-types/url-factories.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.URL.canParse", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -92119,18 +68029,6 @@ "tests/fixtures/node-types/url-factories.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.URL.parse", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -92160,16 +68058,6 @@ "tests/corpus/node24-url-mutation-coercion.js", "tests/fixtures/node-types/url-mutation.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.hash", - "tests": [ - "tests/fixtures/npm/cases/node24-url-mutation/main.ts" - ] } } }, @@ -92199,16 +68087,6 @@ "tests/corpus/node24-url-authority-coercion.js", "tests/fixtures/node-types/url-mutation.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.host", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] } } }, @@ -92238,16 +68116,6 @@ "tests/corpus/node24-url-authority-coercion.js", "tests/fixtures/node-types/url-mutation.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.hostname", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] } } }, @@ -92277,16 +68145,6 @@ "tests/corpus/node24-url-mutation-coercion.js", "tests/fixtures/node-types/url-mutation.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.href", - "tests": [ - "tests/fixtures/npm/cases/node24-url-mutation/main.ts" - ] } } }, @@ -92312,14 +68170,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -92349,16 +68199,6 @@ "tests/corpus/node24-url-authority-coercion.js", "tests/fixtures/node-types/url-mutation.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.password", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] } } }, @@ -92388,16 +68228,6 @@ "tests/corpus/node24-url-mutation-coercion.js", "tests/fixtures/node-types/url-mutation.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.pathname", - "tests": [ - "tests/fixtures/npm/cases/node24-url-mutation/main.ts" - ] } } }, @@ -92427,16 +68257,6 @@ "tests/corpus/node24-url-authority-coercion.js", "tests/fixtures/node-types/url-mutation.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.port", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] } } }, @@ -92466,16 +68286,6 @@ "tests/corpus/node24-url-authority-coercion.js", "tests/fixtures/node-types/url-mutation.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.protocol", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] } } }, @@ -92505,16 +68315,6 @@ "tests/corpus/node24-url-mutation-coercion.js", "tests/fixtures/node-types/url-mutation.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.search", - "tests": [ - "tests/fixtures/npm/cases/node24-url-mutation/main.ts" - ] } } }, @@ -92540,14 +68340,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -92577,16 +68369,6 @@ "tests/corpus/node24-url-authority-coercion.js", "tests/fixtures/node-types/url-mutation.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.username", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] } } }, @@ -92612,14 +68394,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -92645,14 +68419,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -92678,14 +68444,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -92711,18 +68469,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:url.URLSearchParams", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -92748,18 +68494,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.append", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -92785,18 +68519,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.delete", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -92822,18 +68544,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.entries", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -92859,18 +68569,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.forEach", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -92896,18 +68594,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.get", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -92933,18 +68619,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.getAll", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -92970,18 +68644,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.has", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93007,18 +68669,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.keys", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93044,18 +68694,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.set", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93081,18 +68719,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.sort", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93118,18 +68744,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.toString", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93155,18 +68769,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.values", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93192,14 +68794,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93225,18 +68819,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:url.urlSearchParams.size", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93262,18 +68844,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:url.domainToASCII", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93299,18 +68869,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:url.domainToUnicode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93341,16 +68899,6 @@ "tests/corpus/node24-file-url-errors.js", "tests/fixtures/node-types/file-url-conversion.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.url.fileURLToPath", - "tests": [ - "tests/fixtures/npm/cases/node24-file-url-conversion/main.ts" - ] } } }, @@ -93381,16 +68929,6 @@ "tests/corpus/node24-file-url-errors.js", "tests/fixtures/node-types/file-url-conversion.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.url.fileURLToPathBuffer", - "tests": [ - "tests/fixtures/npm/cases/node24-file-url-conversion/main.ts" - ] } } }, @@ -93416,18 +68954,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:url.format", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93458,16 +68984,6 @@ "tests/corpus/node24-file-url-errors.js", "tests/fixtures/node-types/file-url-conversion.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:url.url.pathToFileURL", - "tests": [ - "tests/fixtures/npm/cases/node24-file-url-conversion/main.ts" - ] } } }, @@ -93493,18 +69009,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:url.urlToHttpOptions", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93530,14 +69034,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93563,14 +69059,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93596,14 +69084,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93629,14 +69109,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93662,14 +69134,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93695,14 +69159,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93728,14 +69184,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93761,14 +69209,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93794,14 +69234,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93827,14 +69259,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93860,14 +69284,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93893,14 +69309,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93926,14 +69334,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:url", - "tests": [] } } }, @@ -93959,18 +69359,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:url.format", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -93996,18 +69384,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:url.format", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -94033,18 +69409,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:url.parse", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -94070,18 +69434,6 @@ "confidence": "low", "source": "compiler-unmatched:url", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:url.resolve", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] } } }, @@ -94107,16 +69459,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util._extend", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -94142,16 +69484,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.isArray", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -94582,16 +69914,6 @@ "tests/harness/project-config.test.ts", "tests/corpus/3133-text-decoder-streaming.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.TextDecoder", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -94617,14 +69939,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -94655,14 +69969,6 @@ "tests/harness/project-config.test.ts", "tests/corpus/3133-text-decoder-streaming.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -94691,16 +69997,6 @@ "tests/corpus/node24-text-codec-properties.ts", "tests/fixtures/node-types/text-encoding.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.encoding", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] } } }, @@ -94729,16 +70025,6 @@ "tests/corpus/node24-text-codec-properties.ts", "tests/fixtures/node-types/text-encoding.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.fatal", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] } } }, @@ -94767,16 +70053,6 @@ "tests/corpus/node24-text-codec-properties.ts", "tests/fixtures/node-types/text-encoding.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.ignoreBOM", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] } } }, @@ -94807,16 +70083,6 @@ "tests/harness/project-config.test.ts", "tests/corpus/3133-text-decoder-streaming.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.TextEncoder", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -94847,14 +70113,6 @@ "tests/harness/project-config.test.ts", "tests/corpus/3133-text-decoder-streaming.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -94884,16 +70142,6 @@ "tests/corpus/node24-text-codec-properties.ts", "tests/fixtures/node-types/text-encoding.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.textEncoder.encodeInto", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] } } }, @@ -94923,16 +70171,6 @@ "tests/corpus/node24-text-codec-properties.ts", "tests/fixtures/node-types/text-encoding.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.encoding", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] } } }, @@ -94958,17 +70196,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.callbackify", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts", - "tests/fixtures/npm/cases/node24-util-adapters/main.ts" - ] } } }, @@ -94994,14 +70221,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -95027,16 +70246,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.debuglog", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -95062,16 +70271,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.debuglog", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -95097,16 +70296,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.debug", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -95132,16 +70321,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.deprecate", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -95167,14 +70346,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -95200,16 +70371,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.format", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -95235,16 +70396,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.formatWithOptions", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -95270,14 +70421,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -95308,16 +70451,6 @@ "tests/corpus/node24-system-errors.cjs", "tests/fixtures/node-types/system-errors.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.getSystemErrorName", - "tests": [ - "tests/fixtures/npm/cases/node24-system-errors/main.ts" - ] } } }, @@ -95348,16 +70481,6 @@ "tests/corpus/node24-system-errors.cjs", "tests/fixtures/node-types/system-errors.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.getSystemErrorMap", - "tests": [ - "tests/fixtures/npm/cases/node24-system-errors/main.ts" - ] } } }, @@ -95388,16 +70511,6 @@ "tests/corpus/node24-system-errors.cjs", "tests/fixtures/node-types/system-errors.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.getSystemErrorMessage", - "tests": [ - "tests/fixtures/npm/cases/node24-system-errors/main.ts" - ] } } }, @@ -95423,14 +70536,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -95456,16 +70561,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.inherits", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -95491,16 +70586,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.inspect", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -95526,16 +70611,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.inspect", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -95561,14 +70636,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -95594,14 +70661,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -95627,16 +70686,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.inspect", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -95668,16 +70717,6 @@ "tests/fixtures/node-types/deep-equality.ts", "packages/compiler/test/deep-equality.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.isDeepStrictEqual", - "tests": [ - "tests/fixtures/npm/cases/node24-deep-equality/main.ts" - ] } } }, @@ -95706,17 +70745,6 @@ "tests/corpus/2678-util-parseargs.ts", "tests/corpus/node24-parseargs.js" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.parseArgs", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts", - "tests/fixtures/npm/cases/node24-parseargs/main.ts" - ] } } }, @@ -95745,17 +70773,6 @@ "tests/corpus/2678-util-parseargs.ts", "tests/corpus/node24-parseargs.js" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.parseArgs", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts", - "tests/fixtures/npm/cases/node24-parseargs/main.ts" - ] } } }, @@ -95787,16 +70804,6 @@ "tests/fixtures/node-types/env-files.ts", "tests/harness/project-config.test.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.parseEnv", - "tests": [ - "tests/fixtures/npm/cases/node24-env/main.ts" - ] } } }, @@ -95826,17 +70833,6 @@ "tests/corpus/1573-promisify-execfile-env-spread.ts", "tests/corpus/2912-promisify-fs-readfile.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.promisify", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts", - "tests/fixtures/npm/cases/node24-util-adapters/main.ts" - ] } } }, @@ -95862,14 +70858,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -95932,16 +70920,6 @@ "tests/corpus/node24-style-text.cjs", "tests/fixtures/node-types/style-text.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.styleText", - "tests": [ - "tests/fixtures/npm/cases/node24-style-text/main.ts" - ] } } }, @@ -95998,14 +70976,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -96031,14 +71001,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -96064,14 +71026,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:util", - "tests": [] } } }, @@ -96102,16 +71056,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:util.types", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] } } }, @@ -96142,16 +71086,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isAnyArrayBuffer", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96182,16 +71116,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isArrayBufferView", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96217,16 +71141,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isArgumentsObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96257,16 +71171,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isArrayBuffer", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96297,16 +71201,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isAsyncFunction", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96332,16 +71226,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isBigInt64Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96367,16 +71251,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isBigIntObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96402,16 +71276,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isBigUint64Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96437,16 +71301,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isBooleanObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96472,16 +71326,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isBoxedPrimitive", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96507,14 +71351,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:util.util.types.isCryptoKey", - "tests": [] } } }, @@ -96545,16 +71381,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isDataView", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96580,16 +71406,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isDate", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96615,14 +71431,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:util.util.types.isExternal", - "tests": [] } } }, @@ -96648,16 +71456,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isFloat16Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96688,16 +71486,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isFloat32Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96728,16 +71516,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isFloat64Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96768,16 +71546,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isGeneratorFunction", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96808,16 +71576,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isGeneratorObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96848,16 +71606,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isInt8Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96888,16 +71636,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isInt16Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96928,16 +71666,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isInt32Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -96963,14 +71691,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "implement", - "verification": "declared-gap", - "confidence": "medium", - "source": "island-feature:util.util.types.isKeyObject", - "tests": [] } } }, @@ -97001,16 +71721,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isMap", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97036,16 +71746,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isMapIterator", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97071,16 +71771,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isModuleNamespaceObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97111,16 +71801,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isNativeError", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97146,16 +71826,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isNumberObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97186,16 +71856,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isPromise", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97226,16 +71886,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isProxy", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97266,16 +71916,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isRegExp", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97306,16 +71946,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isSet", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97341,16 +71971,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isSetIterator", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97376,16 +71996,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isSharedArrayBuffer", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97411,16 +72021,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isStringObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97446,16 +72046,6 @@ "confidence": "low", "source": "compiler-unmatched:util", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isSymbolObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97486,16 +72076,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isTypedArray", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97526,16 +72106,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isUint8Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97566,16 +72136,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isUint8ClampedArray", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97606,16 +72166,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isUint16Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97646,16 +72196,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isUint32Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97686,16 +72226,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isWeakMap", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] } } }, @@ -97726,576 +72256,6 @@ "tests/corpus/node24-util-types.cjs", "tests/fixtures/node-types/util-types.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:util.util.types.isWeakSet", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - } - } - }, - { - "id": "v8:08165517e173", - "chapter": "v8", - "label": "v8.Serializer", - "signature": "Class: `v8.Serializer`", - "apiSymbol": "v8.Serializer", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#class-v8serializer", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.Serializer", - "tests": [] - } - } - }, - { - "id": "v8:be3c50e16904", - "chapter": "v8", - "label": "serializer.writeHeader()", - "signature": "`serializer.writeHeader()`", - "apiSymbol": "serializer.writeHeader", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializerwriteheader", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:e83e447b3793", - "chapter": "v8", - "label": "serializer.writeValue(value)", - "signature": "`serializer.writeValue(value)`", - "apiSymbol": "serializer.writeValue", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializerwritevaluevalue", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:9b7b89a006eb", - "chapter": "v8", - "label": "serializer.releaseBuffer()", - "signature": "`serializer.releaseBuffer()`", - "apiSymbol": "serializer.releaseBuffer", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializerreleasebuffer", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:1aa4a4cf4830", - "chapter": "v8", - "label": "serializer.transferArrayBuffer(id, arrayBuffer)", - "signature": "`serializer.transferArrayBuffer(id, arrayBuffer)`", - "apiSymbol": "serializer.transferArrayBuffer", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializertransferarraybufferid-arraybuffer", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:8d8d18401d8c", - "chapter": "v8", - "label": "serializer.writeUint32(value)", - "signature": "`serializer.writeUint32(value)`", - "apiSymbol": "serializer.writeUint32", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializerwriteuint32value", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:777dc44901f3", - "chapter": "v8", - "label": "serializer.writeUint64(hi, lo)", - "signature": "`serializer.writeUint64(hi, lo)`", - "apiSymbol": "serializer.writeUint64", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializerwriteuint64hi-lo", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:257b111bd961", - "chapter": "v8", - "label": "serializer.writeDouble(value)", - "signature": "`serializer.writeDouble(value)`", - "apiSymbol": "serializer.writeDouble", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializerwritedoublevalue", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:233b3d4fa84b", - "chapter": "v8", - "label": "serializer.writeRawBytes(buffer)", - "signature": "`serializer.writeRawBytes(buffer)`", - "apiSymbol": "serializer.writeRawBytes", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializerwriterawbytesbuffer", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:fa0025599d00", - "chapter": "v8", - "label": "serializer._writeHostObject(object)", - "signature": "`serializer._writeHostObject(object)`", - "apiSymbol": "serializer._writeHostObject", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializer_writehostobjectobject", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:72e4ab697f8e", - "chapter": "v8", - "label": "serializer._getDataCloneError(message)", - "signature": "`serializer._getDataCloneError(message)`", - "apiSymbol": "serializer._getDataCloneError", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializer_getdatacloneerrormessage", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:440c5e4f9662", - "chapter": "v8", - "label": "serializer._getSharedArrayBufferId(sharedArrayBuffer)", - "signature": "`serializer._getSharedArrayBufferId(sharedArrayBuffer)`", - "apiSymbol": "serializer._getSharedArrayBufferId", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializer_getsharedarraybufferidsharedarraybuffer", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:22924147a44d", - "chapter": "v8", - "label": "serializer._setTreatArrayBufferViewsAsHostObjects(flag)", - "signature": "`serializer._setTreatArrayBufferViewsAsHostObjects(flag)`", - "apiSymbol": "serializer._setTreatArrayBufferViewsAsHostObjects", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#serializer_settreatarraybufferviewsashostobjectsflag", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:c27acaea5ad5", - "chapter": "v8", - "label": "v8.Deserializer", - "signature": "Class: `v8.Deserializer`", - "apiSymbol": "v8.Deserializer", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#class-v8deserializer", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.Deserializer", - "tests": [] - } - } - }, - { - "id": "v8:327881d87485", - "chapter": "v8", - "label": "deserializer.readHeader()", - "signature": "`deserializer.readHeader()`", - "apiSymbol": "deserializer.readHeader", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#deserializerreadheader", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:46cc71c5745f", - "chapter": "v8", - "label": "deserializer.readValue()", - "signature": "`deserializer.readValue()`", - "apiSymbol": "deserializer.readValue", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#deserializerreadvalue", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:6146c1a43932", - "chapter": "v8", - "label": "deserializer.transferArrayBuffer(id, arrayBuffer)", - "signature": "`deserializer.transferArrayBuffer(id, arrayBuffer)`", - "apiSymbol": "deserializer.transferArrayBuffer", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#deserializertransferarraybufferid-arraybuffer", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:a0904e28ffb3", - "chapter": "v8", - "label": "deserializer.getWireFormatVersion()", - "signature": "`deserializer.getWireFormatVersion()`", - "apiSymbol": "deserializer.getWireFormatVersion", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#deserializergetwireformatversion", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:70dda0b073d0", - "chapter": "v8", - "label": "deserializer.readUint32()", - "signature": "`deserializer.readUint32()`", - "apiSymbol": "deserializer.readUint32", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#deserializerreaduint32", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:a12c0c06fca5", - "chapter": "v8", - "label": "deserializer.readUint64()", - "signature": "`deserializer.readUint64()`", - "apiSymbol": "deserializer.readUint64", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#deserializerreaduint64", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:9d73521d5703", - "chapter": "v8", - "label": "deserializer.readDouble()", - "signature": "`deserializer.readDouble()`", - "apiSymbol": "deserializer.readDouble", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#deserializerreaddouble", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:e96dcb87cc28", - "chapter": "v8", - "label": "deserializer.readRawBytes(length)", - "signature": "`deserializer.readRawBytes(length)`", - "apiSymbol": "deserializer.readRawBytes", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#deserializerreadrawbyteslength", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:4d9a79662cd3", - "chapter": "v8", - "label": "deserializer._readHostObject()", - "signature": "`deserializer._readHostObject()`", - "apiSymbol": "deserializer._readHostObject", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#deserializer_readhostobject", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:4de0cb167b88", - "chapter": "v8", - "label": "v8.DefaultSerializer", - "signature": "Class: `v8.DefaultSerializer`", - "apiSymbol": "v8.DefaultSerializer", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#class-v8defaultserializer", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.DefaultSerializer", - "tests": [] - } - } - }, - { - "id": "v8:dabaa0ff5816", - "chapter": "v8", - "label": "v8.DefaultDeserializer", - "signature": "Class: `v8.DefaultDeserializer`", - "apiSymbol": "v8.DefaultDeserializer", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#class-v8defaultdeserializer", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.DefaultDeserializer", - "tests": [] - } - } - }, - { - "id": "v8:874a94dcddd3", - "chapter": "v8", - "label": "v8.serialize(value)", - "signature": "`v8.serialize(value)`", - "apiSymbol": "v8.serialize", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8serializevalue", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.serialize", - "tests": [] - } - } - }, - { - "id": "v8:9a2b32a9ff44", - "chapter": "v8", - "label": "v8.deserialize(buffer)", - "signature": "`v8.deserialize(buffer)`", - "apiSymbol": "v8.deserialize", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8deserializebuffer", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.deserialize", - "tests": [] - } - } - }, - { - "id": "v8:7db5baf46842", - "chapter": "v8", - "label": "init(promise, parent)", - "signature": "`init(promise, parent)`", - "apiSymbol": "init", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#initpromise-parent", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] } } }, @@ -98318,14 +72278,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] } } }, @@ -98348,772 +72300,6 @@ "tests": [ "tests/harness/node-test.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:f2ada5cff228", - "chapter": "v8", - "label": "settled(promise)", - "signature": "`settled(promise)`", - "apiSymbol": "settled", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#settledpromise", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:a171bf064efc", - "chapter": "v8", - "label": "promiseHooks.onInit(init)", - "signature": "`promiseHooks.onInit(init)`", - "apiSymbol": "promiseHooks.onInit", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#promisehooksoninitinit", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:6a3e3598e903", - "chapter": "v8", - "label": "promiseHooks.onSettled(settled)", - "signature": "`promiseHooks.onSettled(settled)`", - "apiSymbol": "promiseHooks.onSettled", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#promisehooksonsettledsettled", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:808ed425935d", - "chapter": "v8", - "label": "promiseHooks.onBefore(before)", - "signature": "`promiseHooks.onBefore(before)`", - "apiSymbol": "promiseHooks.onBefore", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#promisehooksonbeforebefore", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:67105b6f273d", - "chapter": "v8", - "label": "promiseHooks.onAfter(after)", - "signature": "`promiseHooks.onAfter(after)`", - "apiSymbol": "promiseHooks.onAfter", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#promisehooksonafterafter", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:edc4a34c3f4a", - "chapter": "v8", - "label": "promiseHooks.createHook(callbacks)", - "signature": "`promiseHooks.createHook(callbacks)`", - "apiSymbol": "promiseHooks.createHook", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#promisehookscreatehookcallbacks", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:c63bdf0a4f00", - "chapter": "v8", - "label": "v8.startupSnapshot.addSerializeCallback(callback[, data])", - "signature": "`v8.startupSnapshot.addSerializeCallback(callback[, data])`", - "apiSymbol": "v8.startupSnapshot.addSerializeCallback", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8startupsnapshotaddserializecallbackcallback-data", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:f98660318efb", - "chapter": "v8", - "label": "v8.startupSnapshot.addDeserializeCallback(callback[, data])", - "signature": "`v8.startupSnapshot.addDeserializeCallback(callback[, data])`", - "apiSymbol": "v8.startupSnapshot.addDeserializeCallback", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8startupsnapshotadddeserializecallbackcallback-data", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:f77fb1c01d1c", - "chapter": "v8", - "label": "v8.startupSnapshot.setDeserializeMainFunction(callback[, data])", - "signature": "`v8.startupSnapshot.setDeserializeMainFunction(callback[, data])`", - "apiSymbol": "v8.startupSnapshot.setDeserializeMainFunction", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8startupsnapshotsetdeserializemainfunctioncallback-data", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:40e4e62a4579", - "chapter": "v8", - "label": "v8.startupSnapshot.isBuildingSnapshot()", - "signature": "`v8.startupSnapshot.isBuildingSnapshot()`", - "apiSymbol": "v8.startupSnapshot.isBuildingSnapshot", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8startupsnapshotisbuildingsnapshot", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:8e779fd7ced3", - "chapter": "v8", - "label": "v8.GCProfiler", - "signature": "Class: `v8.GCProfiler`", - "apiSymbol": "v8.GCProfiler", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#class-v8gcprofiler", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.GCProfiler", - "tests": [] - } - } - }, - { - "id": "v8:f3a5ad68d220", - "chapter": "v8", - "label": "profiler.start()", - "signature": "`profiler.start()`", - "apiSymbol": "profiler.start", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#profilerstart", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:ada5ab4b0279", - "chapter": "v8", - "label": "profiler.stop()", - "signature": "`profiler.stop()`", - "apiSymbol": "profiler.stop", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#profilerstop", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:502f365c722d", - "chapter": "v8", - "label": "profiler[Symbol.dispose]()", - "signature": "`profiler[Symbol.dispose]()`", - "apiSymbol": "profiler", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#profilersymboldispose", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:546aaef1cfca", - "chapter": "v8", - "label": "SyncCPUProfileHandle", - "signature": "Class: `SyncCPUProfileHandle`", - "apiSymbol": "SyncCPUProfileHandle", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#class-synccpuprofilehandle", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:09427b420c94", - "chapter": "v8", - "label": "syncCpuProfileHandle.stop()", - "signature": "`syncCpuProfileHandle.stop()`", - "apiSymbol": "syncCpuProfileHandle.stop", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#synccpuprofilehandlestop", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:27e7bdd56e06", - "chapter": "v8", - "label": "syncCpuProfileHandle[Symbol.dispose]()", - "signature": "`syncCpuProfileHandle[Symbol.dispose]()`", - "apiSymbol": "syncCpuProfileHandle", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#synccpuprofilehandlesymboldispose", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:2bc72f743fb7", - "chapter": "v8", - "label": "CPUProfileHandle", - "signature": "Class: `CPUProfileHandle`", - "apiSymbol": "CPUProfileHandle", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#class-cpuprofilehandle", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:209dae35fe48", - "chapter": "v8", - "label": "cpuProfileHandle.stop()", - "signature": "`cpuProfileHandle.stop()`", - "apiSymbol": "cpuProfileHandle.stop", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#cpuprofilehandlestop", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:82d5d47161c2", - "chapter": "v8", - "label": "cpuProfileHandle[Symbol.asyncDispose]()", - "signature": "`cpuProfileHandle[Symbol.asyncDispose]()`", - "apiSymbol": "cpuProfileHandle", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#cpuprofilehandlesymbolasyncdispose", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:27a59816a32b", - "chapter": "v8", - "label": "HeapProfileHandle", - "signature": "Class: `HeapProfileHandle`", - "apiSymbol": "HeapProfileHandle", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#class-heapprofilehandle", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:1cb2fac526b6", - "chapter": "v8", - "label": "heapProfileHandle.stop()", - "signature": "`heapProfileHandle.stop()`", - "apiSymbol": "heapProfileHandle.stop", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#heapprofilehandlestop", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:5ec7010fd6f4", - "chapter": "v8", - "label": "heapProfileHandle[Symbol.asyncDispose]()", - "signature": "`heapProfileHandle[Symbol.asyncDispose]()`", - "apiSymbol": "heapProfileHandle", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#heapprofilehandlesymbolasyncdispose", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:v8", - "tests": [] - } - } - }, - { - "id": "v8:d94fda515345", - "chapter": "v8", - "label": "v8.cachedDataVersionTag()", - "signature": "`v8.cachedDataVersionTag()`", - "apiSymbol": "v8.cachedDataVersionTag", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8cacheddataversiontag", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:v8.cachedDataVersionTag", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - } - } - }, - { - "id": "v8:8fe0f6defa40", - "chapter": "v8", - "label": "v8.getHeapCodeStatistics()", - "signature": "`v8.getHeapCodeStatistics()`", - "apiSymbol": "v8.getHeapCodeStatistics", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8getheapcodestatistics", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:v8.getHeapCodeStatistics", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - } - } - }, - { - "id": "v8:fb1c9af2dace", - "chapter": "v8", - "label": "v8.getHeapSnapshot([options])", - "signature": "`v8.getHeapSnapshot([options])`", - "apiSymbol": "v8.getHeapSnapshot", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8getheapsnapshotoptions", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.getHeapSnapshot", - "tests": [] - } - } - }, - { - "id": "v8:6b8bee67a167", - "chapter": "v8", - "label": "v8.getHeapSpaceStatistics()", - "signature": "`v8.getHeapSpaceStatistics()`", - "apiSymbol": "v8.getHeapSpaceStatistics", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8getheapspacestatistics", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:v8.getHeapSpaceStatistics", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - } - } - }, - { - "id": "v8:cefde4a8297c", - "chapter": "v8", - "label": "v8.getHeapStatistics()", - "signature": "`v8.getHeapStatistics()`", - "apiSymbol": "v8.getHeapStatistics", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8getheapstatistics", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:v8.getHeapStatistics", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - } - } - }, - { - "id": "v8:1c4ee81cc630", - "chapter": "v8", - "label": "v8.getCppHeapStatistics([detailLevel])", - "signature": "`v8.getCppHeapStatistics([detailLevel])`", - "apiSymbol": "v8.getCppHeapStatistics", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8getcppheapstatisticsdetaillevel", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:v8.getCppHeapStatistics", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - } - } - }, - { - "id": "v8:3bc7c8e3907e", - "chapter": "v8", - "label": "v8.queryObjects(ctor[, options])", - "signature": "`v8.queryObjects(ctor[, options])`", - "apiSymbol": "v8.queryObjects", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8queryobjectsctor-options", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.queryObjects", - "tests": [] - } - } - }, - { - "id": "v8:bf333a0a413f", - "chapter": "v8", - "label": "v8.setFlagsFromString(flags)", - "signature": "`v8.setFlagsFromString(flags)`", - "apiSymbol": "v8.setFlagsFromString", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8setflagsfromstringflags", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:v8.setFlagsFromString", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - } - } - }, - { - "id": "v8:25869b6020c1", - "chapter": "v8", - "label": "v8.stopCoverage()", - "signature": "`v8.stopCoverage()`", - "apiSymbol": "v8.stopCoverage", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8stopcoverage", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:v8.stopCoverage", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - } - } - }, - { - "id": "v8:938d404a4307", - "chapter": "v8", - "label": "v8.takeCoverage()", - "signature": "`v8.takeCoverage()`", - "apiSymbol": "v8.takeCoverage", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8takecoverage", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:v8.takeCoverage", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - } - } - }, - { - "id": "v8:8ea497243f60", - "chapter": "v8", - "label": "v8.writeHeapSnapshot([filename[,options]])", - "signature": "`v8.writeHeapSnapshot([filename[,options]])`", - "apiSymbol": "v8.writeHeapSnapshot", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8writeheapsnapshotfilenameoptions", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.writeHeapSnapshot", - "tests": [] - } - } - }, - { - "id": "v8:a53c96b58d52", - "chapter": "v8", - "label": "v8.setHeapSnapshotNearHeapLimit(limit)", - "signature": "`v8.setHeapSnapshotNearHeapLimit(limit)`", - "apiSymbol": "v8.setHeapSnapshotNearHeapLimit", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8setheapsnapshotnearheaplimitlimit", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:v8.setHeapSnapshotNearHeapLimit", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - } - } - }, - { - "id": "v8:4696ce9fd4f6", - "chapter": "v8", - "label": "v8.isStringOneByteRepresentation(content)", - "signature": "`v8.isStringOneByteRepresentation(content)`", - "apiSymbol": "v8.isStringOneByteRepresentation", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8isstringonebyterepresentationcontent", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.isStringOneByteRepresentation", - "tests": [] - } - } - }, - { - "id": "v8:d6acc1d6c6bf", - "chapter": "v8", - "label": "v8.startCpuProfile()", - "signature": "`v8.startCpuProfile()`", - "apiSymbol": "v8.startCpuProfile", - "docsUrl": "https://nodejs.org/docs/v24.15.0/api/v8.html#v8startcpuprofile", - "nodeStability": null, - "priority": "normal", - "tiers": { - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:v8.startCpuProfile", - "tests": [] } } }, @@ -99139,14 +72325,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99172,14 +72350,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99205,14 +72375,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99238,14 +72400,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99271,14 +72425,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99304,14 +72450,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99337,14 +72475,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99370,14 +72500,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99403,14 +72525,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99436,14 +72550,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99469,14 +72575,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99502,14 +72600,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99535,14 +72625,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99568,14 +72650,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99601,14 +72675,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99634,14 +72700,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99667,14 +72725,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99700,14 +72750,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99733,14 +72775,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99766,14 +72800,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99799,14 +72825,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99832,14 +72850,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99865,14 +72875,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99898,14 +72900,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99931,14 +72925,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99964,14 +72950,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -99997,14 +72975,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100030,14 +73000,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100063,14 +73025,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100096,14 +73050,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100129,14 +73075,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100162,14 +73100,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100195,14 +73125,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100228,14 +73150,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100261,14 +73175,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100294,14 +73200,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100327,14 +73225,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100360,14 +73250,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100393,14 +73275,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100426,14 +73300,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100459,14 +73325,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100492,14 +73350,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100525,14 +73375,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100558,14 +73400,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100601,17 +73435,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -100637,14 +73460,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100670,14 +73485,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100703,14 +73510,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100736,14 +73535,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100769,14 +73560,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100802,14 +73585,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100835,14 +73610,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100868,14 +73635,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100901,14 +73660,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100934,14 +73685,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -100967,14 +73710,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101000,14 +73735,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101033,14 +73760,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101066,14 +73785,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101099,14 +73810,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101132,14 +73835,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101165,14 +73860,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101208,17 +73895,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -101244,14 +73920,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101277,14 +73945,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101310,14 +73970,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101343,14 +73995,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101386,17 +74030,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -101422,14 +74055,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101455,14 +74080,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101488,14 +74105,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101531,17 +74140,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -101567,14 +74165,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101600,14 +74190,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101633,14 +74215,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101676,17 +74250,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -101712,14 +74275,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101745,14 +74300,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101778,14 +74325,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101811,14 +74350,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101844,14 +74375,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101877,14 +74400,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101910,14 +74425,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101943,14 +74450,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -101976,14 +74475,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102009,14 +74500,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102042,14 +74525,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102075,14 +74550,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102108,14 +74575,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102141,14 +74600,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102174,14 +74625,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102207,14 +74650,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102240,14 +74675,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102273,14 +74700,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102316,17 +74735,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -102352,14 +74760,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102385,14 +74785,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102418,14 +74810,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102451,14 +74835,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102494,17 +74870,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -102530,14 +74895,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102563,14 +74920,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102606,17 +74955,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -102642,14 +74980,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102675,14 +75005,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102708,14 +75030,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102741,14 +75055,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102784,17 +75090,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -102820,14 +75115,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102853,14 +75140,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102886,14 +75165,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102919,14 +75190,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102952,14 +75215,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -102985,14 +75240,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103018,14 +75265,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103051,14 +75290,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103084,14 +75315,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103117,14 +75340,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103150,17 +75365,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.getRandomValues", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -103196,17 +75400,6 @@ "tests/corpus/node24-crypto-kdf-errors.ts", "tests/corpus/node24-crypto-kdf-options.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.randomUUID", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -103232,17 +75425,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:crypto.subtle", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] } } }, @@ -103268,14 +75450,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103301,14 +75475,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103334,14 +75500,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103367,14 +75525,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103400,14 +75550,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103433,14 +75575,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103466,14 +75600,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103499,14 +75625,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103532,14 +75650,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103565,14 +75675,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103598,14 +75700,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103631,14 +75725,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103664,14 +75750,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103697,14 +75775,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103730,14 +75800,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103763,14 +75825,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103796,14 +75850,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103829,14 +75875,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103862,14 +75900,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103895,14 +75925,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103928,14 +75950,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103961,14 +75975,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -103994,14 +76000,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -104027,14 +76025,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -104060,14 +76050,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -104093,14 +76075,6 @@ "confidence": "low", "source": "compiler-unmatched:webcrypto", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webcrypto", - "tests": [] } } }, @@ -104126,14 +76100,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.stream.consumers.arrayBuffer", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104159,14 +76125,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.stream.consumers.blob", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104192,14 +76150,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104225,14 +76175,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104258,14 +76200,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104291,14 +76225,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104324,27 +76250,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.ReadableStream", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -104370,14 +76275,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104403,18 +76300,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readableStream.cancel", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -104440,18 +76325,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readableStream.getReader", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -104477,18 +76350,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readableStream.pipeThrough", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts" - ] } } }, @@ -104514,18 +76375,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readableStream.pipeTo", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts" - ] } } }, @@ -104551,18 +76400,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readableStream.tee", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -104590,14 +76427,6 @@ "tests": [ "tests/corpus/2862-web-readable-async-iteration.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104623,18 +76452,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.locked", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -104660,27 +76477,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.ReadableStreamDefaultReader", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -104706,17 +76502,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readableStreamDefaultReader.cancel", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] } } }, @@ -104742,17 +76527,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readableStreamDefaultReader.read", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] } } }, @@ -104778,17 +76552,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readableStreamDefaultReader.releaseLock", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] } } }, @@ -104814,17 +76577,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.closed", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] } } }, @@ -104850,14 +76602,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104883,14 +76627,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104916,14 +76652,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104949,14 +76677,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -104982,14 +76702,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -105015,27 +76727,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.ReadableStreamDefaultController", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -105061,17 +76752,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readableStreamDefaultController.close", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] } } }, @@ -105097,17 +76777,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readableStreamDefaultController.enqueue", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] } } }, @@ -105133,17 +76802,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readableStreamDefaultController.error", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] } } }, @@ -105169,19 +76827,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.desiredSize", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] } } }, @@ -105207,14 +76852,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -105240,14 +76877,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -105273,14 +76902,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -105306,14 +76927,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -105339,14 +76952,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -105372,14 +76977,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -105405,14 +77002,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -105438,14 +77027,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -105471,14 +77052,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -105504,14 +77077,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -105537,27 +77102,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.WritableStream", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -105583,18 +77127,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.writableStream.abort", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -105620,18 +77152,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.writableStream.close", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -105657,18 +77177,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.writableStream.getWriter", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -105694,18 +77202,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.locked", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -105731,27 +77227,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.WritableStreamDefaultWriter", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -105777,18 +77252,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.writableStreamDefaultWriter.abort", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -105814,18 +77277,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.writableStreamDefaultWriter.close", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -105851,18 +77302,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.writableStreamDefaultWriter.releaseLock", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -105888,18 +77327,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.writableStreamDefaultWriter.write", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -105925,18 +77352,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.closed", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -105962,18 +77377,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.desiredSize", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -105999,18 +77402,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.ready", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -106036,27 +77427,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.WritableStreamDefaultController", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -106082,18 +77452,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.writableStreamDefaultController.error", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -106119,18 +77477,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.signal", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -106156,27 +77502,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.TransformStream", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -106202,17 +77527,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readable", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts" - ] } } }, @@ -106238,17 +77552,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.writable", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts" - ] } } }, @@ -106274,27 +77577,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.TransformStreamDefaultController", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -106320,16 +77602,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.transformStreamDefaultController.enqueue", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts" - ] } } }, @@ -106355,16 +77627,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.transformStreamDefaultController.error", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts" - ] } } }, @@ -106390,16 +77652,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.transformStreamDefaultController.terminate", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts" - ] } } }, @@ -106425,16 +77677,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.desiredSize", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts" - ] } } }, @@ -106460,27 +77702,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.ByteLengthQueuingStrategy", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -106506,18 +77727,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.highWaterMark", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -106543,18 +77752,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.size", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -106580,27 +77777,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.CountQueuingStrategy", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -106626,18 +77802,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.highWaterMark", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -106663,18 +77827,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.size", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] } } }, @@ -106700,27 +77852,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.TextEncoderStream", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -106746,16 +77877,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.encoding", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts" - ] } } }, @@ -106781,16 +77902,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.readable", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts" - ] } } }, @@ -106816,16 +77927,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-feature:webstreams.writable", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts" - ] } } }, @@ -106851,27 +77952,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:stream/web.TextDecoderStream", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] } } }, @@ -106897,14 +77977,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -106930,14 +78002,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -106963,14 +78027,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -106996,14 +78052,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -107029,14 +78077,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -107062,14 +78102,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -107095,14 +78127,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -107128,14 +78152,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -107161,14 +78177,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -107194,14 +78202,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -107227,14 +78227,6 @@ "confidence": "low", "source": "compiler-unmatched:webstreams", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -107262,14 +78254,6 @@ "tests": [ "tests/harness/fetch-conformance.test.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:webstreams", - "tests": [] } } }, @@ -107295,14 +78279,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -107328,14 +78304,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -107361,14 +78329,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -107394,14 +78354,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -107427,14 +78379,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -107460,14 +78404,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -107493,14 +78429,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -107526,16 +78454,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.MessageChannel", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -107565,16 +78483,6 @@ "tests/corpus/native-worker-port-lifetime.ts", "tests/corpus/native-worker-references.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.MessagePort", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -107602,16 +78510,6 @@ "tests": [ "tests/corpus/native-worker-port-lifetime.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:worker_threads.port.close", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -107642,16 +78540,6 @@ "tests/corpus/native-worker-clone-errors.ts", "tests/corpus/native-worker-delayed-messages.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:worker_threads.port.postMessage", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -107679,16 +78567,6 @@ "tests": [ "tests/corpus/native-worker-port-lifetime.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:worker_threads.port.hasRef", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -107716,16 +78594,6 @@ "tests": [ "tests/corpus/native-worker-port-lifetime.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:worker_threads.port.ref", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -107753,16 +78621,6 @@ "tests": [ "tests/corpus/native-worker-port-lifetime.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:worker_threads.port.start", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -107790,16 +78648,6 @@ "tests": [ "tests/corpus/native-worker-port-lifetime.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:worker_threads.port.unref", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -107828,14 +78676,6 @@ "tests/corpus/native-worker-port-lifetime.ts", "tests/corpus/native-worker-messages.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -107864,14 +78704,6 @@ "tests/corpus/native-worker-port-lifetime.ts", "tests/corpus/native-worker-messages.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -107897,14 +78729,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -107935,14 +78759,6 @@ "tests/corpus/native-worker-environment.ts", "tests/corpus/native-worker-roots/main.ts" ] - }, - "dynamic": { - "status": "refused", - "action": "replace-refusal", - "verification": "explicit-refusal", - "confidence": "high", - "source": "island-stub:node:worker_threads.Worker", - "tests": [] } } }, @@ -107968,14 +78784,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108001,14 +78809,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108034,14 +78834,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108072,14 +78864,6 @@ "tests/corpus/native-worker-clone-errors.ts", "tests/corpus/native-worker-delayed-messages.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108107,14 +78891,6 @@ "tests": [ "tests/corpus/native-worker-references.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108140,14 +78916,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108173,14 +78941,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108211,14 +78971,6 @@ "tests/corpus/native-worker-terminate-suspended.ts", "tests/corpus/native-worker-loop-cancellation.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108246,14 +78998,6 @@ "tests": [ "tests/corpus/native-worker-references.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108279,14 +79023,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108312,14 +79048,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108345,14 +79073,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108378,16 +79098,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.resourceLimits", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -108413,14 +79123,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108446,14 +79148,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108479,14 +79173,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108516,16 +79202,6 @@ "tests/corpus/native-worker-port-lifetime.ts", "tests/corpus/native-worker-references.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.threadId", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -108551,14 +79227,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108588,14 +79256,6 @@ "tests/corpus/native-worker-error.ts", "tests/corpus/native-worker-exit-listeners.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108625,14 +79285,6 @@ "tests/corpus/native-worker-error.ts", "tests/corpus/native-worker-exit-listeners.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108662,14 +79314,6 @@ "tests/corpus/native-worker-error.ts", "tests/corpus/native-worker-exit-listeners.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108695,14 +79339,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108732,14 +79368,6 @@ "tests/corpus/native-worker-error.ts", "tests/corpus/native-worker-exit-listeners.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108765,16 +79393,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.getEnvironmentData", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -108800,16 +79418,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.markAsUntransferable", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -108835,14 +79443,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108868,14 +79468,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108901,14 +79493,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108934,14 +79518,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -108967,16 +79543,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.receiveMessageOnPort", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -109002,16 +79568,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.setEnvironmentData", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -109037,14 +79593,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -109074,16 +79622,6 @@ "tests/corpus/native-worker-port-lifetime.ts", "tests/corpus/native-worker-references.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.isMainThread", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -109113,16 +79651,6 @@ "tests/corpus/native-worker-port-lifetime.ts", "tests/corpus/native-worker-references.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.parentPort", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -109148,16 +79676,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.resourceLimits", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -109183,16 +79701,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.SHARE_ENV", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -109222,16 +79730,6 @@ "tests/corpus/native-worker-port-lifetime.ts", "tests/corpus/native-worker-references.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.threadId", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -109257,14 +79755,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -109294,16 +79784,6 @@ "tests/corpus/native-worker-port-lifetime.ts", "tests/corpus/native-worker-references.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:worker_threads.workerData", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] } } }, @@ -109329,14 +79809,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -109362,14 +79834,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -109395,14 +79859,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -109428,14 +79884,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -109461,14 +79909,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -109494,14 +79934,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -109527,14 +79959,6 @@ "confidence": "low", "source": "compiler-unmatched:worker_threads", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:worker_threads", - "tests": [] } } }, @@ -109560,16 +79984,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.BrotliCompress", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -109595,16 +80009,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.BrotliDecompress", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -109630,16 +80034,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.Deflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -109665,16 +80059,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.DeflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -109700,16 +80084,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.Gunzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -109735,16 +80109,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.Gzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -109770,16 +80134,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.Inflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -109805,16 +80159,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.InflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -109840,16 +80184,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.Unzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -109875,14 +80209,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -109908,16 +80234,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:zlib.zlib.close", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -109943,16 +80259,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:zlib.zlib.flush", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -109978,14 +80284,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -110011,16 +80309,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-member:node:zlib.zlib.reset", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110046,14 +80334,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -110079,14 +80359,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -110112,14 +80384,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -110149,14 +80413,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -110182,16 +80438,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.createBrotliCompress", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110217,16 +80463,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.createBrotliDecompress", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110252,16 +80488,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.createDeflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110287,16 +80513,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.createDeflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110322,16 +80538,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.createGunzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110357,16 +80563,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.createGzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110392,16 +80588,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.createInflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110427,16 +80613,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.createInflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110462,16 +80638,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.createUnzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110497,14 +80663,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -110530,14 +80688,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -110563,14 +80713,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -110596,16 +80738,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.zlib.brotliCompressSync", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.brotliCompressSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110631,14 +80763,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -110664,16 +80788,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.zlib.brotliDecompressSync", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.brotliDecompressSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110703,16 +80817,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.deflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110742,16 +80846,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.deflateSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110781,16 +80875,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.deflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110820,16 +80904,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.deflateRawSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110859,16 +80933,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.gunzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110898,16 +80962,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.gunzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110937,16 +80991,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.gzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -110976,16 +81020,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.gzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111015,16 +81049,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.inflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111054,16 +81078,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.inflateSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111093,16 +81107,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.inflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111132,16 +81136,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.inflateRawSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111171,16 +81165,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.unzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111210,16 +81194,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.unzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111245,14 +81219,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -111278,14 +81244,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -111311,14 +81269,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -111344,14 +81294,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -111377,16 +81319,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.constants", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111412,14 +81344,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -111445,14 +81369,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -111478,14 +81394,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -111511,14 +81419,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -111544,16 +81444,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.zlib.brotliCompressSync", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.brotliCompressSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111579,14 +81469,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -111612,16 +81494,6 @@ "confidence": "high", "source": "surface-manifest:unsupported:node-builtin.zlib.brotliDecompressSync", "tests": [] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.brotliDecompressSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111651,16 +81523,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.deflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111690,16 +81552,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.deflateSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111729,16 +81581,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.deflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111768,16 +81610,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.deflateRawSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111807,16 +81639,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.gunzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111846,16 +81668,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.gunzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111885,16 +81697,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.gzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111924,16 +81726,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.gzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -111963,16 +81755,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.inflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -112002,16 +81784,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.inflateSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -112041,16 +81813,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.inflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -112080,16 +81842,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.inflateRawSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -112119,16 +81871,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.unzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -112158,16 +81900,6 @@ "tests/corpus/2921-zlib-callbacks.ts", "tests/corpus/3115-zlib-static-compression-levels.ts" ] - }, - "dynamic": { - "status": "partial", - "action": "audit-partial", - "verification": "test-backed", - "confidence": "high", - "source": "island-export:node:zlib.unzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] } } }, @@ -112193,14 +81925,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -112226,14 +81950,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -112259,14 +81975,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } }, @@ -112292,14 +82000,6 @@ "confidence": "low", "source": "compiler-unmatched:zlib", "tests": [] - }, - "dynamic": { - "status": "not-implemented", - "action": "verify-gap", - "verification": "registry-gap", - "confidence": "low", - "source": "island-unmatched:zlib", - "tests": [] } } } diff --git a/internal/compatibility/generated/node-v24-internal.json b/internal/compatibility/generated/node-v24-internal.json index 4a4faed26..dcda1441d 100644 --- a/internal/compatibility/generated/node-v24-internal.json +++ b/internal/compatibility/generated/node-v24-internal.json @@ -1,5 +1,5 @@ { - "schemaVersion": 4, + "schemaVersion": 5, "nodeVersion": "24.15.0", "nodeTag": "v24.15.0", "nodeCommit": "848430679556aed0bd073f2bc263331ad84fa119", @@ -16,8 +16,7 @@ }, "supportManifests": { "compilerSurface": "packages/compiler/surface-manifest.json", - "compilerDedicated": "internal/compatibility/static-support.json", - "dynamicIsland": "internal/compatibility/dynamic-support.json" + "compilerDedicated": "internal/compatibility/static-support.json" }, "chapters": [ { @@ -33,15 +32,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 20, - "refused": 0, - "not-implemented": 9, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -57,15 +47,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 15, - "refused": 0, - "not-implemented": 2, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -81,15 +62,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 8, - "refused": 0, - "not-implemented": 12, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -105,15 +77,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 76, - "refused": 0, - "not-implemented": 22, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -129,15 +92,6 @@ "by-design": 3, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 3, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -153,15 +107,6 @@ "by-design": 191, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 191, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -177,15 +122,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 1 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 1 } }, { @@ -201,15 +137,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 7, - "not-implemented": 32, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -225,15 +152,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 34, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -249,15 +167,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 1 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 1 } }, { @@ -273,15 +182,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 18, - "refused": 0, - "not-implemented": 6, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -297,15 +197,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 32, - "refused": 30, - "not-implemented": 83, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -321,15 +212,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 1 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 1 } }, { @@ -345,15 +227,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 1 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 1 } }, { @@ -369,15 +242,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 26, - "refused": 0, - "not-implemented": 43, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -393,15 +257,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 12, - "refused": 36, - "not-implemented": 3, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -417,15 +272,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 10, - "refused": 0, - "not-implemented": 2, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -441,15 +287,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 2, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -465,15 +302,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 461, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -489,15 +317,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 26, - "refused": 0, - "not-implemented": 52, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -513,15 +332,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 126, - "refused": 2, - "not-implemented": 148, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -537,15 +347,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 42, - "refused": 0, - "not-implemented": 50, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -561,15 +362,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 22, - "refused": 2, - "not-implemented": 150, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -585,15 +377,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 167, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -609,15 +392,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 7, - "refused": 2, - "not-implemented": 11, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -633,15 +407,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 30, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -657,15 +422,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 1 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 1 } }, { @@ -681,15 +437,6 @@ "by-design": 0, "unreviewed": 2, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 24, - "refused": 0, - "not-implemented": 3, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -705,15 +452,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 13, - "refused": 0, - "not-implemented": 9, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -729,15 +467,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 6, - "refused": 2, - "not-implemented": 22, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -753,15 +482,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 8, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -777,15 +497,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 2, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -801,15 +512,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 4, - "refused": 11, - "not-implemented": 85, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -825,15 +527,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 21, - "refused": 0, - "not-implemented": 3, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -849,15 +542,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 16, - "refused": 0, - "not-implemented": 1, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -873,15 +557,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 16, - "refused": 0, - "not-implemented": 80, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -897,15 +572,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 3, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -921,15 +587,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 31, - "refused": 0, - "not-implemented": 88, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -945,15 +602,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 7, - "refused": 0, - "not-implemented": 2, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -969,15 +617,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 7, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -993,15 +632,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 17, - "refused": 0, - "not-implemented": 26, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1017,15 +647,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 14, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1041,15 +662,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 1, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1065,15 +677,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 9 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 9 } }, { @@ -1089,15 +692,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 48, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1113,15 +707,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 46, - "refused": 1, - "not-implemented": 90, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1137,15 +722,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 4, - "refused": 0, - "not-implemented": 0, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1161,15 +737,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 105, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1185,15 +752,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 22, - "refused": 0, - "not-implemented": 3, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1209,15 +767,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 2, - "refused": 6, - "not-implemented": 56, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1233,15 +782,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 9, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1257,15 +797,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 4, - "refused": 0, - "not-implemented": 14, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1281,15 +812,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 36, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1305,15 +827,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 41, - "refused": 0, - "not-implemented": 21, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1329,15 +842,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 18, - "partial": 71, - "refused": 0, - "not-implemented": 16, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1353,15 +857,6 @@ "by-design": 65, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 10, - "refused": 12, - "not-implemented": 46, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1377,15 +872,6 @@ "by-design": 41, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 41, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1401,15 +887,6 @@ "by-design": 7, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 0, - "refused": 0, - "not-implemented": 0, - "by-design": 7, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1425,15 +902,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 13, - "refused": 0, - "not-implemented": 135, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1449,15 +917,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 53, - "refused": 0, - "not-implemented": 35, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1473,15 +932,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 21, - "refused": 1, - "not-implemented": 44, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } }, { @@ -1497,15 +947,6 @@ "by-design": 0, "unreviewed": 0, "not-applicable": 0 - }, - "dynamic": { - "supported": 0, - "partial": 55, - "refused": 0, - "not-implemented": 23, - "by-design": 0, - "unreviewed": 0, - "not-applicable": 0 } } ], @@ -1543,14 +984,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts", - "tests/fixtures/npm/cases/node24-no-error-assertions/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -1574,10 +1007,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -1601,10 +1030,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -1628,13 +1053,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.assert.AssertionError" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.AssertionError", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -1658,10 +1076,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:assert" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:assert" - }, "anchorSource": "exact" }, { @@ -1685,10 +1099,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:assert" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:assert" - }, "anchorSource": "exact" }, { @@ -1712,10 +1122,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:assert" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:assert" - }, "anchorSource": "exact" }, { @@ -1739,10 +1145,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:assert" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:assert" - }, "anchorSource": "exact" }, { @@ -1766,10 +1168,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:assert" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:assert" - }, "anchorSource": "exact" }, { @@ -1793,10 +1191,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:assert" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:assert" - }, "anchorSource": "exact" }, { @@ -1820,10 +1214,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:assert" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:assert" - }, "anchorSource": "exact" }, { @@ -1854,10 +1244,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:assert" - }, "anchorSource": "exact" }, { @@ -1881,13 +1267,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.assert.deepEqual" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.deepEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -1911,10 +1290,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -1945,13 +1320,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.deepStrictEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -1975,10 +1343,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -2009,13 +1373,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.doesNotMatch", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2046,13 +1403,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:assert.assert.doesNotReject", - "tests": [ - "tests/fixtures/npm/cases/node24-no-error-assertions/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2083,13 +1433,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:assert.assert.doesNotThrow", - "tests": [ - "tests/fixtures/npm/cases/node24-no-error-assertions/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2120,13 +1463,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.equal", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2157,13 +1493,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.fail", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2194,13 +1523,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.fail", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2231,13 +1553,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.ifError", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2268,13 +1583,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.match", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2298,13 +1606,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.assert.notDeepEqual" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.notDeepEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2335,13 +1636,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.notDeepStrictEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2372,13 +1666,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.notEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2409,13 +1696,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.notStrictEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2446,13 +1726,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.ok", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2483,13 +1756,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.rejects", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2520,13 +1786,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.strictEqual", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2557,13 +1816,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:assert.throws", - "tests": [ - "tests/fixtures/npm/cases/assert-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2587,10 +1839,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:assert" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:assert" - }, "anchorSource": "exact" }, { @@ -2614,10 +1862,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -2644,13 +1888,6 @@ "tests/corpus/2213-async-local-storage.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -2674,10 +1911,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -2704,13 +1937,6 @@ "tests/corpus/2213-async-local-storage.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:async_hooks.AsyncLocalStorage", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2734,10 +1960,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_context" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_context" - }, "anchorSource": "exact" }, { @@ -2761,10 +1983,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -2791,13 +2009,6 @@ "tests/corpus/2213-async-local-storage.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:async_hooks.asyncLocalStorage.disable", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2824,13 +2035,6 @@ "tests/corpus/2213-async-local-storage.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:async_hooks.asyncLocalStorage.getStore", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2857,13 +2061,6 @@ "tests/corpus/2213-async-local-storage.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:async_hooks.asyncLocalStorage.enterWith", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2890,13 +2087,6 @@ "tests/corpus/2213-async-local-storage.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:async_hooks.asyncLocalStorage.run", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2923,13 +2113,6 @@ "tests/corpus/2213-async-local-storage.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:async_hooks.asyncLocalStorage.exit", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -2953,10 +2136,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_context" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_context" - }, "anchorSource": "ancestor" }, { @@ -2980,13 +2159,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_context" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:async_hooks.AsyncResource", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3010,13 +2182,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_context" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:async_hooks.AsyncResource", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3040,13 +2205,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_context" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:async_hooks.AsyncResource", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3070,13 +2228,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_context" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:async_hooks.asyncResource.bind", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3100,13 +2251,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_context" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:async_hooks.asyncResource.runInAsyncScope", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3130,13 +2274,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_context" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:async_hooks.asyncResource.emitDestroy", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3160,13 +2297,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_context" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:async_hooks.asyncResource.asyncId", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3190,13 +2320,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_context" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:async_hooks.asyncResource.triggerAsyncId", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3224,13 +2347,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -3254,10 +2370,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -3281,10 +2393,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -3308,10 +2416,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -3335,10 +2439,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -3362,10 +2462,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -3389,13 +2485,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:async_hooks.AsyncResource", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3419,10 +2508,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "exact" }, { @@ -3446,10 +2531,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -3473,10 +2554,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "exact" }, { @@ -3500,10 +2577,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "exact" }, { @@ -3527,13 +2600,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:async_hooks.triggerAsyncId", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3557,10 +2623,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "exact" }, { @@ -3584,10 +2646,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -3614,10 +2672,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "exact" }, { @@ -3644,10 +2698,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "exact" }, { @@ -3671,10 +2721,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "exact" }, { @@ -3698,10 +2744,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "exact" }, { @@ -3725,10 +2767,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "exact" }, { @@ -3752,10 +2790,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "exact" }, { @@ -3779,13 +2813,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:async_hooks.executionAsyncResource", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3809,13 +2836,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:async_hooks.executionAsyncId", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3839,13 +2859,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:async_hooks.triggerAsyncId", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3869,10 +2882,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "ancestor" }, { @@ -3899,13 +2908,6 @@ "tests/corpus/2213-async-local-storage.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:async_hooks.AsyncLocalStorage", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3929,13 +2931,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:async_hooks.createHook", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -3959,10 +2954,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -3986,10 +2977,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:async_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:async_hooks" - }, "anchorSource": "exact" }, { @@ -4020,14 +3007,6 @@ "tests/fixtures/node-types/text-encoding.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts", - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -4051,10 +3030,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -4078,10 +3053,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -4105,10 +3076,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -4132,10 +3099,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -4159,10 +3122,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -4186,10 +3145,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -4213,10 +3168,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "ancestor" }, { @@ -4240,10 +3191,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "ancestor" }, { @@ -4267,13 +3214,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:buffer.SlowBuffer", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4297,13 +3237,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:buffer.atob", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4327,13 +3260,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:buffer.btoa", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4362,13 +3288,6 @@ "tests/fixtures/node-types/text-encoding.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:buffer.buffer.isAscii", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4397,13 +3316,6 @@ "tests/fixtures/node-types/text-encoding.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:buffer.buffer.isUtf8", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4427,13 +3339,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:buffer.resolveObjectURL", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4462,13 +3367,6 @@ "tests/fixtures/node-types/text-encoding.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:buffer.buffer.transcode", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4492,13 +3390,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:buffer.INSPECT_MAX_BYTES", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -4522,13 +3413,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:buffer.kMaxLength", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -4552,13 +3436,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:buffer.kStringMaxLength", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -4582,13 +3459,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.Buffer.from", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4612,10 +3482,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -4639,13 +3505,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.Buffer.allocUnsafe", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4669,13 +3528,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:buffer.Blob", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4699,13 +3551,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:buffer.Blob", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4729,10 +3574,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -4756,10 +3597,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -4783,10 +3620,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -4810,10 +3643,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -4837,10 +3666,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -4864,10 +3689,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -4891,10 +3712,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "ancestor" }, { @@ -4918,13 +3735,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:buffer.Buffer", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4948,13 +3758,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.compare", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -4978,13 +3781,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.copy", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5008,10 +3804,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -5035,13 +3827,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.equals", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5065,13 +3850,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.fill", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5095,13 +3873,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.includes", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5125,13 +3896,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.indexOf", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5155,10 +3919,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -5182,13 +3942,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.lastIndexOf", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5216,13 +3969,6 @@ "tests/corpus/2904-bigint-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readBigInt64BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5250,13 +3996,6 @@ "tests/corpus/2904-bigint-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readBigInt64LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5284,13 +4023,6 @@ "tests/corpus/2904-bigint-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readBigUInt64BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5318,13 +4050,6 @@ "tests/corpus/2904-bigint-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readBigUInt64LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5348,13 +4073,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readDoubleBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5378,13 +4096,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readDoubleLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5408,13 +4119,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readFloatBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5438,13 +4142,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readFloatLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5468,13 +4165,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readInt8", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5498,13 +4188,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readInt16BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5528,13 +4211,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readInt16LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5558,13 +4234,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readInt32BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5588,13 +4257,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readInt32LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5618,13 +4280,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readIntBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5648,13 +4303,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readIntLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5678,13 +4326,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readUInt8", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5708,13 +4349,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readUInt16BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5738,13 +4372,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readUInt16LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5768,13 +4395,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readUInt32BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5798,13 +4418,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readUInt32LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5828,13 +4441,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readUIntBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5858,13 +4464,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.readUIntLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5888,13 +4487,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.subarray", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5918,13 +4510,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.slice", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5948,13 +4533,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.swap16", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -5978,13 +4556,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.swap32", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6008,13 +4579,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.swap64", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6038,13 +4602,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.toJSON", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6068,13 +4625,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.toString", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6098,10 +4648,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -6125,13 +4671,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.write", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6159,13 +4698,6 @@ "tests/corpus/2904-bigint-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeBigInt64BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6193,13 +4725,6 @@ "tests/corpus/2904-bigint-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeBigInt64LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6227,13 +4752,6 @@ "tests/corpus/2904-bigint-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeBigUInt64BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6261,13 +4779,6 @@ "tests/corpus/2904-bigint-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeBigUInt64LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6291,13 +4802,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeDoubleBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6321,13 +4825,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeDoubleLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6351,13 +4848,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeFloatBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6381,13 +4871,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeFloatLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6411,13 +4894,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeInt8", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6441,13 +4917,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeInt16BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6471,13 +4940,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeInt16LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6501,13 +4963,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeInt32BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6531,13 +4986,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeInt32LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6561,13 +5009,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeIntBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6591,13 +5032,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeIntLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6621,13 +5055,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeUInt8", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6651,13 +5078,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeUInt16BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6681,13 +5101,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeUInt16LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6711,13 +5124,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeUInt32BE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6741,13 +5147,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeUInt32LE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6771,13 +5170,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeUIntBE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6801,13 +5193,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:buffer.buf.writeUIntLE", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -6831,10 +5216,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "ancestor" }, { @@ -6858,10 +5239,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "ancestor" }, { @@ -6885,10 +5262,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "ancestor" }, { @@ -6912,10 +5285,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "ancestor" }, { @@ -6939,10 +5308,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "ancestor" }, { @@ -6966,10 +5331,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "exact" }, { @@ -6993,13 +5354,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:buffer.File", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -7023,10 +5377,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "ancestor" }, { @@ -7050,10 +5400,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:buffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:buffer" - }, "anchorSource": "ancestor" }, { @@ -7072,10 +5418,6 @@ "status": "by-design", "evidence": "derived:descendants" }, - "dynamic": { - "status": "by-design", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -7094,10 +5436,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7116,10 +5454,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7138,10 +5472,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7160,10 +5490,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7182,10 +5508,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7204,10 +5526,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:addons" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:addons" - }, "anchorSource": "exact" }, { @@ -7231,10 +5549,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:addons" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:addons" - }, "anchorSource": "exact" }, { @@ -7253,10 +5567,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7280,10 +5590,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7302,10 +5608,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7324,10 +5626,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7346,10 +5644,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7368,10 +5662,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7390,10 +5680,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7412,10 +5698,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7434,10 +5716,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7456,10 +5734,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7483,10 +5757,6 @@ "status": "by-design", "evidence": "derived:descendants" }, - "dynamic": { - "status": "by-design", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -7510,10 +5780,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7537,10 +5803,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7564,10 +5826,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7591,10 +5849,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7618,10 +5872,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7645,10 +5895,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7672,10 +5918,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -7699,10 +5941,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7726,10 +5964,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7753,10 +5987,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7780,10 +6010,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7807,10 +6033,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7834,10 +6056,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7861,10 +6079,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7888,10 +6102,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -7915,10 +6125,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -7942,10 +6148,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -7969,10 +6171,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -7996,10 +6194,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8023,10 +6217,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8050,10 +6240,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8077,10 +6263,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8104,10 +6286,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8131,10 +6309,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8158,10 +6332,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8185,10 +6355,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -8212,10 +6378,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8239,10 +6401,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8266,10 +6424,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8293,10 +6447,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8320,10 +6470,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8347,10 +6493,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -8374,10 +6516,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8401,10 +6539,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8428,10 +6562,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8455,10 +6585,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8482,10 +6608,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8509,10 +6631,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8536,10 +6654,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8563,10 +6677,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8590,10 +6700,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8617,10 +6723,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -8644,10 +6746,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -8671,10 +6769,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8698,10 +6792,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -8725,10 +6815,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8752,10 +6838,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8779,10 +6861,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8806,10 +6884,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8833,10 +6907,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8860,10 +6930,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8887,10 +6953,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8914,10 +6976,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8941,10 +6999,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8968,10 +7022,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -8995,10 +7045,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9022,10 +7068,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9049,10 +7091,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9076,10 +7114,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -9103,10 +7137,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9130,10 +7160,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -9157,10 +7183,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -9184,10 +7206,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9211,10 +7229,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9238,10 +7252,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9265,10 +7275,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9292,10 +7298,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9319,10 +7321,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -9346,10 +7344,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9373,10 +7367,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9400,10 +7390,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9427,10 +7413,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9454,10 +7436,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9481,10 +7459,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -9508,10 +7482,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9535,10 +7505,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9562,10 +7528,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9589,10 +7551,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9616,10 +7574,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -9643,10 +7597,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -9670,10 +7620,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -9697,10 +7643,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -9724,10 +7666,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9751,10 +7689,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9778,10 +7712,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9805,10 +7735,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9832,10 +7758,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9859,10 +7781,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -9886,10 +7804,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9913,10 +7827,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9940,10 +7850,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9967,10 +7873,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -9994,10 +7896,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10021,10 +7919,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10048,10 +7942,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10075,10 +7965,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10102,10 +7988,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10129,10 +8011,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10156,10 +8034,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10183,10 +8057,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10210,10 +8080,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10237,10 +8103,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10264,10 +8126,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10291,10 +8149,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10318,10 +8172,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -10345,10 +8195,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10372,10 +8218,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10399,10 +8241,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10426,10 +8264,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10453,10 +8287,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10480,10 +8310,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10507,10 +8333,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10534,10 +8356,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10561,10 +8379,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10588,10 +8402,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10615,10 +8425,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10642,10 +8448,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10669,10 +8471,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -10696,10 +8494,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10723,10 +8517,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10750,10 +8540,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10777,10 +8563,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -10804,10 +8586,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10831,10 +8609,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10858,10 +8632,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10885,10 +8655,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10912,10 +8678,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10939,10 +8701,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10966,10 +8724,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -10993,10 +8747,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11020,10 +8770,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11047,10 +8793,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11074,10 +8816,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11101,10 +8839,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11128,10 +8862,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11155,10 +8885,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11182,10 +8908,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11209,10 +8931,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11236,10 +8954,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11263,10 +8977,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11290,10 +9000,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11317,10 +9023,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -11344,10 +9046,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11371,10 +9069,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11398,10 +9092,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11425,10 +9115,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11452,10 +9138,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -11479,10 +9161,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11506,10 +9184,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11533,10 +9207,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11560,10 +9230,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11587,10 +9253,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11614,10 +9276,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11641,10 +9299,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11668,10 +9322,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11695,10 +9345,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11722,10 +9368,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11749,10 +9391,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11776,10 +9414,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11803,10 +9437,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11830,10 +9460,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11857,10 +9483,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11884,10 +9506,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11911,10 +9529,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11938,10 +9552,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -11965,10 +9575,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -11992,10 +9598,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -12019,10 +9621,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12046,10 +9644,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12073,10 +9667,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -12100,10 +9690,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12127,10 +9713,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12154,10 +9736,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12181,10 +9759,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12208,10 +9782,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12235,10 +9805,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12262,10 +9828,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12289,10 +9851,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12316,10 +9874,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12343,10 +9897,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12370,10 +9920,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12397,10 +9943,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12424,10 +9966,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12451,10 +9989,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12478,10 +10012,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12505,10 +10035,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12532,10 +10058,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12559,10 +10081,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12586,10 +10104,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -12613,10 +10127,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12640,10 +10150,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12667,10 +10173,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12694,10 +10196,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12721,10 +10219,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12748,10 +10242,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -12775,10 +10265,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12802,10 +10288,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12829,10 +10311,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12856,10 +10334,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12883,10 +10357,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12910,10 +10380,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12937,10 +10403,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12964,10 +10426,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -12991,10 +10449,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13018,10 +10472,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13045,10 +10495,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13072,10 +10518,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13099,10 +10541,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13126,10 +10564,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13153,10 +10587,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13180,10 +10610,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13207,10 +10633,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13234,10 +10656,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13261,10 +10679,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13288,10 +10702,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13315,10 +10725,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13342,10 +10748,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13369,10 +10771,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13396,10 +10794,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13423,10 +10817,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13450,10 +10840,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13477,10 +10863,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13504,10 +10886,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13531,10 +10909,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13558,10 +10932,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13585,10 +10955,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13612,10 +10978,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13639,10 +11001,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13666,10 +11024,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13693,10 +11047,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13720,10 +11070,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13747,10 +11093,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13774,10 +11116,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13801,10 +11139,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13828,10 +11162,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13855,10 +11185,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13882,10 +11208,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13909,10 +11231,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13936,10 +11254,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -13963,10 +11277,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -13990,10 +11300,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:n-api" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:n-api" - }, "anchorSource": "exact" }, { @@ -14012,10 +11318,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:embedding" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:embedding" - }, "anchorSource": "chapter" }, { @@ -14034,10 +11336,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -14056,10 +11354,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -14101,10 +11395,6 @@ "tests/corpus/3132-child-generic-stream-completion.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -14128,10 +11418,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -14155,10 +11441,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14182,10 +11464,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:child_process.exec" - }, "anchorSource": "exact" }, { @@ -14212,10 +11490,6 @@ "tests/corpus/2911-execfile-callback.ts" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:child_process.execFile" - }, "anchorSource": "exact" }, { @@ -14242,10 +11516,6 @@ "tests/corpus/2946-child-fork-ipc/main.ts" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:child_process.fork" - }, "anchorSource": "exact" }, { @@ -14280,10 +11550,6 @@ "tests/corpus/3132-child-generic-stream-completion.ts" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:child_process.spawn" - }, "anchorSource": "exact" }, { @@ -14307,10 +11573,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14334,10 +11596,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14361,10 +11619,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -14399,10 +11653,6 @@ "tests/corpus/3132-child-generic-stream-completion.ts" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:child_process.execFileSync" - }, "anchorSource": "exact" }, { @@ -14437,10 +11687,6 @@ "tests/corpus/3132-child-generic-stream-completion.ts" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:child_process.execSync" - }, "anchorSource": "exact" }, { @@ -14475,10 +11721,6 @@ "tests/corpus/3132-child-generic-stream-completion.ts" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:child_process.spawnSync" - }, "anchorSource": "exact" }, { @@ -14502,10 +11744,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14529,10 +11767,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -14556,10 +11790,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -14583,10 +11813,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -14610,10 +11836,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14640,10 +11862,6 @@ "tests/corpus/2946-child-fork-ipc/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14667,10 +11885,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14697,10 +11911,6 @@ "tests/corpus/2844-node-disposable-resources.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14724,10 +11934,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14754,10 +11960,6 @@ "tests/corpus/2946-child-fork-ipc/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14781,10 +11983,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14808,10 +12006,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -14835,10 +12029,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14862,10 +12052,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -14892,10 +12078,6 @@ "tests/corpus/2946-child-fork-ipc/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -14919,10 +12101,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -14946,10 +12124,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -14973,10 +12147,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -15000,10 +12170,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -15027,10 +12193,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -15054,10 +12216,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -15085,10 +12243,6 @@ "tests/corpus/2939-child-shell-text.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -15120,10 +12274,6 @@ "tests/corpus/2898-child-stdin-spawn-failure.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -15147,10 +12297,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -15178,10 +12324,6 @@ "tests/corpus/2939-child-shell-text.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "ancestor" }, { @@ -15209,10 +12351,6 @@ "tests/corpus/3131-child-rest-listeners.js" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -15239,10 +12377,6 @@ "tests/corpus/2946-child-fork-ipc/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -15266,10 +12400,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -15293,10 +12423,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -15323,10 +12449,6 @@ "tests/corpus/2946-child-fork-ipc/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -15350,10 +12472,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:child_process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:child_process" - }, "anchorSource": "exact" }, { @@ -15380,10 +12498,6 @@ "tests/corpus/957-builtins-namespace.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -15407,10 +12521,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15434,10 +12544,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15461,10 +12567,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15488,10 +12590,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15515,10 +12613,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15542,10 +12636,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15569,10 +12659,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "ancestor" }, { @@ -15596,10 +12682,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "ancestor" }, { @@ -15623,10 +12705,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "ancestor" }, { @@ -15650,10 +12728,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15677,10 +12751,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15704,10 +12774,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15731,10 +12797,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15758,10 +12820,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15785,10 +12843,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15812,10 +12866,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15839,10 +12889,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15866,10 +12912,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15893,10 +12935,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15923,10 +12961,6 @@ "tests/corpus/957-builtins-namespace.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -15953,10 +12987,6 @@ "tests/corpus/957-builtins-namespace.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "chapter" }, { @@ -15983,10 +13013,6 @@ "tests/corpus/957-builtins-namespace.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "chapter" }, { @@ -16010,10 +13036,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -16037,10 +13059,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "chapter" }, { @@ -16064,10 +13082,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "chapter" }, { @@ -16091,10 +13105,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "chapter" }, { @@ -16118,10 +13128,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -16145,10 +13151,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -16172,10 +13174,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -16199,10 +13197,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -16226,10 +13220,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -16253,10 +13243,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -16280,10 +13266,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:cluster" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:cluster" - }, "anchorSource": "exact" }, { @@ -16307,10 +13289,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -16329,10 +13307,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:cli" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:cli" - }, "anchorSource": "chapter" }, { @@ -16351,10 +13325,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16373,10 +13343,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16400,10 +13366,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16427,10 +13389,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16454,10 +13412,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16481,10 +13435,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16508,10 +13458,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16535,10 +13481,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16562,10 +13504,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16589,10 +13527,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16616,10 +13550,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16643,10 +13573,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16670,10 +13596,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16697,10 +13619,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16724,10 +13642,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16751,10 +13665,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16778,10 +13688,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16805,10 +13711,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16832,10 +13734,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16859,10 +13757,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16886,10 +13780,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16913,10 +13803,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16940,10 +13826,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16967,10 +13849,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -16994,10 +13872,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17021,10 +13895,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17048,10 +13918,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17075,10 +13941,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17102,10 +13964,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17129,10 +13987,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17156,10 +14010,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17183,10 +14033,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17210,10 +14056,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17237,10 +14079,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17264,10 +14102,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17291,10 +14125,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17318,10 +14148,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17345,10 +14171,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17372,10 +14194,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17399,10 +14217,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17426,10 +14240,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17453,10 +14263,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17480,10 +14286,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17507,10 +14309,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17534,10 +14332,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17561,10 +14355,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17588,10 +14378,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17615,10 +14401,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17642,10 +14424,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17669,10 +14447,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17696,10 +14470,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17723,10 +14493,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17750,10 +14516,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17777,10 +14539,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17804,10 +14562,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17831,10 +14585,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17858,10 +14608,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17885,10 +14631,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17912,10 +14654,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17939,10 +14677,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17966,10 +14700,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -17993,10 +14723,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18020,10 +14746,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18047,10 +14769,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18074,10 +14792,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18101,10 +14815,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18128,10 +14838,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18155,10 +14861,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18182,10 +14884,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18209,10 +14907,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18236,10 +14930,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18263,10 +14953,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18290,10 +14976,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18317,10 +14999,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18344,10 +15022,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18371,10 +15045,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18398,10 +15068,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18425,10 +15091,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18452,10 +15114,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18479,10 +15137,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18506,10 +15160,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18533,10 +15183,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18560,10 +15206,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18587,10 +15229,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18614,10 +15252,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18641,10 +15275,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18668,10 +15298,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18695,10 +15321,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18722,10 +15344,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18749,10 +15367,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18776,10 +15390,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18803,10 +15413,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18830,10 +15436,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18857,10 +15459,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18884,10 +15482,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18911,10 +15505,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18938,10 +15528,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18965,10 +15551,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -18992,10 +15574,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19019,10 +15597,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19046,10 +15620,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19073,10 +15643,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19100,10 +15666,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19127,10 +15689,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19154,10 +15712,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19181,10 +15735,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19208,10 +15758,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19235,10 +15781,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19262,10 +15804,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19289,10 +15827,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19316,10 +15850,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19343,10 +15873,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19370,10 +15896,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19397,10 +15919,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19424,10 +15942,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19451,10 +15965,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19478,10 +15988,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19505,10 +16011,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19532,10 +16034,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19559,10 +16057,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19586,10 +16080,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19613,10 +16103,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19640,10 +16126,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19667,10 +16149,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19694,10 +16172,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19721,10 +16195,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19748,10 +16218,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19775,10 +16241,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19802,10 +16264,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19829,10 +16287,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19856,10 +16310,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19883,10 +16333,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19910,10 +16356,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19937,10 +16379,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19964,10 +16402,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -19991,10 +16425,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20018,10 +16448,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20045,10 +16471,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20072,10 +16494,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20099,10 +16517,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20126,10 +16540,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20153,10 +16563,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20180,10 +16586,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20207,10 +16609,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20234,10 +16632,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20261,10 +16655,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20288,10 +16678,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20315,10 +16701,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20342,10 +16724,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20369,10 +16747,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20396,10 +16770,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20423,10 +16793,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20450,10 +16816,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20477,10 +16839,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20504,10 +16862,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20531,10 +16885,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20558,10 +16908,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20585,10 +16931,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20612,10 +16954,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20639,10 +16977,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20666,10 +17000,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20693,10 +17023,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20720,10 +17046,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20747,10 +17069,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20774,10 +17092,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20801,10 +17115,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20828,10 +17138,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20855,10 +17161,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20882,10 +17184,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20909,10 +17207,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20936,10 +17230,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20963,10 +17253,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -20990,10 +17276,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21017,10 +17299,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21044,10 +17322,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21071,10 +17345,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21098,10 +17368,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21125,10 +17391,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21152,10 +17414,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21179,10 +17437,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21206,10 +17460,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21233,10 +17483,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21260,10 +17506,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21287,10 +17529,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21314,10 +17552,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21341,10 +17575,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21368,10 +17598,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21395,10 +17621,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21422,10 +17644,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21449,10 +17667,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21476,10 +17690,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21503,10 +17713,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21530,10 +17736,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21557,10 +17759,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21584,10 +17782,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21611,10 +17805,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21638,10 +17828,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21665,10 +17851,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21692,10 +17874,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21719,10 +17897,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21746,10 +17920,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21773,10 +17943,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21800,10 +17966,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21827,10 +17989,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21854,10 +18012,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21881,10 +18035,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21908,10 +18058,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21935,10 +18081,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21962,10 +18104,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -21989,10 +18127,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22016,10 +18150,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22043,10 +18173,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22070,10 +18196,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22097,10 +18219,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22124,10 +18242,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22151,10 +18265,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22178,10 +18288,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22200,10 +18306,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22222,10 +18324,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22244,10 +18342,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22266,10 +18360,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22288,10 +18378,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22310,10 +18396,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22332,10 +18414,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22354,10 +18432,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22376,10 +18450,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22398,10 +18468,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22420,10 +18486,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22442,10 +18504,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22464,10 +18522,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22486,10 +18540,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22508,10 +18558,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22530,10 +18576,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22552,10 +18594,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22574,10 +18612,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22596,10 +18630,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -22630,13 +18660,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -22660,10 +18683,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -22687,10 +18706,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:console" - }, "anchorSource": "exact" }, { @@ -22714,10 +18729,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:console" - }, "anchorSource": "exact" }, { @@ -22741,10 +18752,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:console" - }, "anchorSource": "exact" }, { @@ -22768,13 +18775,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.console.Console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.Console", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -22798,13 +18798,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.assert", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -22828,13 +18821,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.clear", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -22858,13 +18844,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.count", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -22888,13 +18867,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.countReset", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -22925,13 +18897,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.debug", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -22955,13 +18920,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.dir", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -22985,10 +18943,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:console" - }, "anchorSource": "exact" }, { @@ -23019,13 +18973,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.error", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -23049,13 +18996,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.group", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -23079,10 +19019,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:console" - }, "anchorSource": "exact" }, { @@ -23106,13 +19042,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.groupEnd", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -23143,13 +19072,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.info", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -23180,13 +19102,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.log", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -23210,13 +19125,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.table", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -23240,13 +19148,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.time", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -23270,13 +19171,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.timeEnd", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -23300,10 +19194,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:console" - }, "anchorSource": "exact" }, { @@ -23327,13 +19217,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:console" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.trace", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -23364,13 +19247,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:console.warn", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -23405,14 +19281,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -23436,10 +19304,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -23463,10 +19327,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -23490,10 +19350,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -23517,10 +19373,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -23544,10 +19396,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -23571,10 +19419,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -23598,10 +19442,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -23625,10 +19465,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -23652,10 +19488,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -23679,10 +19511,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -23706,10 +19534,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -23733,10 +19557,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -23760,10 +19580,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -23787,10 +19603,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.checkPrime" - }, "anchorSource": "exact" }, { @@ -23814,10 +19626,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.checkPrimeSync" - }, "anchorSource": "exact" }, { @@ -23841,10 +19649,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.createCipheriv" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.createCipheriv" - }, "anchorSource": "exact" }, { @@ -23868,10 +19672,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.createDecipheriv" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.createDecipheriv" - }, "anchorSource": "exact" }, { @@ -23895,10 +19695,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.createDiffieHellman" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.createDiffieHellman" - }, "anchorSource": "exact" }, { @@ -23922,10 +19718,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.createDiffieHellman" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.createDiffieHellman" - }, "anchorSource": "exact" }, { @@ -23949,10 +19741,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.createDiffieHellmanGroup" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -23976,10 +19764,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.createECDH" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.createECDH" - }, "anchorSource": "exact" }, { @@ -24008,14 +19792,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.createHash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24044,14 +19820,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.createHmac", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24075,10 +19843,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.createPrivateKey" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.createPrivateKey" - }, "anchorSource": "exact" }, { @@ -24102,10 +19866,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.createPublicKey" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.createPublicKey" - }, "anchorSource": "exact" }, { @@ -24129,10 +19889,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.createSecretKey" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.createSecretKey" - }, "anchorSource": "exact" }, { @@ -24156,10 +19912,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.createSign" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.createSign" - }, "anchorSource": "exact" }, { @@ -24183,10 +19935,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.createVerify" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.createVerify" - }, "anchorSource": "exact" }, { @@ -24210,10 +19958,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -24237,10 +19981,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.diffieHellman" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.diffieHellman" - }, "anchorSource": "exact" }, { @@ -24264,10 +20004,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -24291,10 +20027,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.generateKey" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.generateKey" - }, "anchorSource": "exact" }, { @@ -24318,10 +20050,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.generateKeyPair" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.generateKeyPair" - }, "anchorSource": "exact" }, { @@ -24345,10 +20073,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.generateKeyPairSync" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.generateKeyPairSync" - }, "anchorSource": "exact" }, { @@ -24372,10 +20096,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.generateKeySync" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.generateKeySync" - }, "anchorSource": "exact" }, { @@ -24399,10 +20119,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.generatePrime" - }, "anchorSource": "exact" }, { @@ -24426,10 +20142,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.generatePrimeSync" - }, "anchorSource": "exact" }, { @@ -24453,10 +20165,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.getCipherInfo" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -24480,14 +20188,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.getCiphers", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24511,14 +20211,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.getCurves", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24542,10 +20234,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.getDiffieHellman" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -24569,14 +20257,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.getFips", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24600,14 +20280,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.getHashes", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24631,14 +20303,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.getRandomValues", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24667,14 +20331,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24703,14 +20359,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hkdf", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24739,14 +20387,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hkdfSync", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24775,14 +20415,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.pbkdf2", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24811,14 +20443,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.pbkdf2Sync", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24842,10 +20466,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.privateDecrypt" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.privateDecrypt" - }, "anchorSource": "exact" }, { @@ -24869,10 +20489,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.privateEncrypt" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.privateEncrypt" - }, "anchorSource": "exact" }, { @@ -24896,10 +20512,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.publicDecrypt" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.publicDecrypt" - }, "anchorSource": "exact" }, { @@ -24923,10 +20535,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.publicEncrypt" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.publicEncrypt" - }, "anchorSource": "exact" }, { @@ -24961,14 +20569,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.randomBytes", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -24992,14 +20592,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.randomFill", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -25028,14 +20620,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.randomFillSync", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -25064,14 +20648,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.randomInt", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -25106,14 +20682,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.randomUUID", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -25142,14 +20710,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.scrypt", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -25178,14 +20738,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.scryptSync", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -25209,10 +20761,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.secureHeapUsed" - }, "anchorSource": "exact" }, { @@ -25236,10 +20784,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.setEngine" - }, "anchorSource": "exact" }, { @@ -25263,14 +20807,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.setFips" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.setFips", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -25294,10 +20830,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.sign" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.sign" - }, "anchorSource": "exact" }, { @@ -25326,14 +20858,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.timingSafeEqual", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -25357,10 +20881,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.verify" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.verify" - }, "anchorSource": "exact" }, { @@ -25384,14 +20904,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.constants", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -25415,10 +20927,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -25442,14 +20950,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.subtle", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -25473,14 +20973,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.crypto.webcrypto" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.webcrypto", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -25504,10 +20996,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25531,10 +21019,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25558,10 +21042,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25585,10 +21065,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25612,10 +21088,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25639,10 +21111,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25666,10 +21134,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25693,10 +21157,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25720,10 +21180,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25747,10 +21203,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25774,10 +21226,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25801,10 +21249,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.Certificate" - }, "anchorSource": "exact" }, { @@ -25828,10 +21272,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -25855,10 +21295,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -25882,10 +21318,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -25909,10 +21341,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -25936,10 +21364,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -25963,10 +21387,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -25990,10 +21410,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26017,10 +21433,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26044,10 +21456,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26071,10 +21479,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26098,10 +21502,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26125,10 +21525,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26152,10 +21548,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26179,10 +21571,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26206,10 +21594,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26233,10 +21617,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26260,10 +21640,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26287,10 +21663,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26314,10 +21686,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26341,10 +21709,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26368,10 +21732,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26395,10 +21755,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26422,10 +21778,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26449,10 +21801,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26476,10 +21824,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26503,10 +21847,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26530,10 +21870,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26557,10 +21893,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26584,10 +21916,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26611,10 +21939,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26638,10 +21962,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26665,10 +21985,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26692,10 +22008,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26719,10 +22031,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -26751,14 +22059,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.Hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -26787,14 +22087,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:crypto.hash.copy", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -26823,14 +22115,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:crypto.hash.digest", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -26859,14 +22143,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:crypto.hash.update", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -26895,14 +22171,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.Hmac", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -26931,14 +22199,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:crypto.hmac.digest", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -26967,14 +22227,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:crypto.hmac.update", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -26998,10 +22250,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.KeyObject" - }, "anchorSource": "exact" }, { @@ -27025,10 +22273,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27052,10 +22296,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27079,10 +22319,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27106,10 +22342,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27133,10 +22365,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27160,10 +22388,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27187,10 +22411,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27214,10 +22434,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27241,10 +22457,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27268,10 +22480,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27295,10 +22503,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27322,10 +22526,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27349,10 +22549,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27376,10 +22572,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:crypto.X509Certificate" - }, "anchorSource": "exact" }, { @@ -27403,10 +22595,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27430,10 +22618,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27457,10 +22641,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27484,10 +22664,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27511,10 +22687,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27538,10 +22710,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27565,10 +22733,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27592,10 +22756,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27619,10 +22779,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "exact" }, { @@ -27646,10 +22802,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27673,10 +22825,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27700,10 +22848,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27727,10 +22871,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27754,10 +22894,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27781,10 +22917,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27808,10 +22940,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27835,10 +22963,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27862,10 +22986,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27889,10 +23009,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27916,10 +23032,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27943,10 +23055,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27970,10 +23078,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -27997,10 +23101,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -28024,10 +23124,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -28051,10 +23147,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -28078,10 +23170,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -28105,10 +23193,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -28132,10 +23216,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:crypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:crypto" - }, "anchorSource": "ancestor" }, { @@ -28159,10 +23239,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:debugger" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:debugger" - }, "anchorSource": "chapter" }, { @@ -28186,10 +23262,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -28213,10 +23285,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -28240,10 +23308,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -28267,10 +23331,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -28294,10 +23354,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -28321,10 +23377,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -28348,10 +23400,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -28375,10 +23423,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -28402,10 +23446,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -28424,10 +23464,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "chapter" }, { @@ -28446,10 +23482,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28468,10 +23500,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28490,10 +23518,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28512,10 +23536,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28534,10 +23554,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28556,10 +23572,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28578,10 +23590,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28600,10 +23608,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28622,10 +23626,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28644,10 +23644,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28671,10 +23667,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28693,10 +23685,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28715,10 +23703,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28737,10 +23721,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28759,10 +23739,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28781,10 +23757,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28809,10 +23781,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28831,10 +23799,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28853,10 +23817,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28875,10 +23835,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28897,10 +23853,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28919,10 +23871,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28941,10 +23889,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28963,10 +23907,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -28985,10 +23925,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29007,10 +23943,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29029,10 +23961,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29051,10 +23979,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29073,10 +23997,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29095,10 +24015,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29117,10 +24033,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29139,10 +24051,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29161,10 +24069,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29183,10 +24087,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29205,10 +24105,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29227,10 +24123,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29249,10 +24141,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29271,10 +24159,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29293,10 +24177,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29315,10 +24195,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29337,10 +24213,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29359,10 +24231,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29381,10 +24249,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29403,10 +24267,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29425,10 +24285,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29447,10 +24303,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29469,10 +24321,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29491,10 +24339,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29513,10 +24357,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29535,10 +24375,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29557,10 +24393,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29579,10 +24411,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29601,10 +24429,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29623,10 +24447,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29645,10 +24465,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29667,10 +24483,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29689,10 +24501,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29711,10 +24519,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29733,10 +24537,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29755,10 +24555,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29777,10 +24573,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29799,10 +24591,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29821,10 +24609,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29843,10 +24627,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29865,10 +24645,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29887,10 +24663,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29909,10 +24681,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29931,10 +24699,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29953,10 +24717,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29975,10 +24735,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -29997,10 +24753,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30019,10 +24771,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30041,10 +24789,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30063,10 +24807,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30085,10 +24825,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30107,10 +24843,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30129,10 +24861,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30151,10 +24879,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30173,10 +24897,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30195,10 +24915,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30217,10 +24933,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30239,10 +24951,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30261,10 +24969,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30283,10 +24987,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30305,10 +25005,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30327,10 +25023,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30349,10 +25041,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30371,10 +25059,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30393,10 +25077,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30415,10 +25095,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30437,10 +25113,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30459,10 +25131,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30481,10 +25149,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30510,10 +25174,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30532,10 +25192,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30554,10 +25210,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30576,10 +25228,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30598,10 +25246,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30620,10 +25264,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30642,10 +25282,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30664,10 +25300,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -30686,10 +25318,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30708,10 +25336,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30734,10 +25358,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30756,10 +25376,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30778,10 +25394,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30800,10 +25412,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30822,10 +25430,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30844,10 +25448,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30866,10 +25466,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30888,10 +25484,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30910,10 +25502,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30932,10 +25520,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30954,10 +25538,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30976,10 +25556,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -30998,10 +25574,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31020,10 +25592,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31042,10 +25610,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31064,10 +25628,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31086,10 +25646,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31108,10 +25664,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31130,10 +25682,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31152,10 +25700,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31174,10 +25718,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31196,10 +25736,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31218,10 +25754,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31240,10 +25772,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31262,10 +25790,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31284,10 +25808,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31306,10 +25826,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31328,10 +25844,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31350,10 +25862,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31372,10 +25880,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31394,10 +25898,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31416,10 +25916,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31438,10 +25934,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31460,10 +25952,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31482,10 +25970,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31508,10 +25992,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31535,10 +26015,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31557,10 +26033,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31579,10 +26051,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31601,10 +26069,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31623,10 +26087,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31645,10 +26105,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31667,10 +26123,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31689,10 +26141,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31711,10 +26159,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31733,10 +26177,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31755,10 +26195,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31777,10 +26213,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31799,10 +26231,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31821,10 +26249,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31843,10 +26267,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31865,10 +26285,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31887,10 +26303,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31909,10 +26321,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31931,10 +26339,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31953,10 +26357,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31975,10 +26375,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -31997,10 +26393,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32019,10 +26411,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32041,10 +26429,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32067,10 +26451,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32089,10 +26469,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -32111,10 +26487,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32133,10 +26505,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32155,10 +26523,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32177,10 +26541,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32199,10 +26559,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32221,10 +26577,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32243,10 +26595,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32265,10 +26613,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32287,10 +26631,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32309,10 +26649,6 @@ "status": "not-applicable", "evidence": "compiler-feature:deprecations.util.toUSVString" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32331,10 +26667,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32353,10 +26685,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32375,10 +26703,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32402,10 +26726,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32424,10 +26744,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32451,10 +26767,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32473,10 +26785,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32495,10 +26803,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32517,10 +26821,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32539,10 +26839,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32567,10 +26863,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32589,10 +26881,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32611,10 +26899,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32633,10 +26917,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32655,10 +26935,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32677,10 +26953,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32699,10 +26971,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32721,10 +26989,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32743,10 +27007,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32765,10 +27025,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32787,10 +27043,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32809,10 +27061,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32831,10 +27079,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32853,10 +27097,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32875,10 +27115,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32897,10 +27133,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32919,10 +27151,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32941,10 +27169,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32963,10 +27187,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:deprecations" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:deprecations" - }, "anchorSource": "exact" }, { @@ -32993,17 +27213,6 @@ "tests/corpus/2214-dc-bind-store.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -33027,10 +27236,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -33054,10 +27259,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -33084,17 +27285,6 @@ "tests/corpus/2214-dc-bind-store.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:diagnostics_channel.hasSubscribers", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -33121,17 +27311,6 @@ "tests/corpus/2214-dc-bind-store.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:diagnostics_channel.channel", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -33158,17 +27337,6 @@ "tests/corpus/2214-dc-bind-store.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:diagnostics_channel.subscribe", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -33195,17 +27363,6 @@ "tests/corpus/2214-dc-bind-store.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:diagnostics_channel.unsubscribe", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -33232,17 +27389,6 @@ "tests/corpus/2214-dc-bind-store.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:diagnostics_channel.tracingChannel", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -33266,10 +27412,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -33293,16 +27435,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.start", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -33326,16 +27458,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.end", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -33359,16 +27481,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.asyncStart", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -33392,16 +27504,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.asyncEnd", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -33425,16 +27527,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.error", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -33458,10 +27550,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -33485,10 +27573,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -33512,10 +27596,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33539,10 +27619,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33566,10 +27642,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33593,10 +27665,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33620,10 +27688,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33647,10 +27711,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -33674,10 +27734,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33701,10 +27757,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33728,10 +27780,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33755,10 +27803,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33782,10 +27826,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33809,10 +27849,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33836,10 +27872,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33863,10 +27895,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -33890,10 +27918,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33917,10 +27941,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33944,10 +27964,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33971,10 +27987,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -33998,10 +28010,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34025,10 +28033,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34052,10 +28056,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34079,10 +28079,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34106,10 +28102,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34133,10 +28125,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34160,10 +28148,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34187,10 +28171,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34214,10 +28194,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -34241,10 +28217,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34268,10 +28240,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34295,10 +28263,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34322,10 +28286,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34349,10 +28309,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34376,10 +28332,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34403,10 +28355,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -34430,10 +28378,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34457,10 +28401,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34484,10 +28424,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34511,10 +28447,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34538,10 +28470,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34565,10 +28493,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -34592,10 +28516,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34619,10 +28539,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -34646,10 +28562,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34673,10 +28585,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34700,10 +28608,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -34727,10 +28631,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34754,10 +28654,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34781,10 +28677,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34808,10 +28700,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34835,10 +28723,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -34862,10 +28746,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:diagnostics_channel" - }, "anchorSource": "exact" }, { @@ -34889,17 +28769,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:diagnostics_channel.Channel", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -34923,17 +28792,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:diagnostics_channel.channel.publish", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -34957,17 +28815,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:diagnostics_channel.channel.subscribe", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -34991,17 +28838,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:diagnostics_channel.channel.unsubscribe", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35025,16 +28861,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.channel.bindStore", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35058,16 +28884,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.channel.unbindStore", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35091,16 +28907,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.channel.runStores", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35127,17 +28933,6 @@ "tests/corpus/2214-dc-bind-store.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:diagnostics_channel.hasSubscribers", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -35161,16 +28956,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.TracingChannel", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35194,16 +28979,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.tracingChannel.subscribe", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35227,16 +29002,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.tracingChannel.unsubscribe", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35260,16 +29025,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.tracingChannel.traceSync", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35293,16 +29048,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.tracingChannel.tracePromise", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35326,16 +29071,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:diagnostics_channel" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:diagnostics_channel.tracingChannel.traceCallback", - "tests": [ - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35362,17 +29097,6 @@ "tests/corpus/2214-dc-bind-store.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:diagnostics_channel.hasSubscribers", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-tracing/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-async/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-subscriber-throw/main.ts", - "tests/fixtures/npm/cases/node24-diagnostics-transform-throw/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -35396,13 +29120,6 @@ "status": "not-implemented", "evidence": "derived:descendants" }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -35426,10 +29143,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -35453,13 +29166,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:dns/promises.Resolver", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35483,10 +29189,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:dns" - }, "anchorSource": "exact" }, { @@ -35510,13 +29212,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:dns/promises.getServers", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -35540,10 +29235,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.lookup" - }, "anchorSource": "exact" }, { @@ -35567,10 +29258,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.lookupService" - }, "anchorSource": "exact" }, { @@ -35594,10 +29281,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolve" - }, "anchorSource": "exact" }, { @@ -35621,10 +29304,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolve4" - }, "anchorSource": "exact" }, { @@ -35648,10 +29327,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolve6" - }, "anchorSource": "exact" }, { @@ -35675,10 +29350,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolveAny" - }, "anchorSource": "exact" }, { @@ -35702,10 +29373,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolveCaa" - }, "anchorSource": "exact" }, { @@ -35729,10 +29396,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolveCname" - }, "anchorSource": "exact" }, { @@ -35756,10 +29419,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolveMx" - }, "anchorSource": "exact" }, { @@ -35783,10 +29442,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolveNaptr" - }, "anchorSource": "exact" }, { @@ -35810,10 +29465,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolveNs" - }, "anchorSource": "exact" }, { @@ -35837,10 +29488,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolvePtr" - }, "anchorSource": "exact" }, { @@ -35864,10 +29511,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolveSoa" - }, "anchorSource": "exact" }, { @@ -35891,10 +29534,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolveSrv" - }, "anchorSource": "exact" }, { @@ -35918,10 +29557,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolveTlsa" - }, "anchorSource": "exact" }, { @@ -35945,10 +29580,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.resolveTxt" - }, "anchorSource": "exact" }, { @@ -35972,10 +29603,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns/promises.reverse" - }, "anchorSource": "exact" }, { @@ -35999,13 +29626,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:dns/promises.setDefaultResultOrder", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -36029,13 +29649,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:dns/promises.getDefaultResultOrder", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -36059,13 +29672,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:dns/promises.setServers", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -36089,10 +29695,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -36116,10 +29718,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -36143,10 +29741,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolve" - }, "anchorSource": "exact" }, { @@ -36170,10 +29764,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.lookup" - }, "anchorSource": "exact" }, { @@ -36197,13 +29787,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:dns.Resolver", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -36227,13 +29810,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:dns.Resolver", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -36257,10 +29833,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:dns" - }, "anchorSource": "exact" }, { @@ -36284,10 +29856,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:dns" - }, "anchorSource": "exact" }, { @@ -36311,13 +29879,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:dns.getServers", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -36341,10 +29902,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.lookup" - }, "anchorSource": "exact" }, { @@ -36368,10 +29925,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -36395,10 +29948,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.lookupService" - }, "anchorSource": "exact" }, { @@ -36422,10 +29971,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolve" - }, "anchorSource": "exact" }, { @@ -36449,10 +29994,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolve4" - }, "anchorSource": "exact" }, { @@ -36476,10 +30017,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolve6" - }, "anchorSource": "exact" }, { @@ -36503,10 +30040,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolveAny" - }, "anchorSource": "exact" }, { @@ -36530,10 +30063,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolveCname" - }, "anchorSource": "exact" }, { @@ -36557,10 +30086,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolveCaa" - }, "anchorSource": "exact" }, { @@ -36584,10 +30109,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolveMx" - }, "anchorSource": "exact" }, { @@ -36611,10 +30132,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolveNaptr" - }, "anchorSource": "exact" }, { @@ -36638,10 +30155,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolveNs" - }, "anchorSource": "exact" }, { @@ -36665,10 +30178,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolvePtr" - }, "anchorSource": "exact" }, { @@ -36692,10 +30201,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolveSoa" - }, "anchorSource": "exact" }, { @@ -36719,10 +30224,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolveSrv" - }, "anchorSource": "exact" }, { @@ -36746,10 +30247,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolveTlsa" - }, "anchorSource": "exact" }, { @@ -36773,10 +30270,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.resolveTxt" - }, "anchorSource": "exact" }, { @@ -36800,10 +30293,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:dns.reverse" - }, "anchorSource": "exact" }, { @@ -36827,13 +30316,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:dns.setDefaultResultOrder", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -36857,13 +30339,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:dns.getDefaultResultOrder", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -36887,13 +30362,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dns" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:dns.setServers", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -36917,13 +30385,6 @@ "status": "not-implemented", "evidence": "derived:descendants" }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -36947,10 +30408,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -36974,13 +30431,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:domain" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:domain.Domain", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -37004,13 +30454,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:domain" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:domain.domain.add", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -37034,13 +30477,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:domain" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:domain.domain.bind", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -37064,13 +30500,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:domain" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:domain.domain.enter", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -37094,13 +30523,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:domain" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:domain.domain.exit", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -37124,13 +30546,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:domain" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:domain.domain.intercept", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -37154,13 +30569,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:domain" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:domain.domain.remove", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -37184,13 +30592,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:domain" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:domain.domain.run", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -37214,10 +30615,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:domain" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:domain" - }, "anchorSource": "ancestor" }, { @@ -37241,13 +30638,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:domain" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:domain.create", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -37271,10 +30661,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37298,10 +30684,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:domain" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:domain" - }, "anchorSource": "exact" }, { @@ -37325,10 +30707,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37352,10 +30730,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37378,14 +30752,6 @@ "tests/corpus/990-process-basics.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/node24-env/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -37404,10 +30770,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37431,10 +30793,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37458,10 +30816,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37485,10 +30839,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37512,10 +30862,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37539,10 +30885,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37566,10 +30908,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37593,10 +30931,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -37620,10 +30954,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37647,10 +30977,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -37673,14 +30999,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:environment_variables.process.env", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/node24-env/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -37706,10 +31024,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -37728,10 +31042,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -37750,10 +31060,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -37775,10 +31081,6 @@ "tests/corpus/error-stack-limit.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -37797,10 +31099,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -37819,10 +31117,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -37841,10 +31135,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -37867,10 +31157,6 @@ "tests/corpus/error-stack-limit.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -37889,10 +31175,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -37911,10 +31193,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -37933,10 +31211,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -37955,10 +31229,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -37977,10 +31247,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -37999,10 +31265,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -38021,10 +31283,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -38048,10 +31306,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -38075,10 +31329,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -38102,10 +31352,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -38124,10 +31370,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -38146,10 +31388,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -38173,10 +31411,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -38195,10 +31429,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -38222,10 +31452,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "ancestor" }, { @@ -38244,10 +31470,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38266,10 +31488,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -38288,10 +31506,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -38310,10 +31524,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -38332,10 +31542,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38354,10 +31560,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38376,10 +31578,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38398,10 +31596,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38420,10 +31614,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -38442,10 +31632,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38464,10 +31650,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38486,10 +31668,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38508,10 +31686,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38530,10 +31704,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38552,10 +31722,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38574,10 +31740,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38596,10 +31758,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38618,10 +31776,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38640,10 +31794,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38662,10 +31812,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38684,10 +31830,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38706,10 +31848,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38728,10 +31866,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38750,10 +31884,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38772,10 +31902,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38794,10 +31920,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38816,10 +31938,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38838,10 +31956,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38860,10 +31974,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38882,10 +31992,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38904,10 +32010,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38926,10 +32028,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38948,10 +32046,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38970,10 +32064,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -38992,10 +32082,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39014,10 +32100,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39036,10 +32118,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39058,10 +32136,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39080,10 +32154,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39102,10 +32172,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39124,10 +32190,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39146,10 +32208,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39168,10 +32226,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39190,10 +32244,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39212,10 +32262,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39234,10 +32280,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39256,10 +32298,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39278,10 +32316,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39300,10 +32334,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39322,10 +32352,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39344,10 +32370,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39366,10 +32388,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39388,10 +32406,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39410,10 +32424,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39432,10 +32442,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39454,10 +32460,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39476,10 +32478,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39498,10 +32496,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39520,10 +32514,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39542,10 +32532,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39564,10 +32550,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39586,10 +32568,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39608,10 +32586,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39630,10 +32604,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39652,10 +32622,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39674,10 +32640,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39696,10 +32658,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39718,10 +32676,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39740,10 +32694,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39762,10 +32712,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39784,10 +32730,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39806,10 +32748,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39828,10 +32766,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39850,10 +32784,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39872,10 +32802,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39894,10 +32820,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39916,10 +32838,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39938,10 +32856,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39960,10 +32874,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -39982,10 +32892,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40004,10 +32910,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40026,10 +32928,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40048,10 +32946,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40070,10 +32964,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40092,10 +32982,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40114,10 +33000,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40136,10 +33018,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40158,10 +33036,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40180,10 +33054,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40202,10 +33072,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40224,10 +33090,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40246,10 +33108,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40268,10 +33126,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40290,10 +33144,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40312,10 +33162,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40334,10 +33180,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40356,10 +33198,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40378,10 +33216,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40400,10 +33234,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40422,10 +33252,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40444,10 +33270,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40466,10 +33288,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40488,10 +33306,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40510,10 +33324,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40532,10 +33342,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40554,10 +33360,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40576,10 +33378,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40598,10 +33396,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40620,10 +33414,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40642,10 +33432,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40664,10 +33450,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40686,10 +33468,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40708,10 +33486,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40730,10 +33504,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40752,10 +33522,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40774,10 +33540,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40796,10 +33558,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40818,10 +33576,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40840,10 +33594,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40862,10 +33612,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40884,10 +33630,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40906,10 +33648,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40928,10 +33666,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40950,10 +33684,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40972,10 +33702,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -40994,10 +33720,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41016,10 +33738,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41038,10 +33756,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41060,10 +33774,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41082,10 +33792,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41104,10 +33810,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41126,10 +33828,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41148,10 +33846,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41170,10 +33864,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41192,10 +33882,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41214,10 +33900,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41236,10 +33918,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41258,10 +33936,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41280,10 +33954,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41302,10 +33972,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41324,10 +33990,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41346,10 +34008,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41368,10 +34026,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41390,10 +34044,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41412,10 +34062,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41434,10 +34080,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41456,10 +34098,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41478,10 +34116,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41500,10 +34134,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41522,10 +34152,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41544,10 +34170,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41566,10 +34188,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41588,10 +34206,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41610,10 +34224,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41632,10 +34242,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41654,10 +34260,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41676,10 +34278,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41698,10 +34296,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41720,10 +34314,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41742,10 +34332,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41764,10 +34350,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41786,10 +34368,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41808,10 +34386,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41830,10 +34404,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41852,10 +34422,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41874,10 +34440,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41896,10 +34458,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41918,10 +34476,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41940,10 +34494,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41962,10 +34512,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -41984,10 +34530,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42006,10 +34548,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42028,10 +34566,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42050,10 +34584,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42072,10 +34602,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42094,10 +34620,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42116,10 +34638,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42138,10 +34656,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42160,10 +34674,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42182,10 +34692,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42204,10 +34710,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42226,10 +34728,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42248,10 +34746,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42270,10 +34764,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42292,10 +34782,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42314,10 +34800,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42336,10 +34818,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42358,10 +34836,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42380,10 +34854,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42402,10 +34872,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42424,10 +34890,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42446,10 +34908,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42468,10 +34926,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42490,10 +34944,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42512,10 +34962,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42534,10 +34980,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42556,10 +34998,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42578,10 +35016,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42600,10 +35034,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42622,10 +35052,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42644,10 +35070,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42666,10 +35088,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42688,10 +35106,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42710,10 +35124,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42732,10 +35142,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42754,10 +35160,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42776,10 +35178,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42798,10 +35196,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42820,10 +35214,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42842,10 +35232,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42864,10 +35250,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42886,10 +35268,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42908,10 +35286,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42930,10 +35304,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42952,10 +35322,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42974,10 +35340,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -42996,10 +35358,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43018,10 +35376,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43040,10 +35394,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43062,10 +35412,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43084,10 +35430,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43106,10 +35448,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43128,10 +35466,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43150,10 +35484,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43172,10 +35502,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43194,10 +35520,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43216,10 +35538,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43238,10 +35556,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43260,10 +35574,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43282,10 +35592,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43304,10 +35610,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43326,10 +35628,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43348,10 +35646,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43370,10 +35664,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43392,10 +35682,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43414,10 +35700,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43436,10 +35718,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43458,10 +35736,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43480,10 +35754,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43502,10 +35772,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43524,10 +35790,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43546,10 +35808,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43568,10 +35826,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43590,10 +35844,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43612,10 +35862,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43634,10 +35880,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43656,10 +35898,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43678,10 +35916,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43700,10 +35934,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43722,10 +35952,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43749,10 +35975,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43776,10 +35998,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43803,10 +36021,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43830,10 +36044,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43857,10 +36067,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43884,10 +36090,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43906,10 +36108,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43928,10 +36126,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43955,10 +36149,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43977,10 +36167,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -43999,10 +36185,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44021,10 +36203,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44043,10 +36221,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44065,10 +36239,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44087,10 +36257,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44109,10 +36275,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44131,10 +36293,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44153,10 +36311,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44175,10 +36329,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44197,10 +36347,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44219,10 +36365,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44241,10 +36383,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44263,10 +36401,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44285,10 +36419,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44307,10 +36437,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44329,10 +36455,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44351,10 +36473,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44373,10 +36491,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44395,10 +36509,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44417,10 +36527,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44439,10 +36545,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44461,10 +36563,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44483,10 +36581,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44505,10 +36599,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44527,10 +36617,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44549,10 +36635,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44571,10 +36653,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44593,10 +36671,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44615,10 +36689,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44637,10 +36707,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44659,10 +36725,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44681,10 +36743,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44703,10 +36761,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44725,10 +36779,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44747,10 +36797,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44769,10 +36815,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44791,10 +36833,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44813,10 +36851,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44835,10 +36869,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44857,10 +36887,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44879,10 +36905,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44901,10 +36923,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44923,10 +36941,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44945,10 +36959,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44967,10 +36977,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -44989,10 +36995,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45011,10 +37013,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45033,10 +37031,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45055,10 +37049,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45077,10 +37067,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45099,10 +37085,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45121,10 +37103,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45143,10 +37121,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45165,10 +37139,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45187,10 +37157,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45209,10 +37175,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45231,10 +37193,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45253,10 +37211,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45275,10 +37229,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45297,10 +37247,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45319,10 +37265,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45341,10 +37283,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45363,10 +37301,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45385,10 +37319,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45407,10 +37337,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45429,10 +37355,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45451,10 +37373,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45473,10 +37391,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45495,10 +37409,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45517,10 +37427,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45539,10 +37445,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45561,10 +37463,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45583,10 +37481,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45605,10 +37499,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45627,10 +37517,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45649,10 +37535,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45671,10 +37553,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45693,10 +37571,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45715,10 +37589,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45737,10 +37607,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45759,10 +37625,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45781,10 +37643,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45803,10 +37661,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45825,10 +37679,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45847,10 +37697,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45869,10 +37715,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45891,10 +37733,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45913,10 +37751,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45940,10 +37774,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45967,10 +37797,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -45994,10 +37820,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46021,10 +37843,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46043,10 +37861,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46065,10 +37879,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46087,10 +37897,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46109,10 +37915,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46131,10 +37933,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46153,10 +37951,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46175,10 +37969,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46197,10 +37987,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46219,10 +38005,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46241,10 +38023,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46263,10 +38041,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46290,10 +38064,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -46317,10 +38087,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46344,10 +38110,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46371,10 +38133,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46398,10 +38156,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46425,10 +38179,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46452,10 +38202,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46479,10 +38225,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46506,10 +38248,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46533,10 +38271,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46560,10 +38294,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46587,10 +38317,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46614,10 +38340,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46641,10 +38363,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46668,10 +38386,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46695,10 +38409,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46722,10 +38432,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46749,10 +38455,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46776,10 +38478,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46803,10 +38501,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46830,10 +38524,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46857,10 +38547,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46884,10 +38570,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46911,10 +38593,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46938,10 +38616,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46965,10 +38639,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -46992,10 +38662,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47019,10 +38685,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47046,10 +38708,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47073,10 +38731,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47100,10 +38754,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47127,10 +38777,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47154,10 +38800,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47181,10 +38823,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47208,10 +38846,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47235,10 +38869,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47262,10 +38892,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47289,10 +38915,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47316,10 +38938,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47343,10 +38961,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47370,10 +38984,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47397,10 +39007,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47424,10 +39030,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47451,10 +39053,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47478,10 +39076,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47505,10 +39099,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47532,10 +39122,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47559,10 +39145,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47586,10 +39168,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47613,10 +39191,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47640,10 +39214,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47667,10 +39237,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47694,10 +39260,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47716,10 +39278,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -47738,10 +39296,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -47760,10 +39314,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47782,10 +39332,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47804,10 +39350,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47826,10 +39368,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47848,10 +39386,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47870,10 +39404,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -47892,10 +39422,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47914,10 +39440,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47936,10 +39458,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47958,10 +39476,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -47980,10 +39494,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48002,10 +39512,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48024,10 +39530,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48046,10 +39548,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48068,10 +39566,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -48090,10 +39584,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48112,10 +39602,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48134,10 +39620,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -48156,10 +39638,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48178,10 +39656,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -48200,10 +39674,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48222,10 +39692,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48244,10 +39710,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -48266,10 +39728,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48288,10 +39746,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48310,10 +39764,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48332,10 +39782,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48354,10 +39800,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48376,10 +39818,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48398,10 +39836,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48420,10 +39854,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48442,10 +39872,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48464,10 +39890,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -48486,10 +39908,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:errors" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:errors" - }, "anchorSource": "exact" }, { @@ -48517,15 +39935,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/node24-async-events/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts", - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -48549,10 +39958,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -48576,10 +39981,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -48603,10 +40004,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -48630,10 +40027,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -48657,10 +40050,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -48684,10 +40073,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -48711,10 +40096,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -48738,10 +40119,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -48765,10 +40142,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -48792,10 +40165,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -48819,10 +40188,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -48846,10 +40211,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -48873,10 +40234,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -48900,10 +40257,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -48927,10 +40280,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -48954,10 +40303,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -48981,10 +40326,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49008,10 +40349,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49035,10 +40372,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49062,10 +40395,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49089,10 +40418,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49116,10 +40441,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49143,10 +40464,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49170,10 +40487,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49197,10 +40510,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49224,10 +40533,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49251,10 +40556,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49278,10 +40579,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49305,10 +40602,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49332,10 +40625,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49359,10 +40648,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49386,10 +40671,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49413,10 +40694,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49440,10 +40717,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49467,10 +40740,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -49494,10 +40763,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49521,10 +40786,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49548,10 +40809,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49575,10 +40832,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49602,10 +40855,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49629,10 +40878,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49656,10 +40901,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49683,10 +40924,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49710,10 +40947,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49737,10 +40970,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49764,10 +40993,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49791,10 +41016,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49822,13 +41043,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:events.EventEmitter", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -49852,10 +41066,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -49883,14 +41093,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.emitter.addListener", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -49918,14 +41120,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.emitter.emit", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -49953,14 +41147,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.emitter.eventNames", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -49988,13 +41174,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:events.emitter.getMaxListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50022,14 +41201,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.emitter.listenerCount", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50057,13 +41228,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:events.emitter.listeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50091,14 +41255,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.emitter.off", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50126,14 +41282,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.emitter.on", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50161,14 +41309,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.emitter.once", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50196,14 +41336,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.emitter.prependListener", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50231,14 +41363,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.emitter.prependOnceListener", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50266,14 +41390,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.emitter.removeAllListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50301,14 +41417,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.emitter.removeListener", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50336,13 +41444,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:events.emitter.setMaxListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50370,13 +41471,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:events.emitter.rawListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50400,10 +41494,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -50427,10 +41517,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -50454,10 +41540,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -50481,10 +41563,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -50508,10 +41586,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -50535,10 +41609,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -50562,10 +41632,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "ancestor" }, { @@ -50593,13 +41659,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:events.events.getEventListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50623,10 +41682,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "exact" }, { @@ -50654,13 +41709,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.events.once", - "tests": [ - "tests/fixtures/npm/cases/node24-async-events/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50684,10 +41732,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -50715,13 +41759,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:events.events.listenerCount", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50749,13 +41786,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.events.on", - "tests": [ - "tests/fixtures/npm/cases/node24-async-events/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50783,13 +41813,6 @@ "tests/corpus/2620-ee-override-once-order.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:events.events.setMaxListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50813,13 +41836,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.events.addAbortListener", - "tests": [ - "tests/fixtures/npm/cases/node24-async-events/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50843,13 +41859,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:events.defaultMaxListeners", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50873,14 +41882,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:events.events.errorMonitor", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts", - "tests/fixtures/npm/cases/node24-event-emitter/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -50904,10 +41905,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:events" - }, "anchorSource": "chapter" }, { @@ -50931,13 +41928,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:events" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:events.captureRejectionSymbol", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -50997,14 +41987,6 @@ "tests/fixtures/node-types/fs-timestamps.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -51028,10 +42010,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -51055,10 +42033,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -51082,10 +42056,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -51109,10 +42079,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -51140,14 +42106,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.FileHandle", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51175,14 +42133,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.appendFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51209,14 +42159,6 @@ "tests/corpus/3135-fs-file-handle-controls.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.chmod", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51240,10 +42182,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -51271,14 +42209,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.close", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51302,10 +42232,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -51329,10 +42255,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -51359,14 +42281,6 @@ "tests/corpus/3135-fs-file-handle-controls.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.datasync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51394,14 +42308,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51429,14 +42335,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51464,14 +42362,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51495,10 +42385,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -51526,14 +42412,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.readFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51557,10 +42435,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -51587,14 +42461,6 @@ "tests/corpus/3135-fs-file-handle-controls.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.readv", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51622,14 +42488,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.stat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51656,14 +42514,6 @@ "tests/corpus/3135-fs-file-handle-controls.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.sync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51690,14 +42540,6 @@ "tests/corpus/3135-fs-file-handle-controls.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.truncate", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51725,10 +42567,6 @@ "tests/fixtures/node-types/fs-timestamps.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -51756,14 +42594,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51791,14 +42621,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51826,14 +42648,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51861,14 +42675,6 @@ "tests/corpus/3136-fs-file-handle-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.writeFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51895,14 +42701,6 @@ "tests/corpus/3135-fs-file-handle-controls.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs/promises.filehandle.writev", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -51929,10 +42727,6 @@ "tests/corpus/2844-node-disposable-resources.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -51959,13 +42753,6 @@ "tests/corpus/2686-fs-file-handle.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:fs.fd", - "tests": [ - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -51989,10 +42776,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52016,14 +42799,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.access", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52047,14 +42822,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.appendFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52084,14 +42851,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.chmod", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52115,10 +42874,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52142,14 +42897,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.copyFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52173,10 +42920,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52200,10 +42943,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52227,10 +42966,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52254,10 +42989,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52285,10 +43016,6 @@ "tests/corpus/node24-fs-timestamps-symlinks.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52317,10 +43044,6 @@ "tests/fixtures/node-types/fs-links.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52347,14 +43070,6 @@ "tests/corpus/2941-fsp-lstat-identity.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.lstat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52384,14 +43099,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.mkdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52415,14 +43122,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.mkdtemp", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52446,10 +43145,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52479,14 +43174,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.open", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52510,10 +43197,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52540,14 +43223,6 @@ "tests/corpus/2942-fsp-readdir-dirent.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.readdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52577,14 +43252,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.readFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52614,14 +43281,6 @@ "tests/fixtures/node-types/fs-links.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.readlink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52648,14 +43307,6 @@ "tests/corpus/2940-fsp-realpath.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.realpath", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52685,14 +43336,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.rename", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52716,14 +43359,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.rmdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52753,14 +43388,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.rm", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52790,14 +43417,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.stat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52827,10 +43446,6 @@ "tests/fixtures/node-types/fs-statfs.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52860,10 +43475,6 @@ "tests/fixtures/node-types/fs-links.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52887,10 +43498,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52920,14 +43527,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.unlink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -52954,10 +43553,6 @@ "tests/corpus/node24-fs-timestamps-promises.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -52981,10 +43576,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53014,14 +43605,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs/promises.writeFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53045,14 +43628,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.constants", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -53076,10 +43651,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -53103,14 +43674,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.access", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53134,14 +43697,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.appendFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53165,14 +43720,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.chmod", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53196,10 +43743,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -53223,10 +43766,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53250,14 +43789,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.close", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53281,14 +43812,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.copyFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53312,10 +43835,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53339,14 +43858,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.createReadStream", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53370,14 +43881,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.createWriteStream", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53401,14 +43904,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.exists", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53435,14 +43930,6 @@ "tests/corpus/3137-fs-vector-callbacks.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.fchmod", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53466,10 +43953,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53496,14 +43979,6 @@ "tests/corpus/3137-fs-vector-callbacks.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.fdatasync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53527,14 +44002,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.fstat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53558,14 +44025,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.fsync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53592,14 +44051,6 @@ "tests/corpus/3137-fs-vector-callbacks.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.ftruncate", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53628,10 +44079,6 @@ "tests/corpus/node24-fs-timestamps-errors.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53655,10 +44102,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53682,10 +44125,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53709,10 +44148,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53741,10 +44176,6 @@ "tests/corpus/node24-fs-timestamps-errors.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53774,10 +44205,6 @@ "tests/fixtures/node-types/fs-links.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53801,14 +44228,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.lstat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53832,14 +44251,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.mkdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53863,14 +44274,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.mkdtemp", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53894,14 +44297,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.open", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -53925,10 +44320,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53952,10 +44343,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -53979,14 +44366,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54010,14 +44389,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54041,14 +44412,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.read", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54072,14 +44435,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.readdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54103,14 +44458,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.readFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54134,10 +44481,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -54161,10 +44504,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -54194,14 +44533,6 @@ "tests/fixtures/node-types/fs-links.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.readlink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54228,14 +44559,6 @@ "tests/corpus/3137-fs-vector-callbacks.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.readv", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54259,14 +44582,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.realpath", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54290,10 +44605,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -54323,14 +44634,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.rename", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54354,14 +44657,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.rmdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54385,14 +44680,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.rm", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54416,14 +44703,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.stat", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54453,10 +44732,6 @@ "tests/fixtures/node-types/fs-statfs.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -54486,10 +44761,6 @@ "tests/fixtures/node-types/fs-links.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -54513,10 +44784,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -54540,14 +44807,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.unlink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54571,14 +44830,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.unwatchFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54607,10 +44858,6 @@ "tests/corpus/node24-fs-timestamps-errors.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -54640,10 +44887,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:fs.watch" - }, "anchorSource": "exact" }, { @@ -54667,10 +44910,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -54694,10 +44933,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -54721,10 +44956,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -54748,10 +44979,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -54775,10 +45002,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:fs.watchFile" - }, "anchorSource": "exact" }, { @@ -54802,14 +45025,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54833,14 +45048,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54864,14 +45071,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.write", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54895,14 +45094,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.writeFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54926,14 +45117,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.writeFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54960,14 +45143,6 @@ "tests/corpus/3137-fs-vector-callbacks.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.writev", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -54991,10 +45166,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -55024,14 +45195,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.accessSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55061,14 +45224,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.appendFileSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55098,14 +45253,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.chmodSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55135,10 +45282,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -55168,14 +45311,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.closeSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55205,14 +45340,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.copyFileSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55236,10 +45363,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -55269,14 +45392,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.existsSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55303,14 +45418,6 @@ "tests/corpus/2950-fs-descriptor-publication.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.fchmodSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55334,10 +45441,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -55364,14 +45467,6 @@ "tests/corpus/3134-fs-vectors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.fdatasyncSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55398,14 +45493,6 @@ "tests/corpus/2950-fs-descriptor-publication.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.fstatSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55432,14 +45519,6 @@ "tests/corpus/2950-fs-descriptor-publication.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.fsyncSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55466,14 +45545,6 @@ "tests/corpus/3134-fs-vectors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.ftruncateSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55501,10 +45572,6 @@ "tests/corpus/node24-fs-timestamps-errors.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -55528,10 +45595,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -55555,10 +45618,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -55582,10 +45641,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -55614,10 +45669,6 @@ "tests/corpus/node24-fs-timestamps-errors.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -55647,10 +45698,6 @@ "tests/fixtures/node-types/fs-links.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -55680,14 +45727,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.lstatSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55717,14 +45756,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.mkdirSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55754,14 +45785,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.mkdtempSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55785,10 +45808,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -55812,10 +45831,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -55845,14 +45860,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.openSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55882,14 +45889,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.readdirSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55920,14 +45919,6 @@ "tests/corpus/fs-read-encodings.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.readFileSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55957,14 +45948,6 @@ "tests/fixtures/node-types/fs-links.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.readlinkSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -55994,14 +45977,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.readSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56031,14 +46006,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.readSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56065,14 +46032,6 @@ "tests/corpus/3134-fs-vectors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.readvSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56102,14 +46061,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.realpathSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56136,10 +46087,6 @@ "tests/corpus/fs-native-realpath.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56169,14 +46116,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.renameSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56206,14 +46145,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.rmdirSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56243,14 +46174,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.rmSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56280,14 +46203,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.statSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56317,10 +46232,6 @@ "tests/fixtures/node-types/fs-statfs.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56350,10 +46261,6 @@ "tests/fixtures/node-types/fs-links.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56377,10 +46284,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56410,14 +46313,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.unlinkSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56446,10 +46341,6 @@ "tests/fixtures/node-types/fs-timestamps.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56479,14 +46370,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.writeFileSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56516,14 +46399,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.writeSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56553,14 +46428,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.writeSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56590,14 +46457,6 @@ "tests/corpus/2920-fs-promises-function-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.writeSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56624,14 +46483,6 @@ "tests/corpus/3134-fs-vectors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.writevSync", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -56655,10 +46506,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -56682,10 +46529,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56709,10 +46552,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56736,10 +46575,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56763,10 +46598,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56790,10 +46621,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56817,10 +46644,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56844,10 +46667,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56871,10 +46690,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56898,10 +46713,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56925,10 +46736,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -56952,10 +46759,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -56979,14 +46782,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.Dirent", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57010,14 +46805,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.dirent.isBlockDevice", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57041,14 +46828,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.dirent.isCharacterDevice", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57072,14 +46851,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.dirent.isDirectory", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57103,14 +46874,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.dirent.isFIFO", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57134,14 +46897,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.dirent.isFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57165,14 +46920,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.dirent.isSocket", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57196,14 +46943,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.dirent.isSymbolicLink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57227,10 +46966,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -57254,10 +46989,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -57281,10 +47012,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57308,10 +47035,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57335,10 +47058,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57362,10 +47081,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57389,10 +47104,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57416,10 +47127,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57443,10 +47150,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57470,10 +47173,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57497,10 +47196,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57524,10 +47219,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57551,10 +47242,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57578,10 +47265,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -57605,10 +47288,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -57632,10 +47311,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -57659,10 +47334,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57686,10 +47357,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57713,10 +47380,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -57740,14 +47403,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.Stats", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57771,10 +47426,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -57798,14 +47449,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.stats.isBlockDevice", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57829,14 +47472,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.stats.isCharacterDevice", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57860,14 +47495,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.stats.isDirectory", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57891,14 +47518,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.stats.isFIFO", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57922,14 +47541,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.stats.isFile", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57953,14 +47564,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.stats.isSocket", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -57984,14 +47587,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:fs.stats.isSymbolicLink", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -58018,10 +47613,6 @@ "tests/corpus/2941-fsp-lstat-identity.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58048,10 +47639,6 @@ "tests/corpus/2941-fsp-lstat-identity.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58075,10 +47662,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58102,10 +47685,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58129,10 +47708,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58156,10 +47731,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58183,10 +47754,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58210,10 +47777,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58237,10 +47800,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58264,10 +47823,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58291,10 +47846,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58318,10 +47869,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58348,10 +47895,6 @@ "tests/corpus/2941-fsp-lstat-identity.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58375,10 +47918,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58402,10 +47941,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58429,10 +47964,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58456,10 +47987,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58483,10 +48010,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58510,10 +48033,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58537,10 +48056,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58564,10 +48079,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58591,10 +48102,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58623,10 +48130,6 @@ "tests/fixtures/node-types/fs-statfs.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -58655,10 +48158,6 @@ "tests/fixtures/node-types/fs-statfs.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58687,10 +48186,6 @@ "tests/fixtures/node-types/fs-statfs.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58719,10 +48214,6 @@ "tests/fixtures/node-types/fs-statfs.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58751,10 +48242,6 @@ "tests/fixtures/node-types/fs-statfs.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58783,10 +48270,6 @@ "tests/fixtures/node-types/fs-statfs.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58815,10 +48298,6 @@ "tests/fixtures/node-types/fs-statfs.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58847,10 +48326,6 @@ "tests/fixtures/node-types/fs-statfs.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -58874,10 +48349,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -58901,10 +48372,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -58928,10 +48395,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -58955,10 +48418,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -58982,10 +48441,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59009,10 +48464,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59036,10 +48487,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59063,10 +48510,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59090,10 +48533,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -59117,10 +48556,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -59144,10 +48579,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -59171,10 +48602,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -59198,10 +48625,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:fs.fsync" - }, "anchorSource": "ancestor" }, { @@ -59225,10 +48648,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -59252,10 +48671,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -59279,14 +48694,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.mkdir", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -59310,10 +48717,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -59337,10 +48740,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -59364,10 +48763,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -59391,10 +48786,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -59418,10 +48809,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59445,10 +48832,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59472,10 +48855,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59499,10 +48878,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59526,10 +48901,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59553,10 +48924,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59580,10 +48947,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59607,10 +48970,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59634,10 +48993,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59661,10 +49016,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59688,10 +49039,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59715,10 +49062,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "ancestor" }, { @@ -59742,10 +49085,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59769,10 +49108,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59796,10 +49131,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:fs" - }, "anchorSource": "exact" }, { @@ -59823,14 +49154,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:fs" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:fs.constants", - "tests": [ - "tests/fixtures/npm/cases/fs-shims/main.ts", - "tests/fixtures/npm/cases/node24-fs-descriptors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -59854,10 +49177,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -59881,10 +49200,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -59908,10 +49223,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -59935,10 +49246,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -59962,10 +49269,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -59989,10 +49292,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60016,10 +49315,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60043,10 +49338,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60070,10 +49361,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60097,10 +49384,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60124,10 +49407,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60151,10 +49430,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60178,10 +49453,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60205,10 +49476,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60232,10 +49499,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60259,10 +49522,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60286,10 +49545,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -60323,13 +49578,6 @@ "tests/harness/fetch-conformance.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "chapter" }, { @@ -60353,13 +49601,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:AbortController", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60383,10 +49624,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -60410,10 +49647,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "ancestor" }, { @@ -60437,13 +49670,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:AbortSignal", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60467,10 +49693,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -60494,10 +49716,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "ancestor" }, { @@ -60521,10 +49739,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "ancestor" }, { @@ -60548,10 +49762,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "ancestor" }, { @@ -60575,10 +49785,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -60602,13 +49808,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:Blob", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60632,13 +49831,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:BroadcastChannel", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60662,13 +49854,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-npm-global:Buffer", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60692,13 +49877,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:ByteLengthQueuingStrategy", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60722,13 +49900,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:CloseEvent", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60752,13 +49923,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:CompressionStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60782,13 +49946,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:CountQueuingStrategy", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60812,10 +49969,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -60839,13 +49992,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:CryptoKey", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60869,13 +50015,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:CustomEvent", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60899,13 +50038,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:DecompressionStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60929,13 +50061,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:DOMException", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60959,13 +50084,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:Event", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -60989,13 +50107,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:EventSource", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61019,13 +50130,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:EventTarget", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61049,13 +50153,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:File", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61079,13 +50176,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:FormData", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61109,13 +50199,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:Headers", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61139,13 +50222,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:MessageChannel", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61169,13 +50245,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:MessageEvent", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61199,13 +50268,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:MessagePort", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61229,13 +50291,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:Navigator", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61259,10 +50314,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -61286,10 +50337,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -61313,10 +50360,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -61340,10 +50383,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -61367,10 +50406,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -61394,10 +50429,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -61421,13 +50452,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:ReadableByteStreamController", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61451,13 +50475,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:ReadableStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61481,13 +50498,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:ReadableStreamBYOBReader", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61511,13 +50521,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:ReadableStreamBYOBRequest", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61541,13 +50544,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:ReadableStreamDefaultController", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61571,13 +50567,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:ReadableStreamDefaultReader", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61601,13 +50590,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:Request", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61631,13 +50613,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:Response", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61661,13 +50636,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:Storage", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61691,13 +50659,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:SubtleCrypto", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61726,13 +50687,6 @@ "tests/corpus/3133-text-decoder-streaming.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-global:TextDecoder", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61756,13 +50710,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:TextDecoderStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61791,13 +50738,6 @@ "tests/corpus/3133-text-decoder-streaming.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-global:TextEncoder", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61821,13 +50761,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:TextEncoderStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61851,13 +50784,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:TransformStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61881,13 +50807,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:TransformStreamDefaultController", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61911,13 +50830,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-npm-global:URL", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61941,13 +50853,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:URLPattern", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -61971,13 +50876,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:URLSearchParams", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62001,13 +50899,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:WebAssembly", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62031,13 +50922,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-global-absent:WebSocket", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62061,13 +50945,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:WritableStream", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62091,13 +50968,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:WritableStreamDefaultController", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62121,13 +50991,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:WritableStreamDefaultWriter", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62151,13 +51014,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:atob", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62181,13 +51037,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:btoa", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62217,13 +51066,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-global:clearImmediate", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62253,13 +51095,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-global:clearInterval", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62289,13 +51124,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-global:clearTimeout", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62319,13 +51147,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:queueMicrotask", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62349,10 +51170,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62382,13 +51199,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-global:setImmediate", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62418,13 +51228,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-global:setInterval", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62454,13 +51257,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-global:setTimeout", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62484,13 +51280,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "partial", - "evidence": "island-global:structuredClone", - "tests": [ - "tests/harness/web-globals.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -62514,10 +51303,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62541,10 +51326,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62568,10 +51349,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62595,10 +51372,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62622,10 +51395,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62652,10 +51421,6 @@ "tests/harness/fetch-conformance.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62679,10 +51444,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -62706,10 +51467,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -62733,10 +51490,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62760,10 +51513,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62787,10 +51536,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62814,10 +51559,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62841,10 +51582,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "ancestor" }, { @@ -62868,10 +51605,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "ancestor" }, { @@ -62895,10 +51628,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "ancestor" }, { @@ -62922,10 +51651,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -62949,10 +51674,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "ancestor" }, { @@ -62976,10 +51697,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "ancestor" }, { @@ -63003,10 +51720,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -63030,10 +51743,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -63057,10 +51766,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:globals" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:globals" - }, "anchorSource": "exact" }, { @@ -63119,13 +51824,6 @@ "tests/fixtures/server/cases/upgrade-both/main.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -63149,10 +51847,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -63176,10 +51870,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -63203,10 +51893,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -63233,13 +51919,6 @@ "tests/corpus/2973-http-static-agent.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:http.Agent", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -63263,10 +51942,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -63290,10 +51965,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -63317,10 +51988,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -63347,13 +52014,6 @@ "tests/corpus/2973-http-static-agent.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:http.agent.destroy", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -63380,10 +52040,6 @@ "tests/corpus/2973-http-static-agent.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -63410,10 +52066,6 @@ "tests/corpus/2973-http-static-agent.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -63440,10 +52092,6 @@ "tests/corpus/2973-http-static-agent.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -63470,10 +52118,6 @@ "tests/corpus/2973-http-static-agent.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -63497,10 +52141,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -63527,10 +52167,6 @@ "tests/corpus/2973-http-static-agent.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -63557,10 +52193,6 @@ "tests/corpus/2973-http-static-agent.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -63588,13 +52220,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:http.ClientRequest", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -63621,13 +52246,6 @@ "tests/corpus/2988-http-static-client-abort.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:http.request.abort", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -63658,10 +52276,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -63690,13 +52304,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:http.request.end", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -63725,13 +52332,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:http.request.destroy", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -63759,10 +52359,6 @@ "tests/corpus/2986-http-static-client-socket-finish.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -63793,13 +52389,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:http.request.flushHeaders", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -63826,13 +52415,6 @@ "tests/corpus/2954-http-outgoing-headers.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:http.request.getHeader", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -63859,10 +52441,6 @@ "tests/corpus/2954-http-outgoing-headers.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -63889,10 +52467,6 @@ "tests/corpus/2954-http-outgoing-headers.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -63919,10 +52493,6 @@ "tests/corpus/2954-http-outgoing-headers.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -63949,10 +52519,6 @@ "tests/corpus/2954-http-outgoing-headers.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -63979,13 +52545,6 @@ "tests/corpus/2954-http-outgoing-headers.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:http.request.removeHeader", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -64012,13 +52571,6 @@ "tests/corpus/2954-http-outgoing-headers.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:http.request.setHeader", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -64045,10 +52597,6 @@ "tests/corpus/2975-http-static-client-controls.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64076,10 +52624,6 @@ "tests/corpus/2987-http-static-timeout-errors.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64107,13 +52651,6 @@ "tests/corpus/2987-http-static-timeout-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:http.request.setTimeout", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -64144,10 +52681,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64176,13 +52709,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:http.request.write", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -64209,10 +52735,6 @@ "tests/corpus/2988-http-static-client-abort.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64239,10 +52761,6 @@ "tests/corpus/2986-http-static-client-socket-finish.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64269,10 +52787,6 @@ "tests/corpus/2975-http-static-client-controls.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64296,10 +52810,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64326,10 +52836,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64356,10 +52862,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64386,10 +52888,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64416,10 +52914,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64446,10 +52940,6 @@ "tests/corpus/2975-http-static-client-controls.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64476,10 +52966,6 @@ "tests/corpus/2986-http-static-client-socket-finish.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64506,10 +52992,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64536,10 +53018,6 @@ "tests/corpus/2986-http-static-client-socket-finish.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -64566,10 +53044,6 @@ "tests/corpus/2988-http-static-client-abort.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64596,10 +53070,6 @@ "tests/corpus/2981-http-static-events.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64623,10 +53093,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64650,10 +53116,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64680,10 +53142,6 @@ "tests/corpus/2986-http-static-client-socket-finish.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64707,10 +53165,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64737,10 +53191,6 @@ "tests/corpus/2981-http-static-events.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64767,10 +53217,6 @@ "tests/corpus/2986-http-static-client-socket-finish.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64798,10 +53244,6 @@ "tests/corpus/2987-http-static-timeout-errors.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64828,10 +53270,6 @@ "tests/fixtures/server/cases/upgrade-both/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64859,10 +53297,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:http.Server" - }, "anchorSource": "exact" }, { @@ -64890,10 +53324,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64922,10 +53352,6 @@ "tests/corpus/2984-http-static-close-upgrade.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64954,10 +53380,6 @@ "tests/corpus/2984-http-static-close-upgrade.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -64985,10 +53407,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65016,10 +53434,6 @@ "tests/corpus/2980-http-static-server-timeout-default.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65043,10 +53457,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65075,10 +53485,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -65105,10 +53511,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -65132,10 +53534,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -65164,10 +53562,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -65191,10 +53585,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -65223,10 +53613,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -65255,10 +53641,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -65287,10 +53669,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -65314,10 +53692,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65341,10 +53715,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65368,10 +53738,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65398,10 +53764,6 @@ "tests/corpus/2981-http-static-events.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65428,10 +53790,6 @@ "tests/fixtures/server/cases/http2-connect/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65458,10 +53816,6 @@ "tests/corpus/2981-http-static-events.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65485,10 +53839,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65515,10 +53865,6 @@ "tests/corpus/2981-http-static-events.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65545,10 +53891,6 @@ "tests/fixtures/server/cases/upgrade-both/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65576,10 +53918,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65610,10 +53948,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65644,10 +53978,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65676,10 +54006,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65710,10 +54036,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65742,10 +54064,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65772,10 +54090,6 @@ "tests/corpus/2954-http-outgoing-headers.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65802,10 +54116,6 @@ "tests/corpus/2954-http-outgoing-headers.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65834,10 +54144,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65866,10 +54172,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65898,10 +54200,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65928,10 +54226,6 @@ "tests/corpus/2957-http-static-response-controls.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65962,10 +54256,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -65994,10 +54284,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -66024,10 +54310,6 @@ "tests/corpus/2956-http-static-informational.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -66054,10 +54336,6 @@ "tests/corpus/2956-http-static-informational.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -66086,10 +54364,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -66116,10 +54390,6 @@ "tests/corpus/2956-http-static-informational.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -66146,10 +54416,6 @@ "tests/corpus/2957-http-static-response-controls.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66176,10 +54442,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66206,10 +54468,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66236,10 +54494,6 @@ "tests/corpus/2957-http-static-response-controls.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66266,10 +54520,6 @@ "tests/corpus/2957-http-static-response-controls.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66296,10 +54546,6 @@ "tests/corpus/2957-http-static-response-controls.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66326,10 +54572,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66356,10 +54598,6 @@ "tests/corpus/2957-http-static-response-controls.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66386,10 +54624,6 @@ "tests/corpus/2957-http-static-response-controls.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66416,10 +54650,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66446,10 +54676,6 @@ "tests/corpus/2957-http-static-response-controls.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66476,10 +54702,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -66506,10 +54728,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -66537,13 +54755,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:http.IncomingMessage", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -66570,13 +54781,6 @@ "tests/corpus/2985-http-static-message-destroy.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:http.message.destroy", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -66605,10 +54809,6 @@ "tests/corpus/2987-http-static-timeout-errors.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -66635,10 +54835,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66665,10 +54861,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66695,10 +54887,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -66725,10 +54913,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66759,10 +54943,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66789,10 +54969,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66819,10 +54995,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66849,10 +55021,6 @@ "tests/corpus/2972-http-static-distinct-snapshots.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66883,10 +55051,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66913,10 +55077,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66943,10 +55103,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -66973,10 +55129,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67007,10 +55159,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67041,10 +55189,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67071,10 +55215,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67101,10 +55241,6 @@ "tests/corpus/2985-http-static-message-destroy.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67131,10 +55267,6 @@ "tests/corpus/2976-http-static-incoming-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67158,10 +55290,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67192,10 +55320,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67219,10 +55343,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67253,10 +55373,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67280,10 +55396,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67307,10 +55419,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67341,10 +55449,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67368,10 +55472,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67395,10 +55495,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67422,10 +55518,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67449,10 +55541,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67476,10 +55564,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67503,10 +55587,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67530,10 +55610,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67557,10 +55633,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67584,10 +55656,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67618,10 +55686,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67645,10 +55709,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67672,10 +55732,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67702,10 +55758,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67729,10 +55781,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67763,10 +55811,6 @@ "tests/fixtures/server/cases/http-trailers/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67793,10 +55837,6 @@ "tests/corpus/2955-http-static-state.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67820,10 +55860,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67847,10 +55883,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67874,10 +55906,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67901,10 +55929,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "ancestor" }, { @@ -67928,10 +55952,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67955,10 +55975,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -67982,10 +55998,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -68009,10 +56021,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -68041,10 +56049,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:http.createServer" - }, "anchorSource": "exact" }, { @@ -68073,13 +56077,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:http.get", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -68108,13 +56105,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:http.get", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -68143,13 +56133,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:http.request", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -68178,13 +56161,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:http.request", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -68211,10 +56187,6 @@ "tests/corpus/2953-http-header-validation.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -68241,10 +56213,6 @@ "tests/corpus/2953-http-header-validation.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -68268,10 +56236,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -68295,10 +56259,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "exact" }, { @@ -68325,13 +56285,6 @@ "tests/corpus/2974-http-static-module-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:http.METHODS", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -68358,13 +56311,6 @@ "tests/corpus/2974-http-static-module-values.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:http.STATUS_CODES", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -68388,13 +56334,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:http.globalAgent", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -68421,10 +56360,6 @@ "tests/corpus/2974-http-static-module-values.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:http" - }, "anchorSource": "chapter" }, { @@ -68455,10 +56390,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -68482,10 +56413,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -68509,10 +56436,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -68536,10 +56459,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -68563,10 +56482,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -68590,10 +56505,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -68617,10 +56528,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -68644,10 +56551,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -68671,10 +56574,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -68698,10 +56597,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -68725,10 +56620,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -68752,10 +56643,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -68779,10 +56666,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -68806,10 +56689,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -68833,10 +56712,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -68860,10 +56735,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -68887,10 +56758,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -68914,10 +56781,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -68941,10 +56804,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -68968,10 +56827,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -68995,10 +56850,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69022,10 +56873,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69049,10 +56896,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69076,10 +56919,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69103,10 +56942,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69130,10 +56965,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -69157,10 +56988,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -69184,10 +57011,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -69211,10 +57034,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -69238,10 +57057,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -69265,10 +57080,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -69292,10 +57103,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -69319,10 +57126,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -69346,10 +57149,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -69373,10 +57172,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -69400,10 +57195,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69427,10 +57218,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -69454,10 +57241,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69481,10 +57264,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69508,10 +57287,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69535,10 +57310,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69562,10 +57333,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69589,10 +57356,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69616,10 +57379,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69643,10 +57402,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69670,10 +57425,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69697,10 +57448,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69724,10 +57471,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69751,10 +57494,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -69778,10 +57517,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69805,10 +57540,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69832,10 +57563,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69859,10 +57586,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69886,10 +57609,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69913,10 +57632,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69940,10 +57655,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69967,10 +57678,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -69994,10 +57701,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -70021,10 +57724,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -70048,10 +57747,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70075,10 +57770,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70102,10 +57793,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70129,10 +57816,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70156,10 +57839,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70183,10 +57862,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70210,10 +57885,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70237,10 +57908,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70264,10 +57931,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70291,10 +57954,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70318,10 +57977,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70345,10 +58000,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70372,10 +58023,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70399,10 +58046,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70426,10 +58069,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70453,10 +58092,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -70480,10 +58115,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70507,10 +58138,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70534,10 +58161,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70561,10 +58184,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70588,10 +58207,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70615,10 +58230,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70642,10 +58253,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70669,10 +58276,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70696,10 +58299,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70723,10 +58322,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70750,10 +58345,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70777,10 +58368,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70804,10 +58391,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70831,10 +58414,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70858,10 +58437,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70885,10 +58460,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70912,10 +58483,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70939,10 +58506,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70966,10 +58529,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -70993,10 +58552,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71020,10 +58575,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -71047,10 +58598,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -71074,10 +58621,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71105,10 +58648,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71132,10 +58671,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71159,10 +58694,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71186,10 +58717,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71218,10 +58745,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -71245,10 +58768,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71272,10 +58791,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71299,10 +58814,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71326,10 +58837,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71353,10 +58860,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71380,10 +58883,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71407,10 +58906,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71434,10 +58929,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71465,10 +58956,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71492,10 +58979,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71519,10 +59002,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71551,10 +59030,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -71578,10 +59053,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71605,10 +59076,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71632,10 +59099,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71659,10 +59122,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71686,10 +59145,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71713,10 +59168,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71740,10 +59191,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71767,10 +59214,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71794,10 +59237,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.http2.createServer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71821,10 +59260,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71848,10 +59283,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.http2.connect" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71875,10 +59306,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71902,10 +59329,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71929,10 +59352,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71956,10 +59375,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -71983,10 +59398,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72010,10 +59421,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72037,10 +59444,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72064,10 +59467,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -72091,10 +59490,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -72118,10 +59513,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72150,10 +59541,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72182,10 +59569,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72209,10 +59592,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72236,10 +59615,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72263,10 +59638,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72290,10 +59661,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72317,10 +59684,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72344,10 +59707,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72371,10 +59730,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72398,10 +59753,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72425,10 +59776,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72452,10 +59799,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72479,10 +59822,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72506,10 +59845,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72533,10 +59868,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72560,10 +59891,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -72587,10 +59914,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72614,10 +59937,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72641,10 +59960,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72668,10 +59983,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72695,10 +60006,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72722,10 +60029,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72754,10 +60057,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72786,10 +60085,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72813,10 +60108,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72840,10 +60131,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72872,10 +60159,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72904,10 +60187,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72936,10 +60215,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72963,10 +60238,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -72995,10 +60266,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -73022,10 +60289,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -73049,10 +60312,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -73081,10 +60340,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -73108,10 +60363,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -73135,10 +60386,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -73162,10 +60409,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -73189,10 +60432,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -73216,10 +60455,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -73243,10 +60478,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -73270,10 +60501,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -73297,10 +60524,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -73324,10 +60547,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -73351,10 +60570,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "ancestor" }, { @@ -73378,10 +60593,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -73405,10 +60616,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -73432,10 +60639,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -73459,10 +60662,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:http2" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:http2" - }, "anchorSource": "exact" }, { @@ -73493,13 +60692,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -73523,10 +60715,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -73550,13 +60738,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:https" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:https.Agent", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -73580,10 +60761,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:https" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:https.Server" - }, "anchorSource": "exact" }, { @@ -73611,10 +60788,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:https" - }, "anchorSource": "exact" }, { @@ -73638,10 +60811,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:https" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:https" - }, "anchorSource": "exact" }, { @@ -73665,10 +60834,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:https" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:https" - }, "anchorSource": "exact" }, { @@ -73692,10 +60857,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:https" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:https" - }, "anchorSource": "exact" }, { @@ -73723,10 +60884,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:https" - }, "anchorSource": "exact" }, { @@ -73750,10 +60907,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:https" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:https" - }, "anchorSource": "exact" }, { @@ -73782,10 +60935,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:https" - }, "anchorSource": "ancestor" }, { @@ -73809,10 +60958,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:https" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:https" - }, "anchorSource": "ancestor" }, { @@ -73841,10 +60986,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:https" - }, "anchorSource": "ancestor" }, { @@ -73873,10 +61014,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:https" - }, "anchorSource": "ancestor" }, { @@ -73905,10 +61042,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:https" - }, "anchorSource": "ancestor" }, { @@ -73937,10 +61070,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:https.createServer" - }, "anchorSource": "exact" }, { @@ -73969,13 +61098,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:https.get", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -74004,13 +61126,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:https.get", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -74039,13 +61154,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:https.request", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -74074,13 +61182,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:https.request", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -74104,13 +61205,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:https" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:https.globalAgent", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -74134,10 +61228,6 @@ "status": "not-implemented", "evidence": "derived:descendants" }, - "dynamic": { - "status": "not-implemented", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -74161,10 +61251,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -74188,10 +61274,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74215,10 +61297,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74242,10 +61320,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74269,10 +61343,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74296,10 +61366,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74323,10 +61389,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -74350,10 +61412,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -74377,10 +61435,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74404,10 +61458,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74431,10 +61481,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -74458,10 +61504,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74485,10 +61527,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74512,10 +61550,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74539,10 +61573,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74566,10 +61596,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74593,10 +61619,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -74620,10 +61642,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -74647,10 +61665,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74674,10 +61688,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74701,10 +61711,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -74728,10 +61734,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74755,10 +61757,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74782,10 +61780,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74809,10 +61803,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74836,10 +61826,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "ancestor" }, { @@ -74863,10 +61849,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -74890,10 +61872,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74917,10 +61895,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74944,10 +61918,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74971,10 +61941,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -74998,10 +61964,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -75025,10 +61987,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -75052,10 +62010,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -75079,10 +62033,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -75106,10 +62056,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -75133,10 +62079,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:inspector" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:inspector,node:inspector/promises" - }, "anchorSource": "exact" }, { @@ -75160,10 +62102,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -75182,10 +62120,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:intl" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:intl" - }, "anchorSource": "chapter" }, { @@ -75204,10 +62138,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -75226,10 +62156,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:intl" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:intl" - }, "anchorSource": "exact" }, { @@ -75248,10 +62174,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:intl" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:intl" - }, "anchorSource": "exact" }, { @@ -75270,10 +62192,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:intl" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:intl" - }, "anchorSource": "exact" }, { @@ -75292,10 +62210,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:intl" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:intl" - }, "anchorSource": "exact" }, { @@ -75314,10 +62228,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:intl" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:intl" - }, "anchorSource": "exact" }, { @@ -75336,10 +62246,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -75374,16 +62280,6 @@ "tests/corpus/2923-cjs-factory-export/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -75415,15 +62311,6 @@ "tests/corpus/2923-cjs-factory-export/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.require", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -75447,10 +62334,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -75482,15 +62365,6 @@ "tests/corpus/2923-cjs-factory-export/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.__dirname", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -75522,15 +62396,6 @@ "tests/corpus/2923-cjs-factory-export/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.__filename", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -75562,15 +62427,6 @@ "tests/corpus/2923-cjs-factory-export/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.exports", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -75593,15 +62449,6 @@ "static": { "status": "unreviewed" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.module", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -75633,15 +62480,6 @@ "tests/corpus/2923-cjs-factory-export/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.require", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -75669,13 +62507,6 @@ "tests/corpus/2860-require-resolve/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.require.resolve", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -75703,13 +62534,6 @@ "tests/corpus/2860-require-resolve/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.require.resolve.paths", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -75736,15 +62560,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.cache", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -75768,10 +62583,6 @@ "status": "not-implemented", "evidence": "compiler-feature:modules.extensions" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:modules.extensions" - }, "anchorSource": "ancestor" }, { @@ -75803,10 +62614,6 @@ "tests/corpus/2923-cjs-factory-export/main.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:modules.main" - }, "anchorSource": "ancestor" }, { @@ -75829,15 +62636,6 @@ "static": { "status": "unreviewed" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.module", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -75869,13 +62667,6 @@ "tests/corpus/2923-cjs-factory-export/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.module.require", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -75902,13 +62693,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.children", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -75940,15 +62724,6 @@ "tests/corpus/2923-cjs-factory-export/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.exports", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -75980,15 +62755,6 @@ "tests/corpus/2923-cjs-factory-export/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.exports", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -76020,13 +62786,6 @@ "tests/corpus/2923-cjs-factory-export/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.filename", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -76053,13 +62812,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.id", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -76086,13 +62838,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.isPreloading", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -76119,13 +62864,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.loaded", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -76152,13 +62890,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.parent", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -76185,13 +62916,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.path", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -76218,13 +62942,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.paths", - "tests": [ - "tests/fixtures/npm/cases/node24-commonjs-metadata/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -76251,10 +62968,6 @@ "tests/corpus/2880-cjs-module-graph/main.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:modules.Module" - }, "anchorSource": "exact" }, { @@ -76278,10 +62991,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76305,10 +63014,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76332,10 +63037,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76359,10 +63060,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76386,10 +63083,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76413,10 +63106,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76440,10 +63129,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76467,10 +63152,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76498,14 +63179,6 @@ "tests/corpus/1596-cjs-modules/main.js" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.node:", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/create-require/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -76529,10 +63202,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76556,10 +63225,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76583,10 +63248,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76614,14 +63275,6 @@ "tests/corpus/1596-cjs-modules/main.js" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:modules.node_modules", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts", - "tests/fixtures/npm/cases/create-require/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -76645,10 +63298,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76672,10 +63321,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76710,16 +63355,6 @@ "tests/fixtures/node-types/esm-metadata.mts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/corpus/2646-top-level-await.ts", - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -76748,13 +63383,6 @@ "tests/fixtures/node-types/esm-metadata.mts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.meta", - "tests": [ - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -76781,14 +63409,6 @@ "tests/corpus/2858-import-meta-resolve/main.mjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.import.meta.resolve", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -76817,13 +63437,6 @@ "tests/fixtures/node-types/esm-metadata.mts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.dirname", - "tests": [ - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -76852,13 +63465,6 @@ "tests/fixtures/node-types/esm-metadata.mts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.filename", - "tests": [ - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -76887,13 +63493,6 @@ "tests/fixtures/node-types/esm-metadata.mts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.url", - "tests": [ - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -76922,13 +63521,6 @@ "tests/fixtures/node-types/esm-metadata.mts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.main", - "tests": [ - "tests/fixtures/npm/cases/node24-esm-metadata/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -76952,10 +63544,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -76979,10 +63567,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77006,10 +63590,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77040,14 +63620,6 @@ "tests/corpus/2935-module-namespace-values/main.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.import", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] - }, "anchorSource": "exact" }, { @@ -77071,10 +63643,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77098,10 +63666,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77125,10 +63689,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77159,14 +63719,6 @@ "tests/corpus/2935-module-namespace-values/main.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.file:", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] - }, "anchorSource": "exact" }, { @@ -77190,10 +63742,6 @@ "status": "not-implemented", "evidence": "compiler-feature:esm.data:" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:esm.data:" - }, "anchorSource": "exact" }, { @@ -77224,14 +63772,6 @@ "tests/corpus/2935-module-namespace-values/main.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.node:", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] - }, "anchorSource": "exact" }, { @@ -77255,10 +63795,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77282,10 +63818,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77316,14 +63848,6 @@ "tests/corpus/2935-module-namespace-values/main.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.import", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] - }, "anchorSource": "exact" }, { @@ -77347,10 +63871,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77381,14 +63901,6 @@ "tests/corpus/2935-module-namespace-values/main.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.import", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] - }, "anchorSource": "exact" }, { @@ -77412,10 +63924,6 @@ "status": "not-implemented", "evidence": "compiler-feature:esm.require" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:esm.require" - }, "anchorSource": "exact" }, { @@ -77439,10 +63947,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77466,10 +63970,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77493,10 +63993,6 @@ "status": "not-implemented", "evidence": "compiler-feature:esm.require" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:esm.require" - }, "anchorSource": "exact" }, { @@ -77520,10 +64016,6 @@ "status": "not-implemented", "evidence": "compiler-feature:esm.__filename" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:esm.__filename" - }, "anchorSource": "exact" }, { @@ -77547,10 +64039,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77574,10 +64062,6 @@ "status": "not-implemented", "evidence": "compiler-feature:esm.require.main" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:esm.require.main" - }, "anchorSource": "exact" }, { @@ -77601,10 +64085,6 @@ "status": "not-implemented", "evidence": "compiler-feature:esm.require.resolve" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:esm.require.resolve" - }, "anchorSource": "exact" }, { @@ -77628,10 +64108,6 @@ "status": "not-implemented", "evidence": "compiler-feature:esm.NODE_PATH" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:esm.NODE_PATH" - }, "anchorSource": "exact" }, { @@ -77655,10 +64131,6 @@ "status": "not-implemented", "evidence": "compiler-feature:esm.require.extensions" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:esm.require.extensions" - }, "anchorSource": "exact" }, { @@ -77682,10 +64154,6 @@ "status": "not-implemented", "evidence": "compiler-feature:esm.require.cache" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:esm.require.cache" - }, "anchorSource": "exact" }, { @@ -77709,10 +64177,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77736,10 +64200,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77763,10 +64223,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77790,10 +64246,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77817,10 +64269,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77844,10 +64292,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77878,14 +64322,6 @@ "tests/corpus/2935-module-namespace-values/main.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:esm.await", - "tests": [ - "tests/fixtures/npm/cases/dynamic-import/main.ts", - "tests/corpus/2646-top-level-await.ts" - ] - }, "anchorSource": "exact" }, { @@ -77909,10 +64345,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77936,10 +64368,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77963,10 +64391,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -77990,10 +64414,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78017,10 +64437,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78044,10 +64460,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78073,14 +64485,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -78099,10 +64503,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78128,14 +64528,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:module.createRequire", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -78159,10 +64551,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78184,14 +64572,6 @@ "tests/corpus/2932-create-require-program/main.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:module.isBuiltin", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -78215,10 +64595,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:module.register" - }, "anchorSource": "exact" }, { @@ -78242,10 +64618,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78269,10 +64641,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78294,14 +64662,6 @@ "tests/corpus/2932-create-require-program/main.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:module.syncBuiltinESMExports", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -78325,14 +64685,6 @@ "tests/corpus/2932-create-require-program/main.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:module.builtinModules", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -78351,10 +64703,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78373,10 +64721,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78395,10 +64739,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78417,10 +64757,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78439,10 +64775,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78461,10 +64793,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78483,10 +64811,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78510,10 +64834,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78537,10 +64857,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78564,10 +64880,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78591,10 +64903,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78618,10 +64926,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "ancestor" }, { @@ -78645,10 +64949,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78672,14 +64972,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:module.findSourceMap", - "tests": [ - "tests/fixtures/npm/cases/create-require/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -78703,10 +64995,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78725,10 +65013,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78752,10 +65036,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78779,10 +65059,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78806,10 +65082,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78833,10 +65105,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78860,10 +65128,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78887,10 +65151,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78914,10 +65174,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -78941,10 +65197,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78968,10 +65220,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -78995,10 +65243,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -79022,10 +65266,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -79049,10 +65289,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79076,10 +65312,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79103,10 +65335,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79130,10 +65358,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79157,10 +65381,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79184,10 +65404,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:module.register" - }, "anchorSource": "exact" }, { @@ -79211,10 +65427,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -79238,10 +65450,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -79265,10 +65473,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79292,10 +65496,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79319,10 +65519,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79346,10 +65542,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79373,10 +65565,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79400,10 +65588,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79427,10 +65611,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79454,10 +65634,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79481,10 +65657,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79508,10 +65680,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:module" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:module" - }, "anchorSource": "exact" }, { @@ -79537,16 +65705,6 @@ "tests/corpus/2830-cjs-require-self-name/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/corpus/2790-dynamic-import-self-name/main.ts", - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -79565,10 +65723,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79587,10 +65741,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79609,10 +65759,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79636,10 +65782,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79658,10 +65800,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79687,16 +65825,6 @@ "tests/corpus/2830-cjs-require-self-name/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:packages.package.json", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -79715,10 +65843,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -79737,10 +65861,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79759,10 +65879,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79781,10 +65897,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79803,10 +65915,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79825,10 +65933,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79847,10 +65951,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79869,10 +65969,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79891,10 +65987,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79913,10 +66005,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79935,10 +66023,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79957,10 +66041,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -79979,10 +66059,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80001,10 +66077,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80023,10 +66095,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80045,10 +66113,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80067,10 +66131,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80096,16 +66156,6 @@ "tests/corpus/2830-cjs-require-self-name/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:packages.package.json", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -80131,16 +66181,6 @@ "tests/corpus/2830-cjs-require-self-name/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:packages.\"name\"", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -80166,16 +66206,6 @@ "tests/corpus/2830-cjs-require-self-name/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:packages.\"main\"", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -80201,16 +66231,6 @@ "tests/corpus/2830-cjs-require-self-name/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:packages.\"type\"", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -80236,16 +66256,6 @@ "tests/corpus/2830-cjs-require-self-name/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:packages.\"exports\"", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -80271,16 +66281,6 @@ "tests/corpus/2830-cjs-require-self-name/main.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:packages.\"imports\"", - "tests": [ - "tests/fixtures/npm/cases/dual-entry/main.ts", - "tests/fixtures/npm/cases/self-name/main.ts", - "tests/fixtures/npm/cases/scoped-nested/main.ts", - "tests/corpus/2790-dynamic-import-self-name/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -80311,16 +66311,6 @@ "tests/harness/errors.test.ts" ] }, - "dynamic": { - "status": "supported", - "evidence": "derived:descendants", - "tests": [ - "tests/corpus/2705-type-import-link-dynamic/main.ts", - "tests/corpus/2706-type-import-link-dynamic-success/main.ts", - "tests/corpus/2708-type-import-link-dynamic/main.ts", - "tests/harness/errors.test.ts" - ] - }, "anchorSource": "chapter" }, { @@ -80344,10 +66334,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80371,10 +66357,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80398,10 +66380,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80425,10 +66403,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80452,10 +66426,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80486,16 +66456,6 @@ "tests/harness/errors.test.ts" ] }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:typescript.type", - "tests": [ - "tests/corpus/2705-type-import-link-dynamic/main.ts", - "tests/corpus/2706-type-import-link-dynamic-success/main.ts", - "tests/corpus/2708-type-import-link-dynamic/main.ts", - "tests/harness/errors.test.ts" - ] - }, "anchorSource": "exact" }, { @@ -80519,10 +66479,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80546,10 +66502,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80573,10 +66525,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80600,10 +66548,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80630,13 +66574,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -80655,10 +66592,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80677,10 +66610,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -80699,10 +66628,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -80721,10 +66646,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -80743,10 +66664,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -80765,10 +66682,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -80787,10 +66700,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -80809,10 +66718,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -80836,10 +66741,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -80863,10 +66764,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -80885,10 +66782,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -80907,10 +66800,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -80929,10 +66818,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -80951,10 +66836,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -80973,10 +66854,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -80995,10 +66872,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -81017,10 +66890,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -81039,10 +66908,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:net.Server" - }, "anchorSource": "exact" }, { @@ -81065,10 +66930,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81091,10 +66952,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81113,10 +66970,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81135,10 +66988,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81161,10 +67010,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81187,10 +67032,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81213,10 +67054,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81239,10 +67076,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81265,10 +67098,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81287,10 +67116,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81309,10 +67134,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81331,10 +67152,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -81353,10 +67170,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -81375,10 +67188,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -81397,10 +67206,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81419,10 +67224,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81441,10 +67242,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81463,10 +67260,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81485,10 +67278,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81507,10 +67296,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:net.Socket" - }, "anchorSource": "exact" }, { @@ -81532,10 +67317,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81557,10 +67338,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81582,10 +67359,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81607,10 +67380,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81632,10 +67401,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81658,10 +67423,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81680,10 +67441,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81706,10 +67463,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81732,10 +67485,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81757,10 +67506,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81779,10 +67524,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81805,10 +67546,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81831,10 +67568,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81853,10 +67586,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81875,10 +67604,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81901,10 +67626,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81923,10 +67644,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81945,10 +67662,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81970,10 +67683,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -81996,10 +67705,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82018,10 +67723,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82045,10 +67746,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82067,10 +67764,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82089,10 +67782,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82111,10 +67800,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82133,10 +67818,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82155,10 +67836,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82177,10 +67854,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82199,10 +67872,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82221,10 +67890,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82243,10 +67908,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82265,10 +67926,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82287,10 +67944,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82314,10 +67967,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82336,10 +67985,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "ancestor" }, { @@ -82358,10 +68003,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82380,10 +68021,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82402,10 +68039,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82424,10 +68057,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82446,10 +68075,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82468,10 +68093,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82490,10 +68111,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82512,10 +68129,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82534,10 +68147,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82556,10 +68165,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82578,10 +68183,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82600,10 +68201,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82626,10 +68223,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:net.connect" - }, "anchorSource": "exact" }, { @@ -82652,10 +68245,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:net.connect" - }, "anchorSource": "exact" }, { @@ -82678,10 +68267,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:net.connect" - }, "anchorSource": "exact" }, { @@ -82704,10 +68289,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:net.connect" - }, "anchorSource": "exact" }, { @@ -82730,10 +68311,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:net.createConnection" - }, "anchorSource": "exact" }, { @@ -82756,10 +68333,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:net.createConnection" - }, "anchorSource": "exact" }, { @@ -82782,10 +68355,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:net.createConnection" - }, "anchorSource": "exact" }, { @@ -82808,10 +68377,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:net.createConnection" - }, "anchorSource": "exact" }, { @@ -82834,10 +68399,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:net.createServer" - }, "anchorSource": "exact" }, { @@ -82856,10 +68417,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82878,10 +68435,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82904,10 +68457,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82930,10 +68479,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:net" - }, "anchorSource": "exact" }, { @@ -82952,13 +68497,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:net.isIP", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -82977,13 +68515,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:net.isIPv4", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83002,13 +68533,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:net" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:net.isIPv6", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83037,13 +68561,6 @@ "tests/corpus/4598-os-available-parallelism.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -83067,10 +68584,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -83094,10 +68607,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -83121,10 +68630,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -83148,10 +68653,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -83175,10 +68676,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -83202,10 +68699,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -83229,10 +68722,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -83256,10 +68745,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -83286,13 +68771,6 @@ "tests/corpus/4598-os-available-parallelism.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.availableParallelism", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83316,13 +68794,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.arch", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83346,13 +68817,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.cpus", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83376,13 +68840,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.endianness", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83406,13 +68863,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.freemem", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83436,10 +68886,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:os" - }, "anchorSource": "exact" }, { @@ -83467,13 +68913,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.homedir", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83497,13 +68936,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.hostname", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83527,13 +68959,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.loadavg", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83557,13 +68982,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.machine", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83591,13 +69009,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.networkInterfaces", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83625,13 +69036,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.platform", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83659,13 +69063,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.release", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83689,10 +69086,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:os" - }, "anchorSource": "exact" }, { @@ -83720,13 +69113,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.tmpdir", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83754,13 +69140,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.totalmem", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83788,13 +69167,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.type", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83818,13 +69190,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.uptime", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83852,13 +69217,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.userInfo", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83882,13 +69240,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.version", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -83916,13 +69267,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.EOL", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -83946,13 +69290,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:os.constants", - "tests": [ - "tests/fixtures/npm/cases/builtin-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -83976,10 +69313,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:os" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:os" - }, "anchorSource": "chapter" }, { @@ -84010,13 +69343,6 @@ "tests/corpus/957-builtins-namespace.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -84040,10 +69366,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -84074,13 +69396,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.basename", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -84111,13 +69426,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.dirname", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -84148,13 +69456,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.extname", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -84178,13 +69479,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:path" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.format", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -84208,10 +69502,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:path" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:path" - }, "anchorSource": "exact" }, { @@ -84242,13 +69532,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.isAbsolute", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -84279,13 +69562,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.join", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -84316,13 +69592,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.normalize", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -84346,13 +69615,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:path" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.parse", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -84383,13 +69645,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.relative", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -84420,13 +69675,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.resolve", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -84457,13 +69705,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.toNamespacedPath", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -84494,13 +69735,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.delimiter", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -84531,13 +69765,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.posix", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -84568,13 +69795,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.sep", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -84605,13 +69825,6 @@ "tests/corpus/2918-builtin-callable-widths-cjs.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:path.win32", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -84639,13 +69852,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -84669,10 +69875,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -84696,10 +69898,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -84723,10 +69921,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -84750,10 +69944,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -84777,10 +69967,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -84804,10 +69990,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -84831,10 +70013,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -84858,10 +70036,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -84885,10 +70059,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -84912,10 +70082,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -84939,10 +70105,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -84966,10 +70128,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -84993,10 +70151,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -85020,10 +70174,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -85047,10 +70197,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -85074,10 +70220,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -85101,10 +70243,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85128,10 +70266,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85155,10 +70289,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85182,10 +70312,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -85209,10 +70335,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85236,10 +70358,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85263,10 +70381,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85290,10 +70404,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85317,10 +70427,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85344,10 +70450,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85371,10 +70473,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85398,10 +70496,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85425,10 +70519,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -85452,10 +70542,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -85479,10 +70565,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85506,10 +70588,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85533,10 +70611,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85560,10 +70634,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85587,10 +70657,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85614,10 +70680,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85641,10 +70703,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85668,10 +70726,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85695,10 +70749,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85722,10 +70772,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85749,10 +70795,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85776,10 +70818,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85803,10 +70841,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85830,10 +70864,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -85857,13 +70887,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:perf_hooks.PerformanceObserver", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -85887,13 +70910,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performanceObserver.disconnect", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -85917,13 +70933,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performanceObserver.observe", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -85947,13 +70956,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performanceObserver.takeRecords", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -85977,10 +70979,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86004,10 +71002,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86031,10 +71025,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86058,10 +71048,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86085,10 +71071,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86112,10 +71094,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86139,10 +71117,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86166,10 +71140,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86193,10 +71163,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86220,10 +71186,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86247,10 +71209,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86274,10 +71232,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86301,10 +71255,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86328,10 +71278,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86355,10 +71301,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86382,10 +71324,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86409,10 +71347,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86436,10 +71370,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86463,10 +71393,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86490,10 +71416,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86517,10 +71439,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -86544,10 +71462,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86571,10 +71485,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86598,10 +71508,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86625,10 +71531,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86652,10 +71554,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86679,10 +71577,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86706,10 +71600,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -86733,10 +71623,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -86760,10 +71646,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -86791,10 +71673,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86818,10 +71696,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -86845,10 +71719,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86872,10 +71742,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86899,10 +71765,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86926,10 +71788,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86953,10 +71811,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -86980,13 +71834,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:perf_hooks.monitorEventLoopDelay", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -87010,10 +71857,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -87037,13 +71880,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:perf_hooks.performance", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -87067,13 +71903,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performance.clearMarks", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -87097,13 +71926,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performance.clearMeasures", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -87127,10 +71949,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -87154,10 +71972,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -87181,13 +71995,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performance.getEntries", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -87211,13 +72018,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performance.getEntriesByName", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -87241,13 +72041,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performance.getEntriesByType", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -87271,13 +72064,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performance.mark", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -87301,10 +72087,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -87328,13 +72110,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performance.measure", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -87358,13 +72133,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performance.now", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -87388,10 +72156,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -87415,10 +72179,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -87442,13 +72202,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:perf_hooks.performance.toJSON", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -87472,10 +72225,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "exact" }, { @@ -87499,10 +72248,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -87526,10 +72271,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:perf_hooks" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:perf_hooks" - }, "anchorSource": "ancestor" }, { @@ -87548,10 +72289,6 @@ "status": "not-implemented", "evidence": "derived:descendants" }, - "dynamic": { - "status": "not-implemented", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -87570,10 +72307,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -87597,10 +72330,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -87624,10 +72353,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -87651,10 +72376,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:permissions" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:permissions" - }, "anchorSource": "exact" }, { @@ -87678,10 +72399,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -87705,10 +72422,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:permissions" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:permissions" - }, "anchorSource": "exact" }, { @@ -87732,10 +72445,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -87759,10 +72468,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -87811,14 +72516,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/node24-env/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -87837,10 +72534,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -87859,10 +72552,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -87884,10 +72573,6 @@ "tests/corpus/2946-child-fork-ipc/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -87906,10 +72591,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -87931,10 +72612,6 @@ "tests/corpus/2946-child-fork-ipc/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -87958,10 +72635,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -87980,10 +72653,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88002,10 +72671,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88032,10 +72697,6 @@ "tests/corpus/process-uncaught-handler-throws.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88054,10 +72715,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88084,10 +72741,6 @@ "tests/corpus/process-uncaught-handler-throws.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88106,10 +72759,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88128,10 +72777,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88150,10 +72795,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -88172,10 +72813,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -88194,10 +72831,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88220,10 +72853,6 @@ "tests/corpus/process-named-signals.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88242,10 +72871,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -88264,10 +72889,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88290,10 +72911,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88316,13 +72933,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:process.process.chdir", - "tests": [ - "tests/fixtures/npm/cases/node24-env/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -88345,10 +72955,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88371,10 +72977,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88397,13 +72999,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.cwd", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -88425,10 +73020,6 @@ "tests/corpus/2946-child-fork-ipc/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88447,10 +73038,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88469,13 +73056,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.emitWarning", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -88494,13 +73074,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.emitWarning", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -88519,10 +73092,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -88546,10 +73115,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88572,13 +73137,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.exit", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -88602,10 +73160,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88629,10 +73183,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88656,10 +73206,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88678,10 +73224,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88704,10 +73246,6 @@ "packages/compiler/test/process-builtin-values.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88726,10 +73264,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88748,10 +73282,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88774,10 +73304,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88796,10 +73322,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88822,10 +73344,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88844,10 +73362,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88874,13 +73388,6 @@ "tests/corpus/process-hrtime.js" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.hrtime", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -88902,10 +73409,6 @@ "tests/corpus/process-hrtime.js" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88924,10 +73427,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88950,10 +73449,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -88979,13 +73474,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:process.process.loadEnvFile", - "tests": [ - "tests/fixtures/npm/cases/node24-env/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -89004,13 +73492,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.memoryUsage", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -89029,10 +73510,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -89051,10 +73528,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89078,13 +73551,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.nextTick", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -89108,10 +73574,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89135,10 +73597,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89161,10 +73619,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89186,10 +73640,6 @@ "tests/corpus/2946-child-fork-ipc/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89208,10 +73658,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89230,10 +73676,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89252,10 +73694,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89274,10 +73712,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89296,10 +73730,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89323,10 +73753,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89345,10 +73771,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89371,10 +73793,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89402,13 +73820,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.umask", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -89431,13 +73842,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.umask", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -89461,10 +73865,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89487,13 +73887,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.uptime", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -89512,13 +73905,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.allowedNodeEnvironmentFlags", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -89537,10 +73923,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -89563,13 +73945,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.argv", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -89588,13 +73963,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.argv0", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -89613,10 +73981,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -89635,10 +73999,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89657,10 +74017,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -89679,13 +74035,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.config", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -89707,10 +74056,6 @@ "tests/corpus/2946-child-fork-ipc/main.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -89729,10 +74074,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -89755,13 +74096,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.env", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -89780,13 +74114,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.execArgv", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -89809,13 +74136,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.execPath", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -89840,13 +74160,6 @@ "tests/corpus/2944-process-exit-code-wrap.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.exitCode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -89865,10 +74178,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -89887,10 +74196,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -89909,10 +74214,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -89936,10 +74237,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -89958,10 +74255,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -89980,10 +74273,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90007,10 +74296,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90034,10 +74319,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90061,10 +74342,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90088,10 +74365,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90115,10 +74388,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90142,10 +74411,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90164,10 +74429,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90186,10 +74447,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90208,10 +74465,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -90234,13 +74487,6 @@ "tests/corpus/2314-process-introspection.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.pid", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -90259,13 +74505,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.platform", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -90284,13 +74523,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.ppid", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -90309,13 +74541,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.release", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -90334,10 +74559,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90356,10 +74577,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -90378,10 +74595,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "exact" }, { @@ -90400,10 +74613,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90422,10 +74631,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90444,10 +74649,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90466,10 +74667,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90488,10 +74685,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90510,10 +74703,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90532,10 +74721,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90554,10 +74739,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90581,10 +74762,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90609,13 +74786,6 @@ "tests/harness/event-loop.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.stderr", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -90634,10 +74804,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90662,13 +74828,6 @@ "tests/harness/event-loop.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.stdin", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -90687,10 +74846,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90715,13 +74870,6 @@ "tests/harness/event-loop.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.stdout", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -90740,10 +74888,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -90762,10 +74906,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90784,10 +74924,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90806,13 +74942,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.title", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -90831,10 +74960,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90853,10 +74978,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:process" - }, "anchorSource": "chapter" }, { @@ -90875,13 +74996,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:process" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.version", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -90903,13 +75017,6 @@ "tests/corpus/process-versions-storage.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:process.versions", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -90933,13 +75040,6 @@ "status": "not-implemented", "evidence": "derived:descendants" }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -90963,13 +75063,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:punycode" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:punycode.decode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -90993,13 +75086,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:punycode" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:punycode.encode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91023,13 +75109,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:punycode" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:punycode.toASCII", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91053,13 +75132,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:punycode" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:punycode.toUnicode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91083,13 +75155,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:punycode" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:punycode.ucs2", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91113,10 +75178,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:punycode" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:punycode" - }, "anchorSource": "exact" }, { @@ -91140,10 +75201,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:punycode" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:punycode" - }, "anchorSource": "exact" }, { @@ -91167,13 +75224,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:punycode" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:punycode.version", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -91201,13 +75251,6 @@ "tests/corpus/957-builtins-namespace.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -91235,13 +75278,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:querystring.decode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91269,13 +75305,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:querystring.encode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91303,13 +75332,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:querystring.escape", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91337,13 +75359,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:querystring.parse", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91371,13 +75386,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:querystring.stringify", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91405,13 +75413,6 @@ "tests/corpus/2917-builtin-callable-widths.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:querystring.unescape", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91439,13 +75440,6 @@ "tests/corpus/2844-node-disposable-resources.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -91469,10 +75463,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -91496,10 +75486,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -91523,13 +75509,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:readline.rl.question", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91553,10 +75532,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -91580,10 +75555,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -91607,10 +75578,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -91634,10 +75601,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -91661,10 +75624,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -91688,10 +75647,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -91715,10 +75670,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -91742,10 +75693,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -91769,10 +75716,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -91796,10 +75739,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -91823,13 +75762,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:readline.Interface", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91853,13 +75785,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:readline.rl.question", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91883,13 +75808,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:readline.clearLine", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91913,13 +75831,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:readline.clearScreenDown", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91946,13 +75857,6 @@ "tests/corpus/1475-readline-closed-stdin.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:readline.createInterface", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -91976,10 +75880,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92003,13 +75903,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:readline.cursorTo", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -92033,13 +75926,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:readline.moveCursor", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -92063,10 +75949,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -92090,10 +75972,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92120,13 +75998,6 @@ "tests/corpus/1475-readline-closed-stdin.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:readline.rl.close", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -92153,10 +76024,6 @@ "tests/corpus/2844-node-disposable-resources.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92180,13 +76047,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:readline.rl.pause", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -92210,13 +76070,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:readline.rl.prompt", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -92240,13 +76093,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:readline.rl.resume", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -92270,13 +76116,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:readline.rl.setPrompt", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -92300,13 +76139,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:readline.rl.getPrompt", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -92330,13 +76162,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:readline.rl.write", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -92360,10 +76185,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92387,10 +76208,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92414,10 +76231,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "ancestor" }, { @@ -92441,10 +76254,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "ancestor" }, { @@ -92468,10 +76277,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92495,10 +76300,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92522,10 +76323,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92549,10 +76346,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92576,10 +76369,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92603,10 +76392,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92630,10 +76415,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92657,10 +76438,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92684,10 +76461,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:readline" - }, "anchorSource": "exact" }, { @@ -92711,13 +76484,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:readline" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:readline.emitKeypressEvents", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -92741,10 +76507,6 @@ "status": "not-implemented", "evidence": "derived:descendants" }, - "dynamic": { - "status": "not-implemented", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -92768,10 +76530,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -92795,10 +76553,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -92822,10 +76576,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -92849,10 +76599,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -92876,10 +76622,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -92903,10 +76645,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -92930,10 +76668,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -92957,10 +76691,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -92984,10 +76714,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -93011,10 +76737,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93038,10 +76760,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93065,10 +76783,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93092,10 +76806,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93119,10 +76829,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93146,10 +76852,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93173,10 +76875,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93200,10 +76898,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93227,10 +76921,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93254,10 +76944,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -93281,10 +76967,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -93308,10 +76990,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -93335,10 +77013,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -93362,10 +77036,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -93389,10 +77059,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -93416,10 +77082,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -93443,10 +77105,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -93470,10 +77128,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -93497,10 +77151,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "exact" }, { @@ -93524,10 +77174,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:repl" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:repl" - }, "anchorSource": "chapter" }, { @@ -93551,10 +77197,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:report" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:report" - }, "anchorSource": "chapter" }, { @@ -93578,10 +77220,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93605,10 +77243,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93632,10 +77266,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93659,10 +77289,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93686,10 +77312,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93713,10 +77335,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93740,10 +77358,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93767,10 +77381,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93794,10 +77404,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93821,10 +77427,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93848,10 +77450,6 @@ "status": "not-applicable", "evidence": "derived:descendants" }, - "dynamic": { - "status": "not-applicable", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -93875,10 +77473,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93902,10 +77496,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93929,10 +77519,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93956,10 +77542,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -93983,10 +77565,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -94010,10 +77588,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -94037,10 +77611,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -94064,10 +77634,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -94091,10 +77657,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:single-executable-applications" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:single-executable-applications" - }, "anchorSource": "exact" }, { @@ -94118,10 +77680,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:single-executable-applications" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:single-executable-applications" - }, "anchorSource": "exact" }, { @@ -94145,10 +77703,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:single-executable-applications" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:single-executable-applications" - }, "anchorSource": "exact" }, { @@ -94172,10 +77726,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:single-executable-applications" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:single-executable-applications" - }, "anchorSource": "exact" }, { @@ -94199,10 +77749,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -94226,10 +77772,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:single-executable-applications" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:single-executable-applications" - }, "anchorSource": "exact" }, { @@ -94253,10 +77795,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:single-executable-applications" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:single-executable-applications" - }, "anchorSource": "exact" }, { @@ -94280,10 +77818,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:single-executable-applications" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:single-executable-applications" - }, "anchorSource": "exact" }, { @@ -94307,10 +77841,6 @@ "status": "not-applicable", "evidence": "compiler-chapter-policy:single-executable-applications" }, - "dynamic": { - "status": "not-applicable", - "evidence": "island-chapter-policy:single-executable-applications" - }, "anchorSource": "exact" }, { @@ -94334,10 +77864,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -94361,10 +77887,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -94388,10 +77910,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -94415,10 +77933,6 @@ "status": "not-implemented", "evidence": "derived:descendants" }, - "dynamic": { - "status": "not-implemented", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -94442,10 +77956,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -94469,10 +77979,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94496,10 +78002,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94523,10 +78025,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94550,10 +78048,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94577,10 +78071,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94604,10 +78094,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94631,10 +78117,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94658,10 +78140,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94685,10 +78163,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94712,10 +78186,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94739,10 +78209,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94766,10 +78232,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94793,10 +78255,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94820,10 +78278,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94847,10 +78301,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94874,10 +78324,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -94901,10 +78347,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "ancestor" }, { @@ -94928,10 +78370,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "ancestor" }, { @@ -94955,10 +78393,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "ancestor" }, { @@ -94982,10 +78416,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95009,10 +78439,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95036,10 +78462,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95063,10 +78485,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95090,10 +78508,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95117,10 +78531,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95144,10 +78554,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95171,10 +78577,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95198,10 +78600,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95225,10 +78623,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95252,10 +78646,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95279,10 +78669,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95306,10 +78692,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95333,10 +78715,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95360,10 +78738,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95387,10 +78761,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "ancestor" }, { @@ -95414,10 +78784,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "ancestor" }, { @@ -95441,10 +78807,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95468,10 +78830,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95495,10 +78853,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95522,10 +78876,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95549,10 +78899,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95576,10 +78922,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95603,10 +78945,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "ancestor" }, { @@ -95630,10 +78968,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "ancestor" }, { @@ -95657,10 +78991,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "ancestor" }, { @@ -95684,10 +79014,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "exact" }, { @@ -95711,10 +79037,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:sqlite" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:sqlite" - }, "anchorSource": "chapter" }, { @@ -95738,10 +79060,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -95765,10 +79083,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -95792,10 +79106,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -95819,10 +79129,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -95846,10 +79152,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -95884,13 +79186,6 @@ "tests/corpus/2897-child-stdin-destroy.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -95914,10 +79209,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -95941,10 +79232,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -95968,10 +79255,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -95995,10 +79278,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -96027,13 +79306,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96062,13 +79334,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96097,13 +79362,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.finished", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96127,10 +79385,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -96159,13 +79413,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.finished", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96194,13 +79441,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96229,13 +79469,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96259,10 +79492,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -96286,13 +79515,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.isErrored", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96316,13 +79538,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.isReadable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96346,13 +79561,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.isWritable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96376,13 +79584,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.stream.Readable.from", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96406,10 +79607,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -96433,10 +79630,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -96460,10 +79653,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -96487,10 +79676,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -96514,10 +79699,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -96541,10 +79722,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -96568,10 +79745,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -96595,10 +79768,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -96622,13 +79791,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.addAbortSignal", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96657,10 +79819,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -96684,10 +79842,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -96716,13 +79870,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.read", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96751,13 +79898,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.push", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -96781,10 +79921,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -96813,13 +79949,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.finished", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -96848,13 +79977,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -96883,13 +80005,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.pipeline", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -96913,10 +80028,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -96940,13 +80051,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.isErrored", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -96970,13 +80074,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.isReadable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -97000,13 +80097,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.isWritable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -97030,13 +80120,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.stream.Readable.from", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -97060,10 +80143,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97087,10 +80166,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97114,10 +80189,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97141,10 +80212,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97168,10 +80235,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97195,10 +80258,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97222,10 +80281,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97249,10 +80304,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97276,13 +80327,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.addAbortSignal", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -97311,10 +80355,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97338,10 +80378,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97365,10 +80401,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -97392,13 +80424,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.Writable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -97427,13 +80452,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.writable.cork", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -97460,13 +80478,6 @@ "tests/corpus/2897-child-stdin-destroy.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.writable.destroy", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -97495,13 +80506,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.writable.end", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -97530,13 +80534,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.writable.setDefaultEncoding", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -97565,13 +80562,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.writable.uncork", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -97595,10 +80585,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -97627,13 +80613,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.writable.write", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -97657,10 +80636,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97684,10 +80659,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97715,10 +80686,6 @@ "tests/corpus/2895-child-stdin-write-after-end.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97742,10 +80709,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97769,10 +80732,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97796,10 +80755,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97823,10 +80778,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97850,10 +80801,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97877,10 +80824,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97904,10 +80847,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97931,10 +80870,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97958,10 +80893,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -97985,10 +80916,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98015,10 +80942,6 @@ "tests/corpus/2894-child-stdin-backpressure.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98042,10 +80965,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98069,10 +80988,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98096,10 +81011,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98123,10 +81034,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98150,10 +81057,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -98177,10 +81080,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -98204,10 +81103,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -98231,10 +81126,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -98258,13 +81149,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.Readable", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -98293,13 +81177,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.destroy", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -98328,13 +81205,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.isPaused", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -98363,13 +81233,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.pause", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -98398,13 +81261,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.pipe", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -98433,13 +81289,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.read", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -98468,13 +81317,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.resume", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -98503,13 +81345,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.setEncoding", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -98538,13 +81373,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.unpipe", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -98573,13 +81401,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.unshift", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -98603,10 +81424,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "refused", - "evidence": "island-member-stub:node:stream.readable.wrap" - }, "anchorSource": "exact" }, { @@ -98634,10 +81451,6 @@ "tests/corpus/2861-readable-iterator-close.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98661,10 +81474,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98688,10 +81497,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98719,10 +81524,6 @@ "tests/corpus/2861-readable-iterator-close.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98746,10 +81547,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98773,10 +81570,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98800,10 +81593,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98827,10 +81616,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98854,10 +81639,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98881,10 +81662,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98908,10 +81685,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98935,10 +81708,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98962,10 +81731,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -98989,10 +81754,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99016,10 +81777,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99043,10 +81800,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99070,10 +81823,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99097,10 +81846,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99124,10 +81869,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99151,10 +81892,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99178,10 +81915,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99205,10 +81938,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99232,10 +81961,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99259,10 +81984,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99286,10 +82007,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99313,10 +82030,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99340,10 +82053,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99367,10 +82076,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99394,10 +82099,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99421,10 +82122,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99448,10 +82145,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99475,10 +82168,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99502,10 +82191,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99529,10 +82214,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99556,10 +82237,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -99583,13 +82260,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.Duplex", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -99613,10 +82283,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "ancestor" }, { @@ -99640,13 +82306,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.Transform", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -99670,13 +82329,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.transform.destroy", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -99700,10 +82352,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99727,10 +82375,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -99754,10 +82398,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -99781,10 +82421,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -99808,10 +82444,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -99835,10 +82467,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -99862,10 +82490,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -99889,10 +82513,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99916,10 +82536,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99943,10 +82559,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99970,10 +82582,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -99997,10 +82605,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -100024,10 +82628,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100051,10 +82651,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100078,10 +82674,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -100105,10 +82697,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -100132,10 +82720,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -100164,13 +82748,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.push", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -100194,10 +82771,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100221,10 +82794,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100248,10 +82817,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100275,10 +82840,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100302,13 +82863,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream.PassThrough", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -100332,10 +82886,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -100359,10 +82909,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -100386,10 +82932,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -100413,10 +82955,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -100440,10 +82978,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100472,13 +83006,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.read", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -100507,13 +83034,6 @@ "tests/corpus/1814-stream-pipeline.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:stream.readable.push", - "tests": [ - "tests/fixtures/npm/cases/stream-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -100537,10 +83057,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100564,10 +83080,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100591,10 +83103,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100618,10 +83126,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100645,10 +83149,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100672,10 +83172,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:stream" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:stream" - }, "anchorSource": "exact" }, { @@ -100703,14 +83199,6 @@ "tests/corpus/node24-string-decoder.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts", - "tests/fixtures/npm/cases/node24-string-decoder/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -100738,14 +83226,6 @@ "tests/corpus/node24-string-decoder.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:string_decoder.StringDecoder", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts", - "tests/fixtures/npm/cases/node24-string-decoder/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -100773,14 +83253,6 @@ "tests/corpus/node24-string-decoder.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:string_decoder.stringDecoder.end", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts", - "tests/fixtures/npm/cases/node24-string-decoder/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -100808,14 +83280,6 @@ "tests/corpus/node24-string-decoder.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:string_decoder.stringDecoder.write", - "tests": [ - "tests/fixtures/npm/cases/buffer-shims/main.ts", - "tests/fixtures/npm/cases/node24-string-decoder/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -100847,10 +83311,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -100874,10 +83334,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100901,10 +83357,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100931,10 +83383,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -100958,10 +83406,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -100985,10 +83429,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101012,10 +83452,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101039,10 +83475,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101066,10 +83498,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101093,10 +83521,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101120,10 +83544,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101147,10 +83567,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101174,10 +83590,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101201,10 +83613,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101228,10 +83636,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101255,10 +83659,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101282,10 +83682,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101309,10 +83705,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101336,10 +83728,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101363,10 +83751,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101390,10 +83774,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101417,10 +83797,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101444,10 +83820,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101471,10 +83843,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -101505,10 +83873,6 @@ "tests/corpus/2936-static-loose-equality.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101532,10 +83896,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101559,10 +83919,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101586,10 +83942,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101613,10 +83965,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101640,10 +83988,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101667,10 +84011,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101694,10 +84034,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101721,10 +84057,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101748,10 +84080,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101775,10 +84103,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101802,10 +84126,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "ancestor" }, { @@ -101829,10 +84149,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101856,10 +84172,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101883,10 +84195,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101910,10 +84218,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101937,10 +84241,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101964,10 +84264,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -101991,10 +84287,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -102018,10 +84310,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102045,10 +84333,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102072,10 +84356,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "ancestor" }, { @@ -102099,10 +84379,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102126,10 +84402,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102153,10 +84425,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102180,10 +84448,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102207,10 +84471,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102234,10 +84494,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102261,10 +84517,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102288,10 +84540,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102315,10 +84563,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102342,10 +84586,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102369,10 +84609,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102396,10 +84632,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102423,10 +84655,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102450,10 +84678,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102477,10 +84701,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -102504,10 +84724,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -102531,10 +84747,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102558,10 +84770,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102585,10 +84793,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -102612,10 +84816,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102639,10 +84839,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102666,10 +84862,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102693,10 +84885,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102720,10 +84908,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102747,10 +84931,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102774,10 +84954,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102801,10 +84977,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102828,10 +85000,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102855,10 +85023,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102882,10 +85046,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102909,10 +85069,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102936,10 +85092,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102963,10 +85115,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -102990,10 +85138,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103017,10 +85161,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103044,10 +85184,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103071,10 +85207,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103098,10 +85230,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103125,10 +85253,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103152,10 +85276,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103182,10 +85302,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103209,10 +85325,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103236,10 +85348,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103266,10 +85374,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103296,10 +85400,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103326,10 +85426,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103353,10 +85449,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103383,10 +85475,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103410,10 +85498,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103437,10 +85521,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103464,10 +85544,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103491,10 +85567,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103521,10 +85593,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103548,10 +85616,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "ancestor" }, { @@ -103575,10 +85639,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "ancestor" }, { @@ -103602,10 +85662,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "ancestor" }, { @@ -103629,10 +85685,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "ancestor" }, { @@ -103656,10 +85708,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "ancestor" }, { @@ -103683,10 +85731,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103710,10 +85754,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103737,10 +85777,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103767,10 +85803,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103794,10 +85826,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "ancestor" }, { @@ -103821,10 +85849,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103851,10 +85875,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103878,10 +85898,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103905,10 +85921,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103932,10 +85944,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103962,10 +85970,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -103992,10 +85996,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104022,10 +86022,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104052,10 +86048,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104082,10 +86074,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104109,10 +86097,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104136,10 +86120,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104163,10 +86143,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104193,10 +86169,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104220,10 +86192,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104247,10 +86215,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104274,10 +86238,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:test" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104304,10 +86264,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104334,10 +86290,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104364,10 +86316,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104394,10 +86342,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:test" - }, "anchorSource": "exact" }, { @@ -104431,16 +86375,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -104464,10 +86398,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -104497,13 +86427,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:timers.setImmediate", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -104533,13 +86456,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:timers.setInterval", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -104569,13 +86485,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:timers.setTimeout", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -104599,10 +86508,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -104632,13 +86537,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:timers.clearImmediate", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -104668,13 +86566,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:timers.clearInterval", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -104704,13 +86595,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:timers.clearTimeout", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -104734,10 +86618,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -104767,14 +86647,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.timersPromises.setTimeout", - "tests": [ - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -104804,14 +86676,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.timersPromises.setImmediate", - "tests": [ - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -104841,14 +86705,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.timersPromises.setInterval", - "tests": [ - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -104872,14 +86728,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:timers" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.timersPromises.scheduler.wait", - "tests": [ - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -104903,14 +86751,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:timers" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.timersPromises.scheduler.yield", - "tests": [ - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -104934,10 +86774,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:timers" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:timers" - }, "anchorSource": "exact" }, { @@ -104967,15 +86803,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.immediate.hasRef", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -105005,15 +86832,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.immediate.ref", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -105043,15 +86861,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.immediate.unref", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -105078,15 +86887,6 @@ "tests/corpus/2844-node-disposable-resources.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.immediate", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -105110,10 +86910,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:timers" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:timers" - }, "anchorSource": "exact" }, { @@ -105137,15 +86933,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:timers" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.timeout.close", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -105175,15 +86962,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.timeout.hasRef", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -105213,15 +86991,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.timeout.ref", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -105251,15 +87020,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.timeout.refresh", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -105289,15 +87049,6 @@ "tests/corpus/2852-timers-promises-interval.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.timeout.unref", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -105326,10 +87077,6 @@ "tests/corpus/2689-http-server-timeout-properties.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:timers" - }, "anchorSource": "exact" }, { @@ -105356,15 +87103,6 @@ "tests/corpus/2844-node-disposable-resources.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:timers.timeout", - "tests": [ - "tests/fixtures/npm/cases/island-timers/main.ts", - "tests/fixtures/npm/cases/node24-promise-timers/main.ts", - "tests/fixtures/npm/cases/node24-timers-unref/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -105394,13 +87132,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -105424,10 +87155,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105451,10 +87178,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105478,10 +87201,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105505,10 +87224,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105532,10 +87247,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105559,10 +87270,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105586,10 +87293,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105613,10 +87316,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105640,10 +87339,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105667,10 +87362,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105694,10 +87385,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105721,10 +87408,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105748,10 +87431,6 @@ "status": "not-applicable", "evidence": "configuration" }, - "dynamic": { - "status": "not-applicable", - "evidence": "configuration" - }, "anchorSource": "exact" }, { @@ -105775,10 +87454,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -105802,10 +87477,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -105829,10 +87500,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -105860,10 +87527,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -105891,10 +87554,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -105918,10 +87577,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -105949,10 +87604,6 @@ "tests/corpus/2596-net-arg-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -105976,10 +87627,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106003,10 +87650,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106030,10 +87673,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106057,10 +87696,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106084,10 +87719,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106111,10 +87742,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106138,10 +87765,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106165,10 +87788,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106192,10 +87811,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106219,10 +87834,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:tls.TLSSocket" - }, "anchorSource": "exact" }, { @@ -106246,10 +87857,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106273,10 +87880,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106300,10 +87903,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106327,10 +87926,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106354,10 +87949,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106381,10 +87972,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106408,10 +87995,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106435,10 +88018,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106462,10 +88041,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106489,10 +88064,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -106516,10 +88087,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106543,10 +88110,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106570,10 +88133,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106597,10 +88156,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106624,10 +88179,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106651,10 +88202,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106678,10 +88225,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106705,10 +88248,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106732,10 +88271,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106759,10 +88294,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106786,10 +88317,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106813,10 +88340,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106840,10 +88363,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "ancestor" }, { @@ -106867,10 +88386,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -106894,10 +88409,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "ancestor" }, { @@ -106921,10 +88432,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "ancestor" }, { @@ -106948,10 +88455,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "ancestor" }, { @@ -106975,10 +88478,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "ancestor" }, { @@ -107002,10 +88501,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "ancestor" }, { @@ -107029,10 +88524,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -107056,10 +88547,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -107083,10 +88570,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -107110,10 +88593,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -107137,10 +88616,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -107164,10 +88639,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -107191,10 +88662,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.tls.connect" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:tls.connect" - }, "anchorSource": "exact" }, { @@ -107218,10 +88685,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.tls.connect" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:tls.connect" - }, "anchorSource": "exact" }, { @@ -107245,10 +88708,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.tls.connect" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:tls.connect" - }, "anchorSource": "exact" }, { @@ -107272,10 +88731,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.tls.createSecureContext" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:tls.createSecureContext" - }, "anchorSource": "exact" }, { @@ -107299,10 +88754,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:tls.createServer" - }, "anchorSource": "exact" }, { @@ -107330,10 +88781,6 @@ "tests/corpus/2557-tls-ca-store.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -107361,10 +88808,6 @@ "tests/corpus/2557-tls-ca-store.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -107388,10 +88831,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -107419,13 +88858,6 @@ "tests/corpus/2557-tls-ca-store.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:tls.rootCertificates", - "tests": [ - "tests/fixtures/fetch/cases/island-http/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -107449,10 +88881,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "exact" }, { @@ -107476,10 +88904,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "chapter" }, { @@ -107503,10 +88927,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "chapter" }, { @@ -107530,10 +88950,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tls" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tls" - }, "anchorSource": "chapter" }, { @@ -107557,10 +88973,6 @@ "status": "not-implemented", "evidence": "derived:descendants" }, - "dynamic": { - "status": "not-implemented", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -107584,10 +88996,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:tracing" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:tracing" - }, "anchorSource": "exact" }, { @@ -107611,10 +89019,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:tracing" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:tracing" - }, "anchorSource": "exact" }, { @@ -107638,10 +89042,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:tracing" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:tracing" - }, "anchorSource": "exact" }, { @@ -107665,10 +89065,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:tracing" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:tracing" - }, "anchorSource": "exact" }, { @@ -107692,10 +89088,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:tracing" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:tracing" - }, "anchorSource": "ancestor" }, { @@ -107719,10 +89111,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:tracing" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:tracing" - }, "anchorSource": "ancestor" }, { @@ -107746,10 +89134,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -107773,10 +89157,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:tracing" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:tracing" - }, "anchorSource": "exact" }, { @@ -107800,10 +89180,6 @@ "status": "not-implemented", "evidence": "compiler-chapter-policy:tracing" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-chapter-policy:tracing" - }, "anchorSource": "exact" }, { @@ -107834,13 +89210,6 @@ "tests/harness/terminal-geometry.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -107864,13 +89233,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tty" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:tty.ReadStream", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -107894,10 +89256,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tty" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -107921,10 +89279,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tty" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -107955,10 +89309,6 @@ "tests/harness/terminal-geometry.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -107982,13 +89332,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tty" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:tty.WriteStream", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -108012,10 +89355,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tty" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -108039,10 +89378,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tty" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -108066,10 +89401,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tty" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -108093,10 +89424,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tty" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -108127,10 +89454,6 @@ "tests/harness/terminal-geometry.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -108154,10 +89477,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tty" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -108181,10 +89500,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tty" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -108215,10 +89530,6 @@ "tests/harness/terminal-geometry.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -108249,10 +89560,6 @@ "tests/harness/terminal-geometry.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -108283,10 +89590,6 @@ "tests/harness/terminal-geometry.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -108310,10 +89613,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:tty" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:tty" - }, "anchorSource": "exact" }, { @@ -108344,13 +89643,6 @@ "tests/harness/terminal-geometry.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:tty.isatty", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -108377,10 +89669,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -108404,10 +89692,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108434,10 +89718,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108464,10 +89744,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108491,10 +89767,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108518,10 +89790,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108545,10 +89813,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108575,10 +89839,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108605,10 +89865,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108635,10 +89891,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108665,10 +89917,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108692,10 +89940,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108722,10 +89966,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108749,10 +89989,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108776,10 +90012,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108803,10 +90035,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108830,10 +90058,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108857,10 +90081,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108884,10 +90104,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108911,10 +90127,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108941,10 +90153,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -108971,10 +90179,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109001,10 +90205,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109028,10 +90228,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -109055,10 +90251,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109082,10 +90274,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109109,10 +90297,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -109136,10 +90320,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109163,10 +90343,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109190,10 +90366,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109217,10 +90389,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109244,10 +90412,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109274,10 +90438,6 @@ "tests/corpus/2597-dgram-send-ladders.cjs" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109301,10 +90461,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109328,10 +90484,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109355,10 +90507,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109382,10 +90530,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109409,10 +90553,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:dgram" }, - "dynamic": { - "status": "not-implemented", - "evidence": "unshimmed:node:dgram" - }, "anchorSource": "exact" }, { @@ -109452,18 +90592,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/node24-file-url-conversion/main.ts", - "tests/fixtures/npm/cases/node24-url-authority/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts", - "tests/fixtures/npm/cases/node24-url-mutation/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -109487,10 +90615,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -109514,10 +90638,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -109541,10 +90661,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -109574,15 +90690,6 @@ "tests/fixtures/node-types/url-mutation.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:url.URL", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -109612,15 +90719,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.url.toString", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -109650,15 +90748,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.url.toJSON", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -109682,10 +90771,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -109709,10 +90794,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -109742,15 +90823,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.URL.canParse", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -109780,15 +90852,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.URL.parse", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -109817,13 +90880,6 @@ "tests/fixtures/node-types/url-mutation.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.hash", - "tests": [ - "tests/fixtures/npm/cases/node24-url-mutation/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -109852,13 +90908,6 @@ "tests/fixtures/node-types/url-mutation.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.host", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -109887,13 +90936,6 @@ "tests/fixtures/node-types/url-mutation.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.hostname", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -109922,13 +90964,6 @@ "tests/fixtures/node-types/url-mutation.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.href", - "tests": [ - "tests/fixtures/npm/cases/node24-url-mutation/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -109952,10 +90987,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "ancestor" }, { @@ -109984,13 +91015,6 @@ "tests/fixtures/node-types/url-mutation.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.password", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -110019,13 +91043,6 @@ "tests/fixtures/node-types/url-mutation.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.pathname", - "tests": [ - "tests/fixtures/npm/cases/node24-url-mutation/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -110054,13 +91071,6 @@ "tests/fixtures/node-types/url-mutation.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.port", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -110089,13 +91099,6 @@ "tests/fixtures/node-types/url-mutation.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.protocol", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -110119,10 +91122,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -110151,13 +91150,6 @@ "tests/fixtures/node-types/url-mutation.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.search", - "tests": [ - "tests/fixtures/npm/cases/node24-url-mutation/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -110181,10 +91173,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "ancestor" }, { @@ -110213,13 +91201,6 @@ "tests/fixtures/node-types/url-mutation.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.username", - "tests": [ - "tests/fixtures/npm/cases/node24-url-authority/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -110243,10 +91224,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -110270,10 +91247,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -110297,10 +91270,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -110324,15 +91293,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:url.URLSearchParams", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110356,15 +91316,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.append", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110388,15 +91339,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.delete", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110420,15 +91362,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.entries", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110452,15 +91385,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.forEach", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110484,15 +91408,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.get", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110516,15 +91431,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.getAll", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110548,15 +91454,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.has", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110580,15 +91477,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.keys", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110612,15 +91500,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.set", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110644,15 +91523,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.sort", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110676,15 +91546,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.toString", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110708,15 +91569,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.values", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110740,10 +91592,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -110767,15 +91615,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:url.urlSearchParams.size", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110799,15 +91638,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:url.domainToASCII", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110831,15 +91661,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:url.domainToUnicode", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110869,13 +91690,6 @@ "tests/fixtures/node-types/file-url-conversion.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.url.fileURLToPath", - "tests": [ - "tests/fixtures/npm/cases/node24-file-url-conversion/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110905,13 +91719,6 @@ "tests/fixtures/node-types/file-url-conversion.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.url.fileURLToPathBuffer", - "tests": [ - "tests/fixtures/npm/cases/node24-file-url-conversion/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110935,15 +91742,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:url.format", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -110973,13 +91771,6 @@ "tests/fixtures/node-types/file-url-conversion.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:url.url.pathToFileURL", - "tests": [ - "tests/fixtures/npm/cases/node24-file-url-conversion/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -111003,15 +91794,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:url.urlToHttpOptions", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -111035,10 +91817,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -111062,10 +91840,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111089,10 +91863,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111116,10 +91886,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111143,10 +91909,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111170,10 +91932,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111197,10 +91955,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111224,10 +91978,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111251,10 +92001,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111278,10 +92024,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111305,10 +92047,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111332,10 +92070,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111359,10 +92093,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111386,10 +92116,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:url" - }, "anchorSource": "exact" }, { @@ -111413,15 +92139,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:url.format", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -111445,15 +92162,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:url.format", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -111477,15 +92185,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:url.parse", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -111509,15 +92208,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:url" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:url.resolve", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts", - "tests/fixtures/npm/cases/island-web-plumbing/main.ts", - "tests/fixtures/npm/cases/node24-url-factories/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -111541,10 +92231,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -111568,10 +92254,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -111595,10 +92277,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -111663,24 +92341,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/node24-deep-equality/main.ts", - "tests/fixtures/npm/cases/node24-env/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts", - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-parseargs/main.ts", - "tests/fixtures/npm/cases/node24-style-text/main.ts", - "tests/fixtures/npm/cases/node24-system-errors/main.ts", - "tests/fixtures/npm/cases/node24-text-encoding/main.ts", - "tests/fixtures/npm/cases/node24-text-utilities/main.ts", - "tests/fixtures/npm/cases/node24-util-adapters/main.ts", - "tests/fixtures/npm/cases/node24-util-types/main.ts", - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -111704,10 +92364,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -111731,13 +92387,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util._extend", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -111761,13 +92410,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.isArray", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -111791,14 +92433,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.util.MIMEType", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -111822,14 +92456,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.mime.toString", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -111853,14 +92479,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.mime.toJSON", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -111884,14 +92502,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.type", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -111915,14 +92525,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.subtype", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -111946,14 +92548,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.essence", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -111977,14 +92571,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.params", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -112008,14 +92594,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.util.MIMEParams", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112039,14 +92617,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.mimeParams.delete", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112070,14 +92640,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.mimeParams.entries", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112101,14 +92663,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.mimeParams.get", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112132,14 +92686,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.mimeParams.has", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112163,14 +92709,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.mimeParams.keys", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112194,14 +92732,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.mimeParams.set", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112225,14 +92755,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.mimeParams.values", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112256,14 +92778,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.mimeParams", - "tests": [ - "tests/fixtures/npm/cases/node24-mime/main.ts", - "tests/fixtures/npm/cases/node24-mime-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112293,13 +92807,6 @@ "tests/corpus/3133-text-decoder-streaming.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.TextDecoder", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112323,10 +92830,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -112350,10 +92853,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -112377,10 +92876,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "exact" }, { @@ -112404,10 +92899,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -112437,10 +92928,6 @@ "tests/corpus/3133-text-decoder-streaming.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "exact" }, { @@ -112468,13 +92955,6 @@ "tests/fixtures/node-types/text-encoding.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.encoding", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -112502,13 +92982,6 @@ "tests/fixtures/node-types/text-encoding.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.fatal", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -112536,13 +93009,6 @@ "tests/fixtures/node-types/text-encoding.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.ignoreBOM", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -112572,13 +93038,6 @@ "tests/corpus/3133-text-decoder-streaming.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.TextEncoder", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112608,10 +93067,6 @@ "tests/corpus/3133-text-decoder-streaming.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "exact" }, { @@ -112640,13 +93095,6 @@ "tests/fixtures/node-types/text-encoding.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.textEncoder.encodeInto", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112675,13 +93123,6 @@ "tests/fixtures/node-types/text-encoding.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.encoding", - "tests": [ - "tests/fixtures/npm/cases/node24-text-encoding/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -112705,14 +93146,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.callbackify", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts", - "tests/fixtures/npm/cases/node24-util-adapters/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112736,10 +93169,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "exact" }, { @@ -112763,13 +93192,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.debuglog", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112793,13 +93215,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.debuglog", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112823,13 +93238,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.debug", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112853,13 +93261,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.deprecate", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112883,10 +93284,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "exact" }, { @@ -112910,13 +93307,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.format", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112940,13 +93330,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.formatWithOptions", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -112970,10 +93353,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "exact" }, { @@ -113003,13 +93382,6 @@ "tests/fixtures/node-types/system-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.getSystemErrorName", - "tests": [ - "tests/fixtures/npm/cases/node24-system-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113039,13 +93411,6 @@ "tests/fixtures/node-types/system-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.getSystemErrorMap", - "tests": [ - "tests/fixtures/npm/cases/node24-system-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113075,13 +93440,6 @@ "tests/fixtures/node-types/system-errors.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.getSystemErrorMessage", - "tests": [ - "tests/fixtures/npm/cases/node24-system-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113105,10 +93463,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "exact" }, { @@ -113132,13 +93486,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.inherits", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113162,13 +93509,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.inspect", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113192,13 +93532,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.inspect", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113222,10 +93555,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "ancestor" }, { @@ -113249,10 +93578,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "exact" }, { @@ -113276,13 +93601,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.inspect", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113306,10 +93624,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -113333,10 +93647,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -113360,10 +93670,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -113387,10 +93693,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -113421,13 +93723,6 @@ "packages/compiler/test/deep-equality.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.isDeepStrictEqual", - "tests": [ - "tests/fixtures/npm/cases/node24-deep-equality/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113455,14 +93750,6 @@ "tests/corpus/node24-parseargs.js" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.parseArgs", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts", - "tests/fixtures/npm/cases/node24-parseargs/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113490,14 +93777,6 @@ "tests/corpus/node24-parseargs.js" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.parseArgs", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts", - "tests/fixtures/npm/cases/node24-parseargs/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113528,13 +93807,6 @@ "tests/harness/project-config.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.parseEnv", - "tests": [ - "tests/fixtures/npm/cases/node24-env/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113563,14 +93835,6 @@ "tests/corpus/2912-promisify-fs-readfile.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.promisify", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts", - "tests/fixtures/npm/cases/node24-util-adapters/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113594,10 +93858,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -113621,10 +93881,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "ancestor" }, { @@ -113655,13 +93911,6 @@ "tests/fixtures/node-types/text-utilities.ts" ] }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.util.stripVTControlCharacters", - "tests": [ - "tests/fixtures/npm/cases/node24-text-utilities/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113692,13 +93941,6 @@ "tests/fixtures/node-types/style-text.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.styleText", - "tests": [ - "tests/fixtures/npm/cases/node24-style-text/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113729,13 +93971,6 @@ "tests/fixtures/node-types/text-utilities.ts" ] }, - "dynamic": { - "status": "supported", - "evidence": "island-feature:util.util.toUSVString", - "tests": [ - "tests/fixtures/npm/cases/node24-text-utilities/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113759,10 +93994,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "exact" }, { @@ -113786,10 +94017,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "exact" }, { @@ -113813,10 +94040,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:util" - }, "anchorSource": "exact" }, { @@ -113846,13 +94069,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:util.types", - "tests": [ - "tests/fixtures/npm/cases/util-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113882,13 +94098,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isAnyArrayBuffer", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113918,13 +94127,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isArrayBufferView", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113948,13 +94150,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isArgumentsObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -113984,13 +94179,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isArrayBuffer", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114020,13 +94208,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isAsyncFunction", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114050,13 +94231,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isBigInt64Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114080,13 +94254,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isBigIntObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114110,13 +94277,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isBigUint64Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114140,13 +94300,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isBooleanObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114170,13 +94323,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isBoxedPrimitive", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114200,10 +94346,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:util.util.types.isCryptoKey" - }, "anchorSource": "exact" }, { @@ -114233,13 +94375,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isDataView", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114263,13 +94398,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isDate", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114293,10 +94421,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:util.util.types.isExternal" - }, "anchorSource": "exact" }, { @@ -114320,13 +94444,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isFloat16Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114356,13 +94473,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isFloat32Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114392,13 +94502,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isFloat64Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114428,13 +94531,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isGeneratorFunction", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114464,13 +94560,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isGeneratorObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114500,13 +94589,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isInt8Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114536,13 +94618,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isInt16Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114572,13 +94647,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isInt32Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114602,10 +94670,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-feature:util.util.types.isKeyObject" - }, "anchorSource": "exact" }, { @@ -114635,13 +94699,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isMap", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114665,13 +94722,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isMapIterator", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114695,13 +94745,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isModuleNamespaceObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114731,13 +94774,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isNativeError", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114761,13 +94797,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isNumberObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114797,13 +94826,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isPromise", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114833,13 +94855,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isProxy", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114869,13 +94884,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isRegExp", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114905,13 +94913,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isSet", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114935,13 +94936,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isSetIterator", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114965,13 +94959,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isSharedArrayBuffer", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -114995,13 +94982,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isStringObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -115025,13 +95005,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:util" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isSymbolObject", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -115061,13 +95034,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isTypedArray", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -115097,13 +95063,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isUint8Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -115133,13 +95092,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isUint8ClampedArray", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -115169,13 +95121,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isUint16Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -115205,13 +95150,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isUint32Array", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -115241,13 +95179,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isWeakMap", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -115277,13 +95208,6 @@ "tests/fixtures/node-types/util-types.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:util.util.types.isWeakSet", - "tests": [ - "tests/fixtures/npm/cases/node24-util-types/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -115305,13 +95229,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -115330,10 +95247,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -115352,10 +95265,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.Serializer" - }, "anchorSource": "exact" }, { @@ -115374,10 +95283,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115396,10 +95301,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115418,10 +95319,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115440,10 +95337,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115462,10 +95355,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115484,10 +95373,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115506,10 +95391,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115528,10 +95409,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115550,10 +95427,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115572,10 +95445,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115594,10 +95463,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115616,10 +95481,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115638,10 +95499,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.Deserializer" - }, "anchorSource": "exact" }, { @@ -115660,10 +95517,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115682,10 +95535,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115704,10 +95553,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115726,10 +95571,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115748,10 +95589,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115770,10 +95607,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115792,10 +95625,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115814,10 +95643,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115836,10 +95661,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -115858,10 +95679,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.DefaultSerializer" - }, "anchorSource": "exact" }, { @@ -115880,10 +95697,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.DefaultDeserializer" - }, "anchorSource": "exact" }, { @@ -115902,10 +95715,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.serialize" - }, "anchorSource": "exact" }, { @@ -115924,10 +95733,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.deserialize" - }, "anchorSource": "exact" }, { @@ -115946,10 +95751,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -115968,10 +95769,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -115990,10 +95787,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116015,10 +95808,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116040,10 +95829,6 @@ "tests/harness/node-test.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116062,10 +95847,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116084,10 +95865,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116106,10 +95883,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116128,10 +95901,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116150,10 +95919,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116172,10 +95937,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116194,10 +95955,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -116216,10 +95973,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116238,10 +95991,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116260,10 +96009,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116282,10 +96027,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116304,10 +96045,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.GCProfiler" - }, "anchorSource": "exact" }, { @@ -116326,10 +96063,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116348,10 +96081,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116370,10 +96099,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116392,10 +96117,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116414,10 +96135,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116436,10 +96153,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116458,10 +96171,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116480,10 +96189,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116502,10 +96207,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116524,10 +96225,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116546,10 +96243,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116568,10 +96261,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:v8" - }, "anchorSource": "exact" }, { @@ -116590,13 +96279,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:v8.cachedDataVersionTag", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -116615,13 +96297,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:v8.getHeapCodeStatistics", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -116640,10 +96315,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.getHeapSnapshot" - }, "anchorSource": "exact" }, { @@ -116662,13 +96333,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:v8.getHeapSpaceStatistics", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -116687,13 +96351,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:v8.getHeapStatistics", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -116712,13 +96369,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:v8.getCppHeapStatistics", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -116737,10 +96387,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.queryObjects" - }, "anchorSource": "exact" }, { @@ -116759,13 +96405,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:v8.setFlagsFromString", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -116784,13 +96423,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:v8.stopCoverage", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -116809,13 +96441,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:v8.takeCoverage", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -116834,10 +96459,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.writeHeapSnapshot" - }, "anchorSource": "exact" }, { @@ -116856,13 +96477,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:v8.setHeapSnapshotNearHeapLimit", - "tests": [ - "tests/fixtures/npm/cases/misc-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -116881,10 +96495,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.isStringOneByteRepresentation" - }, "anchorSource": "exact" }, { @@ -116903,10 +96513,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:v8" }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:v8.startCpuProfile" - }, "anchorSource": "exact" }, { @@ -116930,10 +96536,6 @@ "status": "by-design", "evidence": "derived:descendants" }, - "dynamic": { - "status": "by-design", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -116957,10 +96559,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -116984,10 +96582,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -117011,10 +96605,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117038,10 +96628,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -117065,10 +96651,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117092,10 +96674,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117119,10 +96697,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117146,10 +96720,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117173,10 +96743,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117200,10 +96766,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117227,10 +96789,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117254,10 +96812,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117281,10 +96835,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117308,10 +96858,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117335,10 +96881,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "ancestor" }, { @@ -117362,10 +96904,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "ancestor" }, { @@ -117389,10 +96927,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117416,10 +96950,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117443,10 +96973,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117470,10 +96996,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "ancestor" }, { @@ -117497,10 +97019,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "ancestor" }, { @@ -117524,10 +97042,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "ancestor" }, { @@ -117551,10 +97065,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "ancestor" }, { @@ -117578,10 +97088,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117605,10 +97111,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117632,10 +97134,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117659,10 +97157,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117686,10 +97180,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117713,10 +97203,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117740,10 +97226,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "ancestor" }, { @@ -117767,10 +97249,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "ancestor" }, { @@ -117794,10 +97272,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117821,10 +97295,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117848,10 +97318,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117875,10 +97341,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117902,10 +97364,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117929,10 +97387,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117956,10 +97410,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -117983,10 +97433,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -118010,10 +97456,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -118037,10 +97479,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "chapter" }, { @@ -118064,10 +97502,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:vm" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:vm" - }, "anchorSource": "exact" }, { @@ -118091,10 +97525,6 @@ "status": "by-design", "evidence": "derived:descendants" }, - "dynamic": { - "status": "by-design", - "evidence": "derived:descendants" - }, "anchorSource": "chapter" }, { @@ -118118,10 +97548,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118145,10 +97571,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:wasi" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:wasi" - }, "anchorSource": "exact" }, { @@ -118172,10 +97594,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:wasi" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:wasi" - }, "anchorSource": "exact" }, { @@ -118199,10 +97617,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:wasi" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:wasi" - }, "anchorSource": "exact" }, { @@ -118226,10 +97640,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:wasi" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:wasi" - }, "anchorSource": "exact" }, { @@ -118253,10 +97663,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:wasi" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:wasi" - }, "anchorSource": "exact" }, { @@ -118280,10 +97686,6 @@ "status": "by-design", "evidence": "compiler-chapter-policy:wasi" }, - "dynamic": { - "status": "by-design", - "evidence": "island-chapter-policy:wasi" - }, "anchorSource": "ancestor" }, { @@ -118318,14 +97720,6 @@ "tests/harness/npm-static.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -118349,10 +97743,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118376,10 +97766,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118403,10 +97789,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118430,10 +97812,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118457,10 +97835,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118484,10 +97858,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118511,10 +97881,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118538,10 +97904,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118565,10 +97927,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118592,10 +97950,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118619,10 +97973,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118646,10 +97996,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118673,10 +98019,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118700,10 +98042,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118727,10 +98065,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118754,10 +98088,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118781,10 +98111,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118808,10 +98134,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118835,10 +98157,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -118862,10 +98180,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -118889,10 +98203,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -118916,10 +98226,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -118943,10 +98249,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -118970,10 +98272,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -118997,10 +98295,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119024,10 +98318,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119051,10 +98341,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -119078,10 +98364,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119105,10 +98387,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119132,10 +98410,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -119159,10 +98433,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119186,10 +98456,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119213,10 +98479,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -119240,10 +98502,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119267,10 +98525,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119294,10 +98548,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119321,10 +98571,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -119348,10 +98594,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119375,10 +98617,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119402,10 +98640,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -119429,10 +98663,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119456,10 +98686,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119483,10 +98709,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -119510,10 +98732,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119537,10 +98755,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119564,10 +98778,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119591,10 +98801,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119618,10 +98824,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119645,10 +98847,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119672,10 +98870,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119699,10 +98893,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119726,10 +98916,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -119753,10 +98939,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119780,10 +98962,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119807,10 +98985,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -119834,10 +99008,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119861,10 +99031,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119888,10 +99054,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119915,10 +99077,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119942,10 +99100,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -119969,10 +99123,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -119996,10 +99146,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120023,10 +99169,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -120061,14 +99203,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -120092,10 +99226,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120119,10 +99249,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -120146,10 +99272,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120173,10 +99295,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120200,10 +99318,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -120227,10 +99341,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120254,10 +99364,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120281,10 +99387,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -120308,10 +99410,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120335,10 +99433,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120362,10 +99456,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -120389,10 +99479,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120416,10 +99502,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120443,10 +99525,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -120470,10 +99548,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120497,10 +99571,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120524,10 +99594,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -120562,14 +99628,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -120593,10 +99651,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120620,10 +99674,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120647,10 +99697,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120674,10 +99720,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -120712,14 +99754,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -120743,10 +99777,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120770,10 +99800,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120797,10 +99823,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -120835,14 +99857,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -120866,10 +99880,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120893,10 +99903,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -120920,10 +99926,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -120958,14 +99960,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -120989,10 +99983,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121016,10 +100006,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121043,10 +100029,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -121070,10 +100052,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121097,10 +100075,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -121124,10 +100098,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121151,10 +100121,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121178,10 +100144,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -121205,10 +100167,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121232,10 +100190,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121259,10 +100213,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -121286,10 +100236,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121313,10 +100259,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121340,10 +100282,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -121367,10 +100305,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121394,10 +100328,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121421,10 +100351,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121448,10 +100374,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -121486,14 +100408,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -121517,10 +100431,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121544,10 +100454,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121571,10 +100477,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121598,10 +100500,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -121636,14 +100534,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -121667,10 +100557,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121694,10 +100580,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -121732,14 +100614,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -121763,10 +100637,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121790,10 +100660,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121817,10 +100683,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121844,10 +100706,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -121882,14 +100740,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.hash", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -121913,10 +100763,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121940,10 +100786,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121967,10 +100809,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -121994,10 +100832,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122021,10 +100855,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -122048,10 +100878,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -122075,10 +100901,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122102,10 +100924,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -122129,10 +100947,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -122156,10 +100970,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122183,14 +100993,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.getRandomValues", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -122225,14 +101027,6 @@ "tests/corpus/node24-crypto-kdf-options.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.randomUUID", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -122256,14 +101050,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:crypto.subtle", - "tests": [ - "tests/fixtures/npm/cases/crypto-shims/main.ts", - "tests/fixtures/npm/cases/node24-crypto-kdf/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -122287,10 +101073,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122314,10 +101096,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122341,10 +101119,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -122368,10 +101142,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -122395,10 +101165,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -122422,10 +101188,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122449,10 +101211,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -122476,10 +101234,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "ancestor" }, { @@ -122503,10 +101257,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122530,10 +101280,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122557,10 +101303,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122584,10 +101326,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122611,10 +101349,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122638,10 +101372,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122665,10 +101395,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122692,10 +101418,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122719,10 +101441,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122746,10 +101464,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122773,10 +101487,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122800,10 +101510,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122827,10 +101533,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122854,10 +101556,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122881,10 +101579,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122908,10 +101602,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122935,10 +101625,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122962,10 +101648,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webcrypto" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webcrypto" - }, "anchorSource": "exact" }, { @@ -122993,24 +101675,6 @@ "tests/harness/fetch-conformance.test.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/web-streams/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -123034,10 +101698,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -123061,10 +101721,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -123088,10 +101744,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -123115,10 +101767,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -123142,10 +101790,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.stream.consumers.arrayBuffer" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123169,10 +101813,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.stream.consumers.blob" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123196,10 +101836,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123223,10 +101859,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123250,10 +101882,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123277,10 +101905,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123304,24 +101928,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.ReadableStream", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123345,10 +101951,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -123372,10 +101974,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123399,15 +101997,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readableStream.cancel", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123431,15 +102020,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readableStream.getReader", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123463,15 +102043,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readableStream.pipeThrough", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123495,15 +102066,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readableStream.pipeTo", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123527,15 +102089,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readableStream.tee", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123562,10 +102115,6 @@ "tests/corpus/2862-web-readable-async-iteration.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123589,15 +102138,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.locked", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -123621,24 +102161,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.ReadableStreamDefaultReader", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123662,14 +102184,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readableStreamDefaultReader.cancel", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123693,14 +102207,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readableStreamDefaultReader.read", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123724,14 +102230,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readableStreamDefaultReader.releaseLock", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123755,14 +102253,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.closed", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -123786,10 +102276,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123813,10 +102299,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123840,10 +102322,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123867,10 +102345,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -123894,10 +102368,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -123921,24 +102391,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.ReadableStreamDefaultController", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123962,14 +102414,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readableStreamDefaultController.close", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -123993,14 +102437,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readableStreamDefaultController.enqueue", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124024,14 +102460,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readableStreamDefaultController.error", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124055,16 +102483,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.desiredSize", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -124088,10 +102506,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -124115,10 +102529,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -124142,10 +102552,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -124169,10 +102575,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -124196,10 +102598,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -124223,10 +102621,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -124250,10 +102644,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -124277,10 +102667,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -124304,10 +102690,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -124331,10 +102713,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -124358,24 +102736,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.WritableStream", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124399,10 +102759,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -124426,15 +102782,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.writableStream.abort", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124458,15 +102805,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.writableStream.close", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124490,15 +102828,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.writableStream.getWriter", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124522,15 +102851,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.locked", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -124554,24 +102874,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.WritableStreamDefaultWriter", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124595,15 +102897,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.writableStreamDefaultWriter.abort", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124627,15 +102920,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.writableStreamDefaultWriter.close", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124659,15 +102943,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.writableStreamDefaultWriter.releaseLock", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124691,15 +102966,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.writableStreamDefaultWriter.write", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124723,15 +102989,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.closed", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -124755,15 +103012,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.desiredSize", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -124787,15 +103035,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.ready", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -124819,24 +103058,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.WritableStreamDefaultController", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124860,15 +103081,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.writableStreamDefaultController.error", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124892,15 +103104,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.signal", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -124924,24 +103127,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.TransformStream", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -124965,10 +103150,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -124992,14 +103173,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readable", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -125023,14 +103196,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.writable", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -125054,24 +103219,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.TransformStreamDefaultController", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -125095,13 +103242,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.transformStreamDefaultController.enqueue", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -125125,13 +103265,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.transformStreamDefaultController.error", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -125155,13 +103288,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.transformStreamDefaultController.terminate", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -125185,13 +103311,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.desiredSize", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -125215,24 +103334,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.ByteLengthQueuingStrategy", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -125256,15 +103357,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.highWaterMark", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -125288,15 +103380,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.size", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -125320,24 +103403,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.CountQueuingStrategy", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -125361,15 +103426,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.highWaterMark", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -125393,15 +103449,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.size", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -125425,24 +103472,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.TextEncoderStream", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -125466,13 +103495,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.encoding", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -125496,13 +103518,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.readable", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -125526,13 +103541,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-feature:webstreams.writable", - "tests": [ - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -125556,24 +103564,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:stream/web.TextDecoderStream", - "tests": [ - "tests/fixtures/npm/cases/web-streams/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-queues/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipes/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-errors/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-pipe-abort/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-transforms/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-encoding/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readers/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-readable-lifecycle/main.ts", - "tests/fixtures/npm/cases/node24-web-stream-tee/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -125597,10 +103587,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -125624,10 +103610,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -125651,10 +103633,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -125678,10 +103656,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -125705,10 +103679,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -125732,10 +103702,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -125759,10 +103725,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -125786,10 +103748,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -125813,10 +103771,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -125840,10 +103794,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -125867,10 +103817,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:webstreams" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "ancestor" }, { @@ -125897,10 +103843,6 @@ "tests/harness/fetch-conformance.test.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:webstreams" - }, "anchorSource": "exact" }, { @@ -125942,13 +103884,6 @@ "tests/corpus/native-worker-terminate-wait.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -125972,10 +103907,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -125999,10 +103930,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -126026,10 +103953,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -126053,10 +103976,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126080,10 +103999,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126107,10 +104022,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126134,10 +104045,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126161,10 +104068,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126188,10 +104091,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "ancestor" }, { @@ -126215,10 +104114,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "ancestor" }, { @@ -126242,13 +104137,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.MessageChannel", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -126277,13 +104165,6 @@ "tests/corpus/native-worker-references.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.MessagePort", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -126310,13 +104191,6 @@ "tests/corpus/native-worker-port-lifetime.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:worker_threads.port.close", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -126346,13 +104220,6 @@ "tests/corpus/native-worker-delayed-messages.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:worker_threads.port.postMessage", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -126376,10 +104243,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -126403,10 +104266,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -126433,13 +104292,6 @@ "tests/corpus/native-worker-port-lifetime.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:worker_threads.port.hasRef", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -126466,13 +104318,6 @@ "tests/corpus/native-worker-port-lifetime.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:worker_threads.port.ref", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -126499,13 +104344,6 @@ "tests/corpus/native-worker-port-lifetime.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:worker_threads.port.start", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -126532,13 +104370,6 @@ "tests/corpus/native-worker-port-lifetime.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:worker_threads.port.unref", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -126566,10 +104397,6 @@ "tests/corpus/native-worker-messages.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126597,10 +104424,6 @@ "tests/corpus/native-worker-messages.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126624,10 +104447,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126657,10 +104476,6 @@ "tests/corpus/native-worker-roots/main.ts" ] }, - "dynamic": { - "status": "refused", - "evidence": "island-stub:node:worker_threads.Worker" - }, "anchorSource": "exact" }, { @@ -126684,10 +104499,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126711,10 +104522,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126738,10 +104545,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126771,10 +104574,6 @@ "tests/corpus/native-worker-delayed-messages.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126801,10 +104600,6 @@ "tests/corpus/native-worker-references.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126828,10 +104623,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126855,10 +104646,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126888,10 +104675,6 @@ "tests/corpus/native-worker-loop-cancellation.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126918,10 +104701,6 @@ "tests/corpus/native-worker-references.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126945,10 +104724,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126972,10 +104747,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -126999,10 +104770,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127026,13 +104793,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.resourceLimits", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -127056,10 +104816,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "ancestor" }, { @@ -127083,10 +104839,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "ancestor" }, { @@ -127110,10 +104862,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "ancestor" }, { @@ -127142,13 +104890,6 @@ "tests/corpus/native-worker-references.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.threadId", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -127172,10 +104913,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "ancestor" }, { @@ -127204,10 +104941,6 @@ "tests/corpus/native-worker-exit-listeners.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127236,10 +104969,6 @@ "tests/corpus/native-worker-exit-listeners.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127268,10 +104997,6 @@ "tests/corpus/native-worker-exit-listeners.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127295,10 +105020,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127327,10 +105048,6 @@ "tests/corpus/native-worker-exit-listeners.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127354,13 +105071,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.getEnvironmentData", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -127384,13 +105094,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.markAsUntransferable", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -127414,10 +105117,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127441,10 +105140,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127468,10 +105163,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127495,10 +105186,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127522,13 +105209,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.receiveMessageOnPort", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -127552,13 +105232,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.setEnvironmentData", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -127582,10 +105255,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "chapter" }, { @@ -127614,13 +105283,6 @@ "tests/corpus/native-worker-references.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.isMainThread", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -127649,13 +105311,6 @@ "tests/corpus/native-worker-references.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.parentPort", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -127679,13 +105334,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.resourceLimits", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -127709,13 +105357,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.SHARE_ENV", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -127744,13 +105385,6 @@ "tests/corpus/native-worker-references.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.threadId", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -127774,10 +105408,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "chapter" }, { @@ -127806,13 +105436,6 @@ "tests/corpus/native-worker-references.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:worker_threads.workerData", - "tests": [ - "tests/fixtures/npm/cases/island-web-plumbing/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -127836,10 +105459,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "chapter" }, { @@ -127863,10 +105482,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127890,10 +105505,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "ancestor" }, { @@ -127917,10 +105528,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "ancestor" }, { @@ -127944,10 +105551,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127971,10 +105574,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -127998,10 +105597,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:worker_threads" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:worker_threads" - }, "anchorSource": "exact" }, { @@ -128030,13 +105625,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "derived:descendants", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "chapter" }, { @@ -128060,10 +105648,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -128087,10 +105671,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -128114,10 +105694,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -128141,13 +105717,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.BrotliCompress", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128171,13 +105740,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.BrotliDecompress", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128201,13 +105763,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.Deflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128231,13 +105786,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.DeflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128261,13 +105809,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.Gunzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128291,13 +105832,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.Gzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128321,13 +105855,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.Inflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128351,13 +105878,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.InflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128381,13 +105901,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.Unzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128411,10 +105924,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -128438,13 +105947,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:zlib.zlib.close", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128468,13 +105970,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:zlib.zlib.flush", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128498,10 +105993,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -128525,13 +106016,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-member:node:zlib.zlib.reset", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128555,10 +106039,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "ancestor" }, { @@ -128582,10 +106062,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -128609,10 +106085,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -128641,10 +106113,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -128668,13 +106136,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.createBrotliCompress", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128698,13 +106159,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.createBrotliDecompress", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128728,13 +106182,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.createDeflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128758,13 +106205,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.createDeflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128788,13 +106228,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.createGunzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128818,13 +106251,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.createGzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128848,13 +106274,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.createInflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128878,13 +106297,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.createInflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128908,13 +106320,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.createUnzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -128938,10 +106343,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -128965,10 +106366,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -128992,10 +106389,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -129019,13 +106412,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.zlib.brotliCompressSync" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.brotliCompressSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129049,10 +106435,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -129076,13 +106458,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.zlib.brotliDecompressSync" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.brotliDecompressSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129111,13 +106486,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.deflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129146,13 +106514,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.deflateSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129181,13 +106542,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.deflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129216,13 +106570,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.deflateRawSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129251,13 +106598,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.gunzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129286,13 +106626,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.gunzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129321,13 +106654,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.gzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129356,13 +106682,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.gzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129391,13 +106710,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.inflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129426,13 +106738,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.inflateSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129461,13 +106766,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.inflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129496,13 +106794,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.inflateRawSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129531,13 +106822,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.unzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129566,13 +106850,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.unzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129596,10 +106873,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -129623,10 +106896,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -129650,10 +106919,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -129677,10 +106942,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -129704,13 +106965,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.constants", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "exact" }, { @@ -129734,10 +106988,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -129761,10 +107011,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -129788,10 +107034,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -129815,10 +107057,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -129842,10 +107080,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -129869,10 +107103,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -129896,10 +107126,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -129923,10 +107149,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -129950,10 +107172,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -129977,10 +107195,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -130004,10 +107218,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -130031,10 +107241,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -130058,10 +107264,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -130085,10 +107287,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -130112,10 +107310,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -130139,10 +107333,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -130166,10 +107356,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -130193,10 +107379,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -130220,10 +107402,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "exact" }, { @@ -130247,10 +107425,6 @@ "status": "not-applicable", "evidence": "documentation" }, - "dynamic": { - "status": "not-applicable", - "evidence": "documentation" - }, "anchorSource": "exact" }, { @@ -130274,10 +107448,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "ancestor" }, { @@ -130301,13 +107471,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.zlib.brotliCompressSync" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.brotliCompressSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130331,10 +107494,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "ancestor" }, { @@ -130358,13 +107517,6 @@ "status": "refused", "evidence": "surface-manifest:unsupported:node-builtin.zlib.brotliDecompressSync" }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.brotliDecompressSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130393,13 +107545,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.deflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130428,13 +107573,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.deflateSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130463,13 +107601,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.deflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130498,13 +107629,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.deflateRawSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130533,13 +107657,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.gunzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130568,13 +107685,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.gunzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130603,13 +107713,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.gzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130638,13 +107741,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.gzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130673,13 +107769,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.inflate", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130708,13 +107797,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.inflateSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130743,13 +107825,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.inflateRaw", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130778,13 +107853,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.inflateRawSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130813,13 +107881,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.unzip", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130848,13 +107909,6 @@ "tests/corpus/3115-zlib-static-compression-levels.ts" ] }, - "dynamic": { - "status": "partial", - "evidence": "island-export:node:zlib.unzipSync", - "tests": [ - "tests/fixtures/npm/cases/zlib-shims/main.ts" - ] - }, "anchorSource": "ancestor" }, { @@ -130878,10 +107932,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "ancestor" }, { @@ -130905,10 +107955,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "ancestor" }, { @@ -130932,10 +107978,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "ancestor" }, { @@ -130959,10 +108001,6 @@ "status": "not-implemented", "evidence": "compiler-unmatched:zlib" }, - "dynamic": { - "status": "not-implemented", - "evidence": "island-unmatched:zlib" - }, "anchorSource": "ancestor" } ], diff --git a/internal/compatibility/package.json b/internal/compatibility/package.json index eda4abcf4..dd74134f0 100644 --- a/internal/compatibility/package.json +++ b/internal/compatibility/package.json @@ -7,7 +7,7 @@ "build": "pnpm check", "update": "node src/update.mjs", "backlog": "node src/backlog.mjs", - "check": "node src/generate-island-header.mjs --check && node src/generate.mjs --check-local", + "check": "node src/generate.mjs --check-local", "check:upstream": "node src/generate.mjs --check" } } diff --git a/internal/compatibility/src/backlog.mjs b/internal/compatibility/src/backlog.mjs index 0a55c7f1f..fc44a7cef 100644 --- a/internal/compatibility/src/backlog.mjs +++ b/internal/compatibility/src/backlog.mjs @@ -30,7 +30,7 @@ const format = option("format") ?? "summary"; const limit = integerOption("limit", format === "summary" ? 20 : Number.MAX_SAFE_INTEGER); for (const [name, value, allowed] of [ - ["tier", tierFilter, ["static", "dynamic"]], + ["tier", tierFilter, ["static"]], [ "action", actionFilter, diff --git a/internal/compatibility/src/generate-island-header.mjs b/internal/compatibility/src/generate-island-header.mjs deleted file mode 100644 index 6b53d8fc6..000000000 --- a/internal/compatibility/src/generate-island-header.mjs +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env node - -import { readFileSync, writeFileSync } from "node:fs"; -import { fileURLToPath } from "node:url"; - -const packageRoot = fileURLToPath(new URL("../", import.meta.url)); -const root = fileURLToPath(new URL("../../../", import.meta.url)); -const manifestPath = `${packageRoot}dynamic-support.json`; -const headerPath = `${root}packages/runtime/src/scr_island_manifest.h`; -const manifest = JSON.parse(readFileSync(manifestPath, "utf8")); - -function wrap(text, width = 88) { - const out = []; - for (let i = 0; i < text.length; i += width) out.push(text.slice(i, i + width)); - return out; -} - -function render() { - const lines = [ - "/* Generated by @internal/compatibility from dynamic-support.json.", - " * Do not edit: the manifest is the implementation-owned builtin registry. */", - "static const struct {", - " const char *name;", - " const char *exports;", - "} isl_builtins[] = {", - ]; - for (const [module, entry] of Object.entries(manifest.modules)) { - const chunks = wrap(entry.exports.join(",")); - lines.push(` {"node:${module}",`); - for (let i = 0; i < chunks.length; i++) { - lines.push(` "${chunks[i]}"${i === chunks.length - 1 ? "}," : ""}`); - } - } - lines.push("};", ""); - return lines.join("\n"); -} - -const rendered = render(); -if (process.argv.includes("--check")) { - if (readFileSync(headerPath, "utf8") !== rendered) { - throw new Error("scr_island_manifest.h is stale; run 'pnpm node-compat'"); - } - console.log(`island manifest is current (${Object.keys(manifest.modules).length} modules)`); -} else { - writeFileSync(headerPath, rendered); - console.log( - `wrote packages/runtime/src/scr_island_manifest.h (${Object.keys(manifest.modules).length} modules)`, - ); -} diff --git a/internal/compatibility/src/generate.mjs b/internal/compatibility/src/generate.mjs index cdf8b2b01..d259d918f 100644 --- a/internal/compatibility/src/generate.mjs +++ b/internal/compatibility/src/generate.mjs @@ -5,7 +5,7 @@ * Node owns the denominator: the pinned index.md names every API chapter and all.json * supplies the structured API tree (classes, methods, properties, events, * globals, overloads, and conceptual sections). scriptc owns the projection: - * the compiler surface/dedicated manifests and the runtime island manifest. + * the compiler surface and dedicated native compatibility manifests. * Anything those sources do not prove is either "not-implemented" (when a * known implementation surface has no matching implementation) or * "unreviewed" (when no compatibility subsystem owns the classification). @@ -27,7 +27,6 @@ const publicOutputPath = `${root}docs/src/generated/node-v24-compatibility.json` const publicMetaOutputPath = `${root}docs/src/generated/node-v24-compatibility-meta.json`; const compilerManifestPath = `${root}packages/compiler/surface-manifest.json`; const compilerCompatPath = `${packageRoot}static-support.json`; -const islandManifestPath = `${packageRoot}dynamic-support.json`; const pinPath = `${packageRoot}node-v24.json`; const pin = JSON.parse(readFileSync(pinPath, "utf8")); const NODE_BASE = pin.markdownBaseUrl; @@ -297,46 +296,14 @@ function scopeOf(row) { function classificationContext() { const compilerCompat = JSON.parse(readFileSync(compilerCompatPath, "utf8")); - const island = JSON.parse(readFileSync(islandManifestPath, "utf8")); for (const [chapter, status] of Object.entries(compilerCompat.chapterPolicies)) { validateStatus(status, `static chapter policy '${chapter}'`); } - for (const [chapter, status] of Object.entries(island.chapterPolicies)) { - validateStatus(status, `dynamic chapter policy '${chapter}'`); - } - for (const [module, entry] of Object.entries(island.modules)) { - const exports = new Set(entry.exports); - for (const name of entry.refused ?? []) { - if (!exports.has(name)) - throw new Error(`island module '${module}' marks non-export '${name}' refused`); - } - const members = new Set(entry.members ?? []); - for (const name of entry.refusedMembers ?? []) { - if (members.has(name)) - throw new Error( - `island module '${module}' marks member '${name}' both supported and refused`, - ); - } - validateEvidence(entry.evidence, `island module '${module}'`); - } - const supportedGlobals = new Set(island.globals.supported); - const npmSupportedGlobals = new Set(island.globals.npmSupported ?? []); - for (const name of npmSupportedGlobals) { - if (supportedGlobals.has(name)) - throw new Error(`island global '${name}' is both always-supported and npm-supported`); - } - for (const name of island.globals.absent) { - if (supportedGlobals.has(name) || npmSupportedGlobals.has(name)) - throw new Error(`island global '${name}' is both supported and absent`); - } - validateEvidence(island.globals.evidence, "island globals"); return { manifest: manifestIndex(), compilerCompat, dedicated: dedicatedIndex(compilerCompat), staticFeatures: featureEntries(compilerCompat), - dynamicFeatures: featureEntries(island), - island, }; } @@ -387,78 +354,6 @@ function classifyStatic(row, chapter, ctx, parentSignature) { return tier("unreviewed", ""); } -function classifyDynamic(row, chapter, ctx, parentSignature) { - if (row.depth === 0) return tier("unreviewed", "", { source: "chapter-summary" }); - if (row.scope === "documentation" || row.scope === "configuration") - return tier("not-applicable", "", { source: row.scope }); - const feature = featureOf(row, ctx.dynamicFeatures, parentSignature); - if (feature) - return tier(feature.status, "", { - source: `island-feature:${row.chapter}.${row.apiSymbol}`, - tests: feature.evidence, - }); - - if (row.chapter === "globals") { - if (ctx.island.globals.supported.includes(row.name)) { - return tier("partial", "", { - source: `island-global:${row.name}`, - tests: ctx.island.globals.evidence, - }); - } - if (ctx.island.globals.npmSupported?.includes(row.name)) { - return tier("partial", "", { - source: `island-npm-global:${row.name}`, - tests: ctx.island.globals.evidence, - }); - } - if (ctx.island.globals.absent.includes(row.name)) { - return tier("not-implemented", "", { - source: `island-global-absent:${row.name}`, - tests: ctx.island.globals.evidence, - }); - } - } - - const modules = pin.chapterModules[row.chapter] ?? []; - for (const module of modules) { - const moduleEntry = ctx.island.modules[module]; - const direct = directExportName(row, module); - if (!moduleEntry) continue; - if (moduleEntry.refusedMembers?.includes(row.apiSymbol)) { - return tier("refused", "", { source: `island-member-stub:node:${module}.${row.apiSymbol}` }); - } - if (moduleEntry.members?.includes(row.apiSymbol)) { - return tier("partial", "", { - source: `island-member:node:${module}.${row.apiSymbol}`, - tests: moduleEntry.evidence, - }); - } - if (direct && moduleEntry.refused?.includes(direct)) { - return tier("refused", "", { source: `island-stub:node:${module}.${direct}` }); - } - if (direct && moduleEntry.exports.includes(direct)) { - return tier("partial", "", { - source: `island-export:node:${module}.${direct}`, - tests: moduleEntry.evidence, - }); - } - } - - const policy = ctx.island.chapterPolicies[row.chapter]; - if (policy && policy !== "unreviewed") { - return tier(policy, "", { source: `island-chapter-policy:${row.chapter}` }); - } - if (modules.length > 0 && modules.every((module) => ctx.island.modules[module] === undefined)) { - return tier("not-implemented", "", { - source: `unshimmed:${modules.map((module) => `node:${module}`).join(",")}`, - }); - } - if (modules.length > 0 || row.chapter === "globals" || row.chapter === "errors") { - return tier("not-implemented", "", { source: `island-unmatched:${row.chapter}` }); - } - return tier("unreviewed", ""); -} - function treeSize(node) { let size = 1; for (const field of CHILD_FIELDS) for (const child of node[field] ?? []) size += treeSize(child); @@ -502,7 +397,6 @@ function flattenChapter(rootNode, chapter, ctx) { row.scope = scopeOf(row); const parentSignature = parents.at(-1)?.textRaw ?? parents.at(-1)?.name; row.static = classifyStatic(row, chapter, ctx, parentSignature); - row.dynamic = classifyDynamic(row, chapter, ctx, parentSignature); rows.push(row); for (const field of CHILD_FIELDS) { for (const child of node[field] ?? []) walk(child, [...parents, node], depth + 1, stability); @@ -530,7 +424,7 @@ function summarizeTier(rows, key, chapterPolicy) { const tests = [...new Set(descendants.flatMap((tier) => tier.tests ?? []))].sort(); if (statuses.size === 0 && chapterPolicy) { return tier(chapterPolicy, "", { - source: `${key === "static" ? "compiler" : "island"}-chapter-policy:${rows[0].chapter}`, + source: `compiler-chapter-policy:${rows[0].chapter}`, }); } if (statuses.size === 1) @@ -618,18 +512,12 @@ function buildSnapshot({ allJson, indexMarkdown, allSha256, indexSha256 }) { "static", ctx.compilerCompat.chapterPolicies[link.slug], ); - chapterRows[0].dynamic = summarizeTier( - chapterRows, - "dynamic", - ctx.island.chapterPolicies[link.slug], - ); chapters.push({ slug: link.slug, title: link.title, entries: chapterRows.length, apiEntries: chapterRows.filter((row) => row.scope === "api").length, static: statusCounts(chapterRows, "static"), - dynamic: statusCounts(chapterRows, "dynamic"), }); rows.push(...chapterRows); } @@ -640,7 +528,7 @@ function buildSnapshot({ allJson, indexMarkdown, allSha256, indexSha256 }) { ids.add(row.id); } return { - schemaVersion: 4, + schemaVersion: 5, nodeVersion: pin.version, nodeTag: pin.tag, nodeCommit: pin.commit, @@ -652,7 +540,6 @@ function buildSnapshot({ allJson, indexMarkdown, allSha256, indexSha256 }) { supportManifests: { compilerSurface: "packages/compiler/surface-manifest.json", compilerDedicated: "internal/compatibility/static-support.json", - dynamicIsland: "internal/compatibility/dynamic-support.json", }, chapters, rows, @@ -669,8 +556,6 @@ function publicDetail(tier) { if (tier.status === "unreviewed") return "Not yet classified; tracked as open parity work."; if (source.startsWith("surface-manifest:unsupported:")) return "Explicitly rejected by a named compiler diagnostic."; - if (source.startsWith("surface-manifest:dynamic-only:")) - return "Explicitly refused in static code; this form requires the dynamic island."; if ( /^surface-manifest:node-builtin\.fs\.(?:statfsSync|promises\.statfs)$/.test(source) || source === "compiler-feature:fs.fs.statfs" @@ -818,97 +703,6 @@ function publicDetail(tier) { } if (source.startsWith("compiler-unmatched:")) return "No static compiler lowering is registered for this API yet."; - if (source.startsWith("island-export:")) - return "Available through the embedded Node compatibility shim; exact member and overload coverage may be narrower."; - if (source.startsWith("island-member:")) - return "Implemented by the embedded Node compatibility shim."; - if (source.startsWith("island-member-stub:")) - return "Exposed only as an explicit throwing or rejecting compatibility stub."; - if (source.startsWith("island-stub:")) - return "Exposed only as an explicit throwing or rejecting compatibility stub."; - if (source.startsWith("island-global:")) - return "Provided by the embedded engine's web/global compatibility layer."; - if (source.startsWith("island-npm-global:")) - return "Provided when the embedded npm module bootstrap runs; absent from standalone dynamic islands."; - if (source.startsWith("island-global-absent:")) - return "Verified absent from the embedded engine's web/global compatibility layer."; - if (source.startsWith("unshimmed:")) - return "No dynamic-island shim exists for this Node module yet."; - if (source.startsWith("island-chapter-policy:")) { - if (tier.status === "by-design") - return "Intentionally outside the dynamic-island execution model."; - if (tier.status === "not-applicable") - return "This Node executable or embedding feature does not map to dynamic-island code."; - return "No dynamic-island implementation exists for this Node API family yet."; - } - if (source.startsWith("island-feature:")) { - if (/^island-feature:assert\.assert\.doesNot(?:Throw|Reject)$/.test(source)) { - return "Supports no-error assertions over callbacks, promises, and promise-like objects, with Error classes, regular expressions, validation functions, and Node-compatible failure metadata for the tested forms."; - } - if (source.startsWith("island-feature:util.util.types.")) - return "Checks embedded engine brands without invoking getters or proxy traps, including spoofed tags and prototypes, subclasses, generators, iterators, and revoked proxies."; - if (source === "island-feature:util.util.styleText") - return "Applies standard styles and aliases with nested ANSI resets, stream validation, color environment settings, and tested option and conversion hooks; terminal metadata and warnings follow the embedded runtime."; - if (source === "island-feature:util.util.stripVTControlCharacters") - return "Removes ANSI control sequences with the Node matcher and validates non-string arguments."; - if (source === "island-feature:util.util.toUSVString") - return "Replaces unpaired surrogate code units and preserves Node string coercion, custom conversion hooks, and conversion errors."; - if (source.startsWith("island-feature:diagnostics_channel.")) - return "Publishes synchronous, promise, and callback tracing lifecycle events with result/error identity, subscriber management, and store bindings. Bound stores follow the embedded engine's synchronous AsyncLocalStorage model and do not propagate across awaits."; - if (source.startsWith("island-feature:timers.timersPromises.")) - return "Provides cancellable promise timers, buffered interval iteration, scheduler waits and yields, and ref options over the native event loop; delay warnings remain outside this subset."; - if (source.startsWith("island-feature:timers.")) - return "Provides timer and immediate handles with reference control, refresh, cancellation, and disposal over the native event loop."; - if (source === "island-feature:events.events.once") - return "Waits for EventEmitter or EventTarget events with AbortSignal cancellation, Node abort errors, and listener cleanup."; - if (source === "island-feature:events.events.on") - return "Iterates EventEmitter or EventTarget events with buffered delivery, close events, cancellation, watermark backpressure, and listener cleanup."; - if (source === "island-feature:events.events.addAbortListener") - return "Registers disposable abort listeners that run even when ordinary propagation is stopped; already-aborted signals schedule the callback in a microtask."; - if (source.startsWith("island-feature:events.")) { - return "Implements EventEmitter listener lifecycle, symbol event names, filtered listener counts, and error monitoring; rejection capture and listener warnings remain outside this subset."; - } - if (/^island-feature:util\.util\.(?:promisify|callbackify)$/.test(source)) { - return "Adapts callbacks and promises with receiver preservation, custom promisify hooks, function metadata, and Node-compatible argument and rejection handling; scheduling follows the island microtask queue."; - } - if (/^island-feature:util\.(?:util\.)?parseArgs$/.test(source)) { - return "Parses command-line options, positionals, defaults, and tokens with Node-compatible configuration validation."; - } - if (/^island-feature:buffer\.buffer\.(?:isAscii|isUtf8)$/.test(source)) { - return "Validates bytes in ArrayBuffer and typed-array views with Node-compatible argument errors."; - } - if (source === "island-feature:buffer.buffer.transcode") { - return "Converts Buffer and Uint8Array inputs among ASCII, Latin-1, UTF-8, and UTF-16LE, including encoding aliases and conversion errors."; - } - if (source === "island-feature:util.util.getSystemErrorMap") { - return "Returns a fresh mutable Map of platform-specific error codes, names, and messages."; - } - if (source === "island-feature:util.util.isDeepStrictEqual") { - return "Compares tested object, collection, cycle, byte-view, and builtin-value families with Node 24 prototype skipping; some exotic object brands remain unsupported."; - } - if (/^island-feature:util\.util\.getSystemError(?:Name|Message)$/.test(source)) { - return "Converts platform-specific negative error codes to names or messages, with Node-compatible validation for common argument forms."; - } - if (source === "island-feature:url.url.fileURLToPathBuffer") { - return "Converts file URLs to raw path bytes with POSIX or Windows options, preserving invalid UTF-8 and malformed escapes; internationalized hostnames remain unsupported."; - } - if (/^island-feature:url\.url\.(?:fileURLToPath|pathToFileURL)$/.test(source)) { - return "Supports file-path conversion with POSIX or Windows options for the tested string and URL forms; internationalized hostnames remain unsupported."; - } - if (source === "island-feature:util.textEncoder.encodeInto") { - return "Writes complete UTF-8 characters into island-owned Uint8Array or Buffer views; byte arrays received from native code are copied."; - } - if (/^island-feature:util\.(?:encoding|fatal|ignoreBOM)$/.test(source)) { - return "Codec properties expose UTF-8 and decoder flags; other decoder encodings remain unsupported in the island."; - } - if (tier.status === "not-applicable") - return "Node configuration or documentation that does not map to an island runtime API."; - if (tier.status === "not-implemented") - return "Not implemented in the embedded module-loader subset yet."; - return "Implemented for the documented embedded module-loader subset."; - } - if (source.startsWith("island-unmatched:")) - return "This API is not implemented by the dynamic-island shim."; if (source === "documentation") return "Documentation section; not a runtime API."; if (source === "configuration") return "Node command-line or configuration entry; not a runtime API."; @@ -930,7 +724,7 @@ const PUBLIC_VERIFICATION = { }, "explicit-refusal": { label: "Explicit refusal", - detail: "Backed by a named compiler refusal or an explicit dynamic throwing or rejecting stub.", + detail: "Backed by a named compiler refusal.", }, "verified-absence": { label: "Verified absence", @@ -972,16 +766,12 @@ function verificationBasis(tier) { if (source === "derived:descendants") basis = "derived"; else if (tier.status === "supported" || tier.status === "partial") basis = "test-backed"; else if (tier.status === "refused") basis = "explicit-refusal"; - else if (source.startsWith("island-global-absent:")) basis = "verified-absence"; else if (tier.status === "by-design") basis = "architectural-policy"; else if (tier.status === "not-applicable") basis = "not-applicable"; else if (tier.status === "unreviewed") basis = "unreviewed"; else if ( tier.status === "not-implemented" && - (source.startsWith("compiler-chapter-policy:") || - source.startsWith("compiler-feature:") || - source.startsWith("island-chapter-policy:") || - source.startsWith("island-feature:")) + (source.startsWith("compiler-chapter-policy:") || source.startsWith("compiler-feature:")) ) basis = "declared-gap"; else if (tier.status === "not-implemented") basis = "registry-gap"; @@ -1026,12 +816,12 @@ function backlogAction(tier) { function buildBacklog(snapshot) { const tasks = []; - const tierItems = { static: {}, dynamic: {} }; + const tierItems = { static: {} }; const priorities = { high: 0, normal: 0, low: 0 }; for (const row of snapshot.rows) { if (row.depth === 0 || row.scope !== "api") continue; const tiers = {}; - for (const key of ["static", "dynamic"]) { + for (const key of ["static"]) { const action = backlogAction(row[key]); if (action === null) continue; tierItems[key][action] = (tierItems[key][action] ?? 0) + 1; @@ -1065,9 +855,7 @@ function buildBacklog(snapshot) { nodeCommit: snapshot.nodeCommit, summary: { taskCount: tasks.length, - tierItemCount: - Object.values(tierItems.static).reduce((sum, count) => sum + count, 0) + - Object.values(tierItems.dynamic).reduce((sum, count) => sum + count, 0), + tierItemCount: Object.values(tierItems.static).reduce((sum, count) => sum + count, 0), tiers: tierItems, priorities, }, @@ -1080,8 +868,7 @@ function publicExclusion(row) { if (row.scope === "metadata") return "metadata"; if (row.scope === "configuration") return "configuration"; if (row.scope !== "api") return "non-api"; - if (row.static.status === "not-applicable" && row.dynamic.status === "not-applicable") - return "not-applicable"; + if (row.static.status === "not-applicable") return "not-applicable"; return null; } @@ -1118,14 +905,12 @@ function projectPublicMatrix(snapshot) { continue; } root.static = summarizeTier(chapterRows, "static"); - root.dynamic = summarizeTier(chapterRows, "dynamic"); chapters.push({ slug: chapter.slug, title: chapter.title, entries: chapterRows.length, apiEntries: chapterRows.length, static: statusCounts(chapterRows, "static"), - dynamic: statusCounts(chapterRows, "dynamic"), }); rows.push(...chapterRows); } @@ -1170,11 +955,6 @@ function publicSnapshot(snapshot) { detail: publicDetail(row.static), verification: verificationBasis(row.static), }, - dynamic: { - status: row.dynamic.status, - detail: publicDetail(row.dynamic), - verification: verificationBasis(row.dynamic), - }, })), }; } @@ -1210,12 +990,8 @@ function checkLocal() { const chapter = snapshot.chapters.find((item) => item.slug === row.chapter); const parentSignature = ancestors[row.depth - 1]?.signature; const expectedStatic = classifyStatic(row, chapter, ctx, parentSignature); - const expectedDynamic = classifyDynamic(row, chapter, ctx, parentSignature); ancestors[row.depth] = row; - if ( - JSON.stringify(row.static) !== JSON.stringify(expectedStatic) || - JSON.stringify(row.dynamic) !== JSON.stringify(expectedDynamic) - ) { + if (JSON.stringify(row.static) !== JSON.stringify(expectedStatic)) { throw new Error( `generated classification is stale at ${row.id} (${row.signature}); run 'pnpm node-compat'`, ); @@ -1238,12 +1014,8 @@ function checkLocal() { for (const row of publicRows) { if (row.depth > 0 && row.scope !== "api") throw new Error(`${row.id} exposes a non-API row in the public matrix`); - if ( - row.depth > 0 && - row.static.status === "not-applicable" && - row.dynamic.status === "not-applicable" - ) { - throw new Error(`${row.id} exposes a row that is not applicable to either compiler tier`); + if (row.depth > 0 && row.static.status === "not-applicable") { + throw new Error(`${row.id} exposes a row that is not applicable to native compilation`); } } if (readFileSync(backlogOutputPath, "utf8") !== render(buildBacklog(snapshot))) { @@ -1256,7 +1028,7 @@ function checkLocal() { throw new Error("the docs compatibility metadata is stale; run 'pnpm node-compat'"); } for (const row of snapshot.rows) { - for (const key of ["static", "dynamic"]) { + for (const key of ["static"]) { if ( (row[key].status === "supported" || row[key].status === "partial") && (row[key].tests?.length ?? 0) === 0 @@ -1265,11 +1037,7 @@ function checkLocal() { } if (row[key].status === "refused") { const source = row[key].evidence ?? ""; - const explicit = - key === "static" - ? source.startsWith("surface-manifest:unsupported:") || - source.startsWith("surface-manifest:dynamic-only:") - : source.startsWith("island-stub:") || source.startsWith("island-member-stub:"); + const explicit = source.startsWith("surface-manifest:unsupported:"); if (!explicit && source !== "derived:descendants") { throw new Error(`${row.id} claims ${key} refused without an explicit refusal source`); } diff --git a/internal/compatibility/src/update.mjs b/internal/compatibility/src/update.mjs index 9ffb2a3c5..553e2698c 100644 --- a/internal/compatibility/src/update.mjs +++ b/internal/compatibility/src/update.mjs @@ -5,7 +5,7 @@ import { spawnSync } from "node:child_process"; const check = process.argv.slice(2).includes("--check"); const args = check ? ["--check"] : []; -for (const script of ["generate-island-header.mjs", "generate.mjs"]) { +for (const script of ["generate.mjs"]) { const result = spawnSync(process.execPath, [`src/${script}`, ...args], { stdio: "inherit" }); if (result.error) throw result.error; if (result.status !== 0) process.exit(result.status ?? 1); diff --git a/packages/cli/README.md b/packages/cli/README.md index a8dfbc798..ab34ad6af 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -34,13 +34,13 @@ Builds use a bounded persistent cache. Unchanged source can reuse the validated - `scriptc run ` — compile and run - `scriptc coverage ` — what compiles statically, and why the rest doesn't -`scriptc build app.ts --emit=ir|llvm|asm|obj` selects serialized typed IR, textual LLVM IR, target assembly, or a relocatable program object as the one primary artifact. `--emit=exe` is the default. Assembly/object emission uses the matching helper on supported macOS, Linux, and Windows hosts (and produces WASI artifacts when that target is selected). Objects retain undefined `scr_*` runtime references plus the `scr_runtime_abi_v13` compatibility marker; they are not library archives. External consumption is experimental and requires the exact matching runtime. `scriptc build app.ts --print=native-link-info -o app.o` prints the versioned JSON target/runtime/link recipe without performing a link. `--emit=asm|obj --sanitize` is rejected until ASan pipeline parity is available. +`scriptc build app.ts --emit=ir|llvm|asm|obj` selects serialized typed IR, textual LLVM IR, target assembly, or a relocatable program object as the one primary artifact. `--emit=exe` is the default. Assembly/object emission uses the matching helper on supported macOS, Linux, and Windows hosts (and produces WASI artifacts when that target is selected). Objects retain undefined `scr_*` runtime references plus the `scr_runtime_abi_v14` compatibility marker; they are not library archives. External consumption is experimental and requires the exact matching runtime. `scriptc build app.ts --print=native-link-info -o app.o` prints the versioned JSON target/runtime/link recipe without performing a link. `--emit=asm|obj --sanitize` is rejected until ASan pipeline parity is available. For embedder-hosted modules that are not installed npm packages, coverage can map an exact bare specifier to a local declaration with repeatable `--external-types ` options. This is analysis-only: the types unblock application measurement, while runtime module uses remain reported as blockers. -No annotations, no dialect, no special stdlib: the same TypeScript you run on Node, type-checked by the real TypeScript compiler. Programs outside the static tier can opt into `--dynamic`, which embeds a small JavaScript engine (~620KB) for the parts that can't be static; everything else fails the build with a specific error code and usually a rewrite hint. +No annotations, no dialect, no special stdlib: the same TypeScript you run on Node, type-checked by the real TypeScript compiler. Programs compile to native code; unsupported constructs fail the build with a specific error code and usually a rewrite hint. -WebAssembly is available as a production LLVM target: `SCRIPTC_TARGET=wasm32-wasi scriptc build app.ts`. It emits a WASI Preview 1 `.wasm` module, and `scriptc run` supplies a WASI host. The complete executable language tier—including async, generators, timers, and `--dynamic`—is supported. APIs needing capabilities WASI P1 does not expose (network sockets/fetch, child processes, OS signals, and filesystem watching), sanitizer builds, and native FFI are rejected with `SC3002`. With `--lib --profile`, the target produces a callable Wasm reactor with named host imports and per-instance memory. See [WebAssembly Modules](https://scriptc.dev/wasm) for the embedding contract. +WebAssembly is available as a production LLVM target: `SCRIPTC_TARGET=wasm32-wasi scriptc build app.ts`. It emits a WASI Preview 1 `.wasm` module, and `scriptc run` supplies a WASI host. The complete executable language tier—including async, generators, and timers—is supported. APIs needing capabilities WASI P1 does not expose (network sockets/fetch, child processes, OS signals, and filesystem watching), sanitizer builds, and native FFI are rejected with `SC3002`. With `--lib --profile`, the target produces a callable Wasm reactor with named host imports and per-instance memory. See [WebAssembly Modules](https://scriptc.dev/wasm) for the embedding contract. Native code can be called through an explicit, link-time C ABI manifest: declare the function signature in TypeScript, bind it to a C symbol, and build with `--ffi `. See the [Native FFI guide](https://scriptc.dev/ffi). diff --git a/packages/cli/src/bootstrap.ts b/packages/cli/src/bootstrap.ts index 7aba1e674..2d12883fa 100644 --- a/packages/cli/src/bootstrap.ts +++ b/packages/cli/src/bootstrap.ts @@ -122,7 +122,6 @@ async function tryFastPath(): Promise { outPath, emitIr: values["emit-ir"], sanitize: values.sanitize, - dynamic: values.dynamic, backend: "llvm", ...(optimization === "dev" || optimization === "speed" ? { optimization } : {}), ...(values.strip ? { strip: true as const } : {}), @@ -203,9 +202,7 @@ async function coverageFastPath( } catch { return null; } - const hit = await startup - .readCoverageVerdict(resolve(inputArg), { dynamic: values.dynamic }) - .catch(() => null); + const hit = await startup.readCoverageVerdict(resolve(inputArg), {}).catch(() => null); if (hit === null) return null; const { coverage, sourceTexts } = hit; if (print === "diagnostics") { diff --git a/packages/cli/test/native-link-info.test.ts b/packages/cli/test/native-link-info.test.ts index 4e1616a8c..bb41f8520 100644 --- a/packages/cli/test/native-link-info.test.ts +++ b/packages/cli/test/native-link-info.test.ts @@ -72,7 +72,7 @@ describe.runIf(supported)("macOS arm64 native link info", () => { minimum_os: "14.0", }, program: { object, entry_symbol: "main" }, - runtime_abi: { version: 13, marker: "scr_runtime_abi_v13" }, + runtime_abi: { version: 14, marker: "scr_runtime_abi_v14" }, runtime_pack: { kind: "precompiled", package: "@scriptc/runtime-darwin-arm64", @@ -165,6 +165,6 @@ describe.runIf(supported)("macOS arm64 native link info", () => { () => null, (failure: { stderr?: string }) => failure, ); - expect(error?.stderr).toContain("scr_runtime_abi_v13"); + expect(error?.stderr).toContain("scr_runtime_abi_v14"); }); }); diff --git a/packages/compiler/ambient/scriptc-node-fallback.d.ts b/packages/compiler/ambient/scriptc-node-fallback.d.ts index b3933ef5e..64adda59d 100644 --- a/packages/compiler/ambient/scriptc-node-fallback.d.ts +++ b/packages/compiler/ambient/scriptc-node-fallback.d.ts @@ -15,7 +15,7 @@ * ambient OR @types/node — see isStdlibFile/isNodeTypesPath), and * everything else @types/node declares hits the SC2020-family fence at * its use site. scriptc.d.ts holds the always-shipped core (divergence - * overrides, comptime, __island_eval, setTimeout — which MERGES with + * overrides, comptime, setTimeout — which MERGES with * @types/node's as an overload instead of colliding). */ /* NodeJS.ErrnoException — the Error shape @types/node attaches to fs and @@ -608,12 +608,6 @@ declare var TextDecoder: { new (label?: string, options?: { fatal?: boolean; ignoreBOM?: boolean }): TextDecoder; }; -/* The WHATWG event surface (Node globals since v15): declared so the - * suite's event-plumbing tests typecheck and fence per SITE with the - * member's own name. The dynamic island's web prelude implements - * Event/CustomEvent/EventTarget/DOMException/AbortController for real; - * the static tier has no lowering yet — construction and members fence - * honestly (SC2020). */ interface Event { readonly type: string; readonly bubbles: boolean; @@ -691,11 +685,6 @@ declare var EventTarget: { readonly prototype: EventTarget; }; -/* MessagePort/MessageChannel — the worker_threads pair Node exposes as - * globals (v15+). The island's worker_threads shim implements the - * same-thread subset (postMessage delivers structured-clone copies on a - * microtask); the web prelude exposes the classes as engine globals. - * Statically declared-not-lowered: per-site fences. */ interface MessagePort extends EventTarget { postMessage(value: unknown, transferOrOptions?: unknown): void; start(): void; @@ -718,9 +707,6 @@ declare var MessageChannel: { readonly prototype: MessageChannel; }; -/* AbortSignal, the native fetch-cancellation slice. The three statics, - * state/reason reads, throwIfAborted, and abort listeners all lower in - * static builds; dynamic builds use the island's Web implementation. */ interface AbortSignal extends EventTarget { readonly aborted: boolean; readonly reason: unknown; @@ -820,7 +806,7 @@ interface Response { json(): Promise; text(): Promise; /* The whole body as bytes: bytes() answers a Uint8Array in both tiers. - * arrayBuffer() remains dynamic-only because static programs have no + * arrayBuffer() remains unsupported because static programs have no * free-standing ArrayBuffer representation; the compiler diagnoses its * direct use and points at bytes(). */ arrayBuffer(): Promise; @@ -1053,26 +1039,6 @@ declare module "perf_hooks" { * performance.now() either way. */ declare var performance: import("node:perf_hooks").Performance; -/* node:module. createRequire's lowered shape is the version/config- - * reading pattern real CLIs ship: a const binding over - * createRequire(import.meta.url) (or __filename) whose require calls - * take STATIC string literals — the indirection erases at compile time. - * A builtin spec makes the binding a namespace import in const clothing; - * relative and package-import program modules use the compiled module - * graph; a relative .json document bakes and parses (JSON.parse's - * `unknown` stance — validate with a checked cast); an installed npm - * package loads through the island's require-condition entry under - * --dynamic, or through the compiled graph under --npm-static; a bare name - * nothing installed resolves compiles to Node's catchable MODULE_NOT_FOUND - * throw (the optional-dependency try/require pattern). - * Dynamic specifiers fence: a compiled binary's module graph is fixed at - * build time. builtinModules is the baked Node v24 list (a fresh - * mutable array per read where Node ships one frozen singleton); - * isBuiltin checks runtime strings against that pinned list, and - * syncBuiltinESMExports is a no-op because the static builtin surface is - * immutable. Both spellings - * name the builtin, like in Node (the builtin wins over the npm package - * named "module" for the bare specifier there too). */ declare module "node:module" { export function createRequire(filename: string | URL): ScriptcRequire; export const builtinModules: string[]; diff --git a/packages/compiler/ambient/scriptc-overrides.d.ts b/packages/compiler/ambient/scriptc-overrides.d.ts index 1a7a54863..2dafbcdf0 100644 --- a/packages/compiler/ambient/scriptc-overrides.d.ts +++ b/packages/compiler/ambient/scriptc-overrides.d.ts @@ -10,42 +10,18 @@ * rejected over an override-manufactured error; the affected sites meet the * lowerer's honest fences instead (SC1100's checked-cast family for * JSON.parse results, the executor fences for Promise shapes). The - * primitives every world needs (comptime, setTimeout, __island_eval) live + * primitives every world needs (comptime, setTimeout) live * in scriptc.d.ts, which ships to BOTH programs. */ -/* `at(): string`, not the lib's `string | undefined`: undefined is - * unrepresentable, so an out-of-range at() THROWS a catchable TypeError at - * the validated island exit instead of returning undefined (documented - * divergence, SEMANTICS.md). */ interface String { at(index: number): string; } -/* Object.values/entries with the actual field-value union, not the lib's - * `any` (the lib's precise overloads only cover index-signature and - * ArrayLike sources). A PRECISION override, not a divergence: the lowering - * emits the field list statically and the values are exactly T[keyof T] — - * without this the result would be `any`-typed and drag every downstream - * use into the island. An opaque object has no statically known keys; - * its actual values remain unknown instead of becoming an impossible - * never payload. */ interface ObjectConstructor { values(o: T): Array; entries(o: T): Array<[string, keyof T extends never ? unknown : T[keyof T]]>; } -/* `parse` returns `unknown`, not the lib's `any` — the dynamic boundary. A - * checked cast (`JSON.parse(s) as Config`) validates the value against the - * target type at runtime and THROWS on mismatch — the mechanism that makes - * trusting TS types sound at data boundaries. Reviver results use the same - * checked boundary. A function replacer can omit the root, so that form - * returns string | undefined even though the stock lib promises string. - * - * `stringify` takes `unknown`, not the lib's `any`: the same honest - * surface, but the parameter must not CONTEXTUALLY TYPE literal arguments - * as `any` (an any-typed slot is the island boundary; `JSON.stringify([1, - * 2])` must keep building a static array and serializing it - * type-directedly). */ interface JSON { parse(text: string): unknown; parse(text: string, reviver: (this: unknown, key: string, value: unknown) => unknown): unknown; diff --git a/packages/compiler/ambient/scriptc.d.ts b/packages/compiler/ambient/scriptc.d.ts index a832c7c2e..424e49065 100644 --- a/packages/compiler/ambient/scriptc.d.ts +++ b/packages/compiler/ambient/scriptc.d.ts @@ -5,7 +5,7 @@ * without a lowering is a SC2020 diagnostic at its use site. This file * declares only what that ES-only library does not: * - * 1. scriptc's own primitives (comptime, __island_eval). + * 1. scriptc's own primitives (comptime). * 2. The RequestInfo type alias, supplied by the default DOM lib in ordinary * TypeScript projects but absent from @types/node's globals. * 3. setTimeout/clearTimeout and the Timeout handle (Node/dyn territory the @@ -108,11 +108,3 @@ declare function clearTimeout(handle?: Timeout | number | null | undefined): voi * baked result is exactly what Node would compute at runtime (the * differential harness verifies this with a `comptime = (f) => f()` shim). */ declare function comptime(compute: () => T): T; - -/* INTERNAL TESTING HOOK — not part of the supported surface, deliberately - * undocumented. Evaluates `code` in the embedded dynamic-island engine and - * returns String(result); island exceptions arrive as catchable errors. - * Requires --dynamic (a clean diagnostic otherwise). This exists to prove - * the engine embed end-to-end in tests; user-facing constructs will lower - * to the island through their own paths, not through this. */ -declare function __island_eval(code: string): string; diff --git a/packages/compiler/src/backend/cycle-analysis.test.ts b/packages/compiler/src/backend/cycle-analysis.test.ts index ac09b4642..5fb408403 100644 --- a/packages/compiler/src/backend/cycle-analysis.test.ts +++ b/packages/compiler/src/backend/cycle-analysis.test.ts @@ -21,7 +21,7 @@ import { computeTraced as llvmTraced } from "./llvm/shapes.js"; const loc = { file: "cycles.ts", start: 0, end: 1 }; function module(): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [{ name: "main", locals: [], params: [], returnType: VOID, body: [], loc }], diff --git a/packages/compiler/src/backend/cycle-mutability.ts b/packages/compiler/src/backend/cycle-mutability.ts index e5a183db5..c7445f458 100644 --- a/packages/compiler/src/backend/cycle-mutability.ts +++ b/packages/compiler/src/backend/cycle-mutability.ts @@ -1,7 +1,7 @@ import type { IrExpr, IrFunction, IrModule, IrStmt, IrType } from "../ir/ir.js"; import { RUNTIME_EMITTER_CLASS, RUNTIME_STREAM_CLASSES } from "../ir/ir.js"; import { dynamicFieldStores } from "../ir/int32-slots.js"; -import { everyExprChild, everyModuleNode, everyStmtChild, everyTypeChild } from "../ir/traverse.js"; +import { everyExprChild, everyStmtChild, everyTypeChild } from "../ir/traverse.js"; /** Which shape fields can be written after their object escapes. * @@ -33,7 +33,7 @@ import { everyExprChild, everyModuleNode, everyStmtChild, everyTypeChild } from * in which case no commit can happen; FFI operands and intrinsics other * than publish always count; * - runtime-rooted hierarchies (errors, emitters, streams) are mutable; - * - library builds and dynamic-island programs disable the refinement. + * - library builds disable the refinement. * * Keys: `object:` / `record:` units, fields as * `\0`. */ @@ -50,14 +50,6 @@ export interface CycleMutability { fields: Set; } -const DYNAMIC_ISLAND_EXPRS = new Set([ - "jsMarshal", - "jsOp", - "jsExit", - "jsBridgePromise", - "dynFromJsval", -]); - /** Expressions whose operands may be converted to checked-dynamic values * (typed-ref capsules) by the backend or runtime. */ const DYNAMIC_BOUNDARY_EXPRS = new Set([ @@ -90,16 +82,6 @@ export function computeCycleMutability( classes.map((c) => [`%${c.name}.constructor`, c]), ); - // The dynamic island stores engine values in native slots and can reach - // any object through them: no refinement. - let island = false; - everyModuleNode(mod, { - expr: (e) => !(island = island || DYNAMIC_ISLAND_EXPRS.has(e.kind)), - stmt: () => true, - type: (t) => !(island = island || t.kind === "jsval"), - }); - if (island) return { ...result, all: true }; - for (const c of classes) { if (c.runtime || c.name === RUNTIME_EMITTER_CLASS || RUNTIME_STREAM_CLASSES.has(c.name)) result.units.add(unitOfClass(c.name)); diff --git a/packages/compiler/src/backend/executable-features.ts b/packages/compiler/src/backend/executable-features.ts index 77efa11dd..ba8a0a6d9 100644 --- a/packages/compiler/src/backend/executable-features.ts +++ b/packages/compiler/src/backend/executable-features.ts @@ -1,29 +1,19 @@ /** Runtime requirements derived from the lowered program, shared by compiler hosts. */ import { type IrModule } from "../ir/ir.js"; -import { - moduleEmbedsBuiltin, - moduleEmbedsCompressedNpm, - moduleRuntimeFeatures, -} from "../ir/runtime-features.js"; +import { moduleRuntimeFeatures } from "../ir/runtime-features.js"; import { hasForeignFfiCallback } from "./ffi-callbacks.js"; import type { NativeLinkFeatures } from "./native-link-info.js"; -export function executableLinkFeatures(mod: IrModule, dynamic: boolean): NativeLinkFeatures { +export function executableLinkFeatures(mod: IrModule): NativeLinkFeatures { const features = moduleRuntimeFeatures(mod); return { ...(mod.workers ? { workers: true } : {}), - dynamic, regex: features.regex, copying: features.copying, textDecoderLegacy: features.legacyTextDecoder, fileHandle: features.fileHandle, fetch: features.fetch, - netIsland: - moduleEmbedsBuiltin(mod, "node:http") || - moduleEmbedsBuiltin(mod, "node:https") || - moduleEmbedsBuiltin(mod, "node:net") || - moduleEmbedsBuiltin(mod, "node:tls"), - zlib: features.zlib || moduleEmbedsCompressedNpm(mod), + zlib: features.zlib, assert: features.assert, inspect: features.inspect, dynInvoke: features.dynInvoke, diff --git a/packages/compiler/src/backend/immutability.test.ts b/packages/compiler/src/backend/immutability.test.ts index 98ecf91ef..7f5e22fb5 100644 --- a/packages/compiler/src/backend/immutability.test.ts +++ b/packages/compiler/src/backend/immutability.test.ts @@ -48,7 +48,7 @@ function module( functions: IrModule["functions"], ): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", classes, diff --git a/packages/compiler/src/backend/immutability.ts b/packages/compiler/src/backend/immutability.ts index a0b792496..949aec75e 100644 --- a/packages/compiler/src/backend/immutability.ts +++ b/packages/compiler/src/backend/immutability.ts @@ -13,7 +13,7 @@ import { /** Fields that are never written once their object can be observed outside * its own construction (cycle-mutability.ts derives the facts from every * store in the IR, including typed-ref commits from checked-dynamic code, - * and disables them for library builds and dynamic islands). + * and disables them for library builds). * * Outside constructors, a reference read from such a field stays valid for * as long as its owner object is alive: nothing can replace it and release diff --git a/packages/compiler/src/backend/library-pack.ts b/packages/compiler/src/backend/library-pack.ts index bb3e4981b..e3fd41f51 100644 --- a/packages/compiler/src/backend/library-pack.ts +++ b/packages/compiler/src/backend/library-pack.ts @@ -24,13 +24,11 @@ export async function compilePackedLibrary( ): Promise { const optimization = options.optimization ?? "release"; const features: NativeLinkFeatures = { - dynamic: false, regex: options.regex ?? false, copying: options.copying ?? false, textDecoderLegacy: options.textDecoderLegacy ?? false, fileHandle: false, fetch: false, - netIsland: false, zlib: options.zlib ?? false, assert: options.assert ?? false, inspect: options.inspect ?? false, diff --git a/packages/compiler/src/backend/linker.ts b/packages/compiler/src/backend/linker.ts index 765efad03..af53f74df 100644 --- a/packages/compiler/src/backend/linker.ts +++ b/packages/compiler/src/backend/linker.ts @@ -113,7 +113,7 @@ export async function executableLinkerEnvironmentFingerprint( .update("\0") .update(effectiveDriverIdentity) .update("\0"); - for (const name of ["PATH", "SCRIPTC_FETCH_CURL", "SCRIPTC_TEST_RUNTIME_SRC_DIR"] as const) { + for (const name of ["PATH", "SCRIPTC_TEST_RUNTIME_SRC_DIR"] as const) { const value = env[name]; hash .update(name) diff --git a/packages/compiler/src/backend/llvm/checked-narrows.test.ts b/packages/compiler/src/backend/llvm/checked-narrows.test.ts index 7977fe619..57591350f 100644 --- a/packages/compiler/src/backend/llvm/checked-narrows.test.ts +++ b/packages/compiler/src/backend/llvm/checked-narrows.test.ts @@ -150,7 +150,7 @@ function fixture(helper: IrFunction): IrModule { ], }; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", records: [{ id: "cell", fields: [{ name: "x", type: F64 }] }], diff --git a/packages/compiler/src/backend/llvm/classes.test.ts b/packages/compiler/src/backend/llvm/classes.test.ts index da8fcf958..117807ad3 100644 --- a/packages/compiler/src/backend/llvm/classes.test.ts +++ b/packages/compiler/src/backend/llvm/classes.test.ts @@ -16,7 +16,7 @@ const loc = { file: "class-membership.ts", start: 0, end: 1 }; test("leaf layouts keep direct teardown while recursive layouts share the depth budget", () => { const linked = { kind: "object" as const, className: "Linked" }; const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [{ name: "main", params: [], returnType: VOID, locals: [], body: [], loc }], @@ -61,7 +61,7 @@ test("releases split into an inlinable fast path and an out-of-line remainder", // An array of the class itself makes the hierarchy cycle-capable. const kids = { kind: "array" as const, elem: { kind: "object" as const, className: "Node" } }; const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [{ name: "main", params: [], returnType: VOID, locals: [], body: [], loc }], @@ -90,7 +90,7 @@ test("ProgramLifetime hierarchies are never freed and take no reference counts", const kids = { kind: "array" as const, elem: { kind: "object" as const, className: "Node" } }; const owners = { kind: "array" as const, elem: { kind: "object" as const, className: "Owner" } }; const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [{ name: "main", params: [], returnType: VOID, locals: [], body: [], loc }], @@ -142,7 +142,7 @@ test("published ProgramLifetime instances use the published mark every other obj const leaf = { kind: "object" as const, className: "Leaf" }; const root = { localId: "root", name: "root", type: node }; const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [ @@ -234,7 +234,7 @@ function graph() { { name: "FlippedString", base: "PairString", genericOf: "Flipped" }, ]; const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [], @@ -268,7 +268,7 @@ test.each(["i32", "i64"])( expect(helper).toContain("label %ordinary"); expect(helper).toContain("or i1"); const ordinary: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [], @@ -283,7 +283,7 @@ test.each(["i32", "i64"])( test("unconstructed narrowing layouts may omit abstract slots while live classes require implementations", () => { const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [{ name: "main", params: [], returnType: VOID, locals: [], body: [], loc }], diff --git a/packages/compiler/src/backend/llvm/classes.ts b/packages/compiler/src/backend/llvm/classes.ts index 3e60fd1b6..05f873112 100644 --- a/packages/compiler/src/backend/llvm/classes.ts +++ b/packages/compiler/src/backend/llvm/classes.ts @@ -341,11 +341,6 @@ export function programLifetimeRc(sizeType: "i32" | "i64"): string { return sizeType === "i32" ? "-2147483648" : "-9223372036854775808"; } -/** The newFn initialization stores for fields whose type ADMITS undefined - * (undefFieldInitLineC's LLVM twin): undefined-armed union fields start - * at the interned unit instance; dyn fields start at native undefined; - * jsval fields (an `any` class field under --dynamic) start at the engine's - * undefined cell. */ function undefFieldInits( host: ClassHost, meta: LlClassMeta, @@ -359,11 +354,10 @@ function undefFieldInits( // A nullable-pointer field's zeroed slot already is its unit arm. if (nullable?.get(meta.def.name, f.name)) return; const { index } = classFieldIndex(meta, f.name); - if (f.type.kind === "jsval" || f.type.kind === "dyn") { - const undefinedFn = f.type.kind === "dyn" ? "scr_dyn_undefined" : "scr_jsval_undefined"; - host.declare(`declare ptr @${undefinedFn}()`); + if (f.type.kind === "dyn") { + host.declare("declare ptr @scr_dyn_undefined()"); out.push( - ` %ufv${i} = call ptr @${undefinedFn}()`, + ` %ufv${i} = call ptr @scr_dyn_undefined()`, ` %uf${i} = getelementptr inbounds %${mangleClassStruct(meta.def.name)}, ptr %o, i64 0, i32 ${index}`, ` store ptr %ufv${i}, ptr %uf${i} ; ${llvmCommentText(f.name)} starts undefined`, ); diff --git a/packages/compiler/src/backend/llvm/constant-callbacks.test.ts b/packages/compiler/src/backend/llvm/constant-callbacks.test.ts index 9aef7fcac..f03c626ee 100644 --- a/packages/compiler/src/backend/llvm/constant-callbacks.test.ts +++ b/packages/compiler/src/backend/llvm/constant-callbacks.test.ts @@ -71,7 +71,7 @@ function fixture(): IrModule { loc, }; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [predicate, consumer, entry], diff --git a/packages/compiler/src/backend/llvm/constant-callbacks.ts b/packages/compiler/src/backend/llvm/constant-callbacks.ts index 2c1cc3ac7..082cfce32 100644 --- a/packages/compiler/src/backend/llvm/constant-callbacks.ts +++ b/packages/compiler/src/backend/llvm/constant-callbacks.ts @@ -329,7 +329,7 @@ const RECEIVER_FREE_LIB_FNS = new Set([ /** Typed container and string operations. Their runtime paths compare and * copy values but never call back into compiled code, as long as no - * operand is a function or a checked/engine value. */ + * operand is a function or a checked value. */ /** Operands of a data intrinsic (receiver first), or null when `e` is not * one. A switch over the kinds keeps this inside the self-hosted subset, * which has no `in` on IR expression unions. */ @@ -350,12 +350,12 @@ function dataIntrinsicOperands(e: IrExpr): IrExpr[] | null { function opaqueOperand(e: IrExpr): boolean { const kind = e.type.kind; - return kind === "func" || kind === "dyn" || kind === "jsval" || kind === "caught"; + return kind === "func" || kind === "dyn" || kind === "caught"; } /** The functions that may observe the ambient receiver stack when entered * without a fresh binding: the JS `this` read (libCall dyn.this), async and - * generator creation (which snapshot it), dynamic and engine operations, + * generator creation (which snapshot it), checked-value operations, * diagnostics-channel stores, and anything outside the admitted kinds; then * every function that can reach one through a direct call, constructor or * virtual dispatch (a backward reachability fixpoint, so recursion such as diff --git a/packages/compiler/src/backend/llvm/dense-array-access.test.ts b/packages/compiler/src/backend/llvm/dense-array-access.test.ts index 8101008a5..bf9eb3118 100644 --- a/packages/compiler/src/backend/llvm/dense-array-access.test.ts +++ b/packages/compiler/src/backend/llvm/dense-array-access.test.ts @@ -25,7 +25,7 @@ const index = ref("i", F64); function module(name: string, returnType: IrExpr["type"], body: IrStmt[]): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "__main", functions: [ diff --git a/packages/compiler/src/backend/llvm/dyn.ts b/packages/compiler/src/backend/llvm/dyn.ts index e6529c0b1..3f8de42ed 100644 --- a/packages/compiler/src/backend/llvm/dyn.ts +++ b/packages/compiler/src/backend/llvm/dyn.ts @@ -70,7 +70,6 @@ export const DYN_KIND = { FUNC: 8, HANDLE: 9, PROMISE: 10, - JSVAL: 11 /* SCR_DYN_JSVAL — island values held by reference */, TYPED_REF: 12 /* SCR_DYN_TYPED_REF — static Web-stream transit capsule */, PROXY: 13, BIGINT: 14, @@ -2621,7 +2620,6 @@ export class LlDyn { DYN_KIND.FUNC, DYN_KIND.HANDLE, DYN_KIND.PROMISE, - DYN_KIND.JSVAL, DYN_KIND.TYPED_REF, DYN_KIND.PROXY, DYN_KIND.BIGINT, @@ -2636,14 +2634,6 @@ export class LlDyn { host.declare(`declare void @scr_dyn_proxy_unsupported(ptr)`); B.line(`call void @scr_dyn_proxy_unsupported(ptr ${host.cstr("string conversion")})`); B.br(done); - B.startBlock(labels.get(DYN_KIND.JSVAL)!); - { - // Island-held: the engine's own ToString (a bridged failure - // leaves the exception pending and appends nothing). - host.declare(`declare void @scr_dyn_isl_tostr_buf(ptr, ptr)`); - B.line(`call void @scr_dyn_isl_tostr_buf(ptr %b, ptr %d)`); - B.br(done); - } B.startBlock(labels.get(DYN_KIND.TYPED_REF)!); { host.declare(`declare ptr @scr_dyn_typed_ref_materialize(ptr)`); @@ -3209,9 +3199,7 @@ export class LlDyn { B.terminate(`ret ptr ${r}`); B.startBlock(lNext); } - // ISLAND-held receivers: o[k] reads the REAL engine property (getters - // included, throws bridged catchably) and the result wraps back - // scalar-normalized — the routed keyed read that retired the fence. + { const isProxy = B.tmp(); B.line(`${isProxy} = icmp eq i32 ${kd}, ${DYN_KIND.PROXY}`); @@ -3225,19 +3213,7 @@ export class LlDyn { B.terminate(`ret ptr ${r}`); B.startBlock(lNext); } - { - const isJv = B.tmp(); - B.line(`${isJv} = icmp eq i32 ${kd}, ${DYN_KIND.JSVAL}`); - const lJv = B.newLabel("kg.jv"); - const lNext = B.newLabel("kg.n"); - B.condBr(isJv, lJv, lNext); - B.startBlock(lJv); - host.declare(`declare ptr @scr_dyn_isl_key_get(ptr, ptr)`); - const r = B.tmp(); - B.line(`${r} = call ptr @scr_dyn_isl_key_get(ptr %d, ptr %k)`); - B.terminate(`ret ptr ${r}`); - B.startBlock(lNext); - } + // OBJ: the own member or the inherited builtin Error constructor. { const isObj = B.tmp(); @@ -3607,23 +3583,7 @@ export class LlDyn { B.terminate(`ret ptr ${out}`); B.startBlock(lNext); } - // Island-held sources keep the engine's iterator and IteratorClose - // behavior while returning checked values for the destructuring slots. - { - const isJv = B.tmp(); - B.line(`${isJv} = icmp eq i32 ${kd}, ${DYN_KIND.JSVAL}`); - const lJv = B.newLabel("din.jv"); - const lNotJv = B.newLabel("din.njv"); - B.condBr(isJv, lJv, lNotJv); - B.startBlock(lJv); - host.declare(`declare ptr @scr_dyn_jsval_iter_n(ptr, double)`); - const count = B.tmp(); - const out = B.tmp(); - B.line(`${count} = sitofp ${host.sizeType} %n to double`); - B.line(`${out} = call ptr @scr_dyn_jsval_iter_n(ptr %d, double ${count})`); - B.terminate(`ret ptr ${out}`); - B.startBlock(lNotJv); - } + const okA = B.tmp(); const okS = B.tmp(); const okB = B.tmp(); @@ -3861,14 +3821,7 @@ export class LlDyn { B.line(`${r} = call ptr @${box}(ptr ${expr}, ptr null)`); return r; } - if (t.kind === "jsval") { - // An island value wraps by reference (scalar-normalizing) — the - // jsval-returning callback shape of the routed-dispatch lane. - this.host.declare(`declare ptr @scr_dyn_from_jsval(ptr)`); - const r = B.tmp(); - B.line(`${r} = call ptr @scr_dyn_from_jsval(ptr ${expr})`); - return r; - } + const r = B.tmp(); B.line(`${r} = call ptr @${this.toDynHelper(t)}(${this.valTy(t)} ${expr})`); return r; @@ -3964,26 +3917,6 @@ export class LlDyn { B.line(`${ad} = load ptr, ptr ${adSlot}`); if (p.kind === "dyn") { argNames.push(this.retainDyn(B, ad)); - } else if (p.kind === "jsval") { - // A checker-'any' param: the dyn argument enters the island — - // wrapped cells unwrap by reference, data deep-copies, boxed - // functions cross through the host shim; a kind with no crossing - // throws the catchable TypeError (null + pending). - host.declare(`declare ptr @scr_jsval_from_dyn(ptr)`); - const a = B.tmp(); - B.line(`${a} = call ptr @scr_jsval_from_dyn(ptr ${ad})`); - const isNull = B.tmp(); - B.line(`${isNull} = icmp eq ptr ${a}, null`); - const lFail = B.newLabel("dfk.jf"); - const lOk = B.newLabel("dfk.jo"); - B.condBr(isNull, lFail, lOk); - B.startBlock(lFail); - t.params.slice(0, i).forEach((q, j) => { - if (isRefCounted(q)) B.line(`call void ${releaseSym(host, q)}(ptr ${argNames[j]})`); - }); - B.terminate(`ret ptr null`); - B.startBlock(lOk); - argNames.push(a); } else { const pathSlot = B.slot(); B.entryAllocas.push(`${pathSlot} = alloca %ScrDynPath`); diff --git a/packages/compiler/src/backend/llvm/emitter.test.ts b/packages/compiler/src/backend/llvm/emitter.test.ts index 8b8c166ca..0bf73a4ef 100644 --- a/packages/compiler/src/backend/llvm/emitter.test.ts +++ b/packages/compiler/src/backend/llvm/emitter.test.ts @@ -64,7 +64,7 @@ function moduleFor( loc, }; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [ @@ -270,7 +270,7 @@ const text = (obj: IrExpr): IrExpr => ({ function work(expr: IrExpr, parameter: IrType, boxed = false, tdz = false): string { const module: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: receiverLoc.file, entry: "main", records: [ @@ -461,7 +461,7 @@ function sharedFieldModule(prefixes: IrType[][], fieldType: IrType): IrModule { ], })); return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", records, diff --git a/packages/compiler/src/backend/llvm/emitter.ts b/packages/compiler/src/backend/llvm/emitter.ts index 870413515..92bac7376 100644 --- a/packages/compiler/src/backend/llvm/emitter.ts +++ b/packages/compiler/src/backend/llvm/emitter.ts @@ -2,25 +2,7 @@ import { emitLlvmLayouts } from "./layouts.js"; import { FIRST_EMITTED_CYC_KIND, inlineAllocSupported } from "./alloc.js"; import { llvmBytes as llBytes } from "../literals.js"; import { InternalCompilerError } from "../../errors.js"; -/** Lower typed IR to LLVM, using the runtime's C ABI. - * - * Reference-counted temporaries own one reference. Declarations, assignments, - * returns and arguments move that ownership; frame and scope exits release - * everything remaining. Slot-backed entries release the slot's current value. - * - * Exceptions use a pending flag and explicit cleanup edges. Throwing calls - * test scr_exc_pending before consuming results, release the scopes crossed, - * and branch to the innermost handler or return to the caller. Catch bindings - * hold ScrCaught snapshots; finally runs on normal, throwing and returning - * paths. This keeps ownership cleanup intact without nonlocal jumps. - * - * Program objects are emitted by the packaged LLVM helper and linked with - * runtime packs. Sanitizer development builds use an external LLVM driver. - * Dynamic values and islands share the runtime ABI; embedded npm modules use - * compressed source tables that the runtime inflates on demand. - */ import { createHash } from "node:crypto"; -import { deflateRawSync } from "node:zlib"; import { endsWithJump, matchStringSelfConcat, @@ -60,12 +42,7 @@ import { STRING, VOID, } from "../../ir/ir.js"; -import { - moduleRuntimeFeatures, - moduleEmbedsBuiltin, - moduleEmbedsCompressedNpm, - NPM_COMPRESS_MIN, -} from "../../ir/runtime-features.js"; +import { moduleRuntimeFeatures } from "../../ir/runtime-features.js"; import { matchIntegerArrayForLoop, matchIntegerBytesForLoop, @@ -201,14 +178,8 @@ import { emitIntrinsicExpr, emitSerializationExpr, emitAsyncExpr } from "./expr- import { PublishWalkers } from "./publish.js"; import { computeImmutableFields, stableGlobals, type ImmutableFields } from "../immutability.js"; import { computePublishedTypes, type PublishedTypes } from "../publication.js"; -import { emitJsInteropExpr, emitExpr } from "./expr-dispatch.js"; -import { - emitJsMarshal, - emitJsOp, - emitJsExit, - islandAdapter, - islandTypedAdapter, -} from "./expr-island.js"; +import { emitExpr } from "./expr-dispatch.js"; + import { dynKind, raceAdapterFor, @@ -1599,22 +1570,6 @@ export class LlEmitter { const hasNoInlineRecordClone = [...this.recordCloneShapes].some( (shapeId) => (this.recordsById.get(shapeId)?.fields.length ?? 0) >= 16, ); - const embedded = this.mod.embedded; - const usesIsland = embedded !== undefined && embedded.modules.length > 0; - const storeNpmText = (text: string): { bytes: Buffer; raw: number } => { - const plain = Buffer.from(text, "utf8"); - if (text.length < NPM_COMPRESS_MIN) return { bytes: plain, raw: 0 }; - const deflated = deflateRawSync(plain, { level: 9 }); - return deflated.length < plain.length - ? { bytes: deflated, raw: plain.length } - : { bytes: plain, raw: 0 }; - }; - const npmStored = usesIsland - ? embedded.modules.map((m) => ({ - src: storeNpmText(m.source), - esm: m.esm === undefined ? null : storeNpmText(m.esm), - })) - : []; // Module globals, FIRST OCCURRENCE per id: a class-expression static // instantiated through several mixin applications registers one global @@ -1682,26 +1637,14 @@ export class LlEmitter { const usesDgram = runtimeFeatures.dgram; const usesHttp2 = runtimeFeatures.http2; const usesHttp = runtimeFeatures.http; - // Fetch-referencing programs register the native fetch bridge before - // any island entry (the engine's lazy boot consults it) — native/executable.ts - // compiles scr_fetch.c on the same predicate. + // Fetch-referencing programs register native fetch before main. + // Runtime selection compiles scr_fetch.c on the same predicate. const usesFetch = runtimeFeatures.fetch; - const embedsZlib = moduleEmbedsBuiltin(this.mod, "node:zlib"); - const embedsNet = - moduleEmbedsBuiltin(this.mod, "node:http") || - moduleEmbedsBuiltin(this.mod, "node:https") || - moduleEmbedsBuiltin(this.mod, "node:net") || - moduleEmbedsBuiltin(this.mod, "node:tls"); - const snapshotsTlsCa = - runtimeFeatures.tls || - runtimeFeatures.tlsCa || - moduleEmbedsBuiltin(this.mod, "node:https") || - moduleEmbedsBuiltin(this.mod, "node:tls"); + const snapshotsTlsCa = runtimeFeatures.tls || runtimeFeatures.tlsCa; // The process verdict has the same precedence as the C reference // emitter: node:test owns the final status when present; otherwise an // embedded process.exitCode owns it; ordinary programs return zero. const usesNodeTest = runtimeFeatures.nodeTest; - const programExitUsesIsland = !usesNodeTest && usesIsland; // Declared NOW — the extern block flushes before main assembles. if (usesEvents) this.declare(`declare void @scr_events_install()`); if (usesChildProcess) this.declare(`declare void @scr_child_dyn_install()`); @@ -1732,21 +1675,7 @@ export class LlEmitter { if (usesHttp2) this.declare(`declare void @scr_http2_dyn_install()`); if (usesHttp) this.declare(`declare void @scr_http_dyn_install()`); if (usesFetch) this.declare(`declare void @scr_fetch_install()`); - if (embedsZlib) this.declare(`declare void @scr_zlib_island_install()`); - if (embedsNet) this.declare(`declare void @scr_net_island_install()`); - if (usesIsland) { - this.declare( - `declare void @scr_island_modules(ptr, ${this.sizeType}, ptr, ${this.sizeType})`, - ); - this.declare(`declare void @scr_island_entry_module(ptr)`); - this.declare(`declare i32 @scr_island_exit_code()`); - if (moduleEmbedsCompressedNpm(this.mod)) { - this.declare(`declare void @scr_island_set_inflate(ptr)`); - this.declare( - `declare zeroext i1 @scr_zlib_inflate_exact(ptr, ${this.sizeType}, ptr, ${this.sizeType})`, - ); - } - } + if (usesNodeTest) this.declare(`declare i32 @scr_test_exit_code()`); if (snapshotsTlsCa) { this.declare(`declare void @scr_tls_ca_install()`); @@ -1785,7 +1714,6 @@ export class LlEmitter { // async loop-exhaustion story. const runsLoop = this.usesTimers || - usesIsland || this.ffiHasForeignCallback || this.mod.functions.some((f) => f.async === true || f.generator !== undefined); const uncaughtReleases = entryMayThrow && !asyncEntry ? globalReleaseLines("gu") : []; @@ -1810,50 +1738,26 @@ export class LlEmitter { this.declare(`declare void @scr_promise_rethrow_top_level(ptr)`); this.declare(`declare void @scr_promise_release(ptr)`); this.declare(`declare void @scr_exit_code_note(i32)`); - if (programExitUsesIsland && inlineExitListeners) { - this.declare(`declare ${this.sizeType} @scr_island_exit_code_version()`); - } } const topPendingExitLines = (): string[] => { if (!asyncEntry) return []; const lines: string[] = []; if (usesNodeTest) { lines.push(` %tla_program_exit = call i32 @scr_test_exit_code()`); - } else if (usesIsland) { - lines.push(` %tla_program_exit = call i32 @scr_island_exit_code()`); } - if (usesNodeTest || usesIsland) { + if (usesNodeTest) { lines.push( ` %tla_program_exit_zero = icmp eq i32 %tla_program_exit, 0`, ` %tla_exit_status = select i1 %tla_program_exit_zero, i32 %tla_status, i32 %tla_program_exit`, ); } - const exitStatus = usesNodeTest || usesIsland ? "%tla_exit_status" : "%tla_status"; - const tracksIslandExit = programExitUsesIsland && inlineExitListeners; - if (tracksIslandExit) { - lines.push(` %tla_exit_version = call ${this.sizeType} @scr_island_exit_code_version()`); - } + const exitStatus = usesNodeTest ? "%tla_exit_status" : "%tla_status"; // finish_top_level initially notes 13. Replace that hint before exit // listeners run when a higher-priority verdict was already selected. lines.push(` call void @scr_exit_code_note(i32 ${exitStatus})`); for (const line of exitListenerLines("xp")) lines.push(line); - if (tracksIslandExit) { - lines.push( - ` %tla_exit_version_after = call ${this.sizeType} @scr_island_exit_code_version()`, - ` %tla_exit_changed = icmp ne ${this.sizeType} %tla_exit_version_after, %tla_exit_version`, - ` br i1 %tla_exit_changed, label %tla_exit_updated, label %tla_exit_unchanged`, - `tla_exit_updated:`, - ` %tla_listener_exit = call i32 @scr_island_exit_code()`, - ` call void @scr_exit_code_note(i32 %tla_listener_exit)`, - ` br label %tla_exit_done`, - `tla_exit_unchanged:`, - ` br label %tla_exit_done`, - `tla_exit_done:`, - ` %tla_final_exit = phi i32 [ %tla_listener_exit, %tla_exit_updated ], [ ${exitStatus}, %tla_exit_unchanged ]`, - ); - } for (const line of topPendingReleases) lines.push(line); - lines.push(` ret i32 ${tracksIslandExit ? "%tla_final_exit" : exitStatus}`); + lines.push(` ret i32 ${exitStatus}`); return lines; }; // LIBRARY mode: the runtime entry points the generated library @@ -2122,68 +2026,12 @@ export class LlEmitter { ); } if (this.templateStringsInstances.size > 0) out.push(``); - const islandEntryPath = usesIsland ? this.cstr(this.mod.sourceFile) : null; for (const [text, c] of this.cstrs) { // NUL-terminated byte-array constants for scr_jb_puts and indentation. out.push(`@${c.sym} = internal constant [${c.len + 1} x i8] c"${llStrBytes(text)}"`); } if (this.cstrs.size > 0) out.push(``); - if (usesIsland) { - const fmt = { esm: 0, cjs: 1, json: 2 } as const; - const edgeKind = { any: 0, import: 1, require: 2 } as const; - embedded.modules.forEach((m, i) => { - const stored = npmStored[i]!; - const key = Buffer.from(m.key, "utf8"); - out.push( - `@sc_npm_key_${i} = internal constant [${key.length + 1} x i8] c"${llBytes(key)}"`, - `@sc_npm_src_${i} = internal constant [${stored.src.bytes.length + 1} x i8] c"${llBytes(stored.src.bytes)}"`, - ); - if (stored.esm !== null) { - out.push( - `@sc_npm_esm_${i} = internal constant [${stored.esm.bytes.length + 1} x i8] c"${llBytes(stored.esm.bytes)}"`, - ); - } - }); - const moduleRows = embedded.modules.map((m, i) => { - const stored = npmStored[i]!; - const esm = - stored.esm === null - ? `ptr null, ${this.sizeType} 0, ${this.sizeType} 0` - : `ptr @sc_npm_esm_${i}, ${this.sizeType} ${stored.esm.bytes.length}, ${this.sizeType} ${stored.esm.raw}`; - return ( - `%ScrIslandModule { ptr @sc_npm_key_${i}, ptr @sc_npm_src_${i}, ` + - `${this.sizeType} ${stored.src.bytes.length}, ${this.sizeType} ${stored.src.raw}, ` + - `i32 ${fmt[m.format]}, ${esm} }` - ); - }); - out.push( - `@sc_npm_modules = internal constant [${moduleRows.length} x %ScrIslandModule] [ ${moduleRows.join(", ")} ]`, - ); - embedded.edges.forEach((edge, i) => { - const parts: [string, string][] = [ - ["from", edge.from], - ["spec", edge.specifier], - ["to", edge.to], - ]; - for (const [part, text] of parts) { - const bytes = Buffer.from(text, "utf8"); - out.push( - `@sc_npm_edge_${i}_${part} = internal constant [${bytes.length + 1} x i8] c"${llBytes(bytes)}"`, - ); - } - }); - if (embedded.edges.length > 0) { - const edgeRows = embedded.edges.map( - (edge, i) => - `%ScrIslandEdge { ptr @sc_npm_edge_${i}_from, ptr @sc_npm_edge_${i}_spec, ` + - `ptr @sc_npm_edge_${i}_to, i32 ${edgeKind[edge.kind]} }`, - ); - out.push( - `@sc_npm_edges = internal constant [${edgeRows.length} x %ScrIslandEdge] [ ${edgeRows.join(", ")} ]`, - ); - } - out.push(``); - } + for (const line of ffiCallbacks.globals) out.push(line); if (ffiCallbacks.globals.length > 0) out.push(``); for (const g of globals) { @@ -2305,24 +2153,12 @@ export class LlEmitter { ...(this.ffiHasForeignCallback ? [` call void @scr_ffi_install()`] : []), ...(snapshotsTlsCa ? [` call void @scr_tls_ca_install()`] : []), ...(usesFetch ? [` call void @scr_fetch_install()`] : []), - ...(embedsZlib ? [` call void @scr_zlib_island_install()`] : []), - ...(embedsNet ? [` call void @scr_net_island_install()`] : []), ...(usesNet ? [` call void @scr_net_install()`, ` call void @scr_net_dyn_install()`] : []), ...(usesHttp ? [` call void @scr_http_dyn_install()`] : []), ...(usesDgram ? [` call void @scr_dgram_install()`] : []), ...(usesHttp2 ? [` call void @scr_http2_dyn_install()`] : []), ...(usesStream ? [` call void @scr_stream_install()`] : []), ` call void @scr_lib_init(i32 %argc, ptr %argv)`, - ...(usesIsland - ? [ - ` call void @scr_island_entry_module(ptr ${islandEntryPath})`, - ...(moduleEmbedsCompressedNpm(this.mod) - ? [` call void @scr_island_set_inflate(ptr @scr_zlib_inflate_exact)`] - : []), - ` call void @scr_island_modules(ptr @sc_npm_modules, ${this.sizeType} ${embedded.modules.length}, ` + - `ptr ${embedded.edges.length > 0 ? "@sc_npm_edges" : "null"}, ${this.sizeType} ${embedded.edges.length})`, - ] - : []), ...(asyncEntry ? [` %top = call ptr @${mangleAsyncSpawn(this.mod.entry)}()`] : [` call void @${mangleFunction(this.mod.entry)}()`]), @@ -2413,9 +2249,7 @@ export class LlEmitter { ...globalReleases, ...(usesNodeTest ? [` %test_exit = call i32 @scr_test_exit_code()`, ` ret i32 %test_exit`] - : usesIsland - ? [` %island_exit = call i32 @scr_island_exit_code()`, ` ret i32 %island_exit`] - : [` %native_exit = call i32 @scr_exit_code_hint_get()`, ` ret i32 %native_exit`]), + : [` %native_exit = call i32 @scr_exit_code_hint_get()`, ` ret i32 %native_exit`]), `}`, ``, ...this.inlineRcTail(flushedDecls), @@ -3183,8 +3017,8 @@ export class LlEmitter { * mentions (transitively), contains no suspension entry point. Such a * body always completes before the call returns, which is exactly the * behavior of a fiber that never suspends. Excluded conservatively: - * wasm32 (its coroutine lowering owns async bodies), programs embedding - * the dynamic engine, module-evaluation bodies (their promise caches), + * wasm32 (its coroutine lowering owns async bodies), module-evaluation + * bodies (their promise caches), * `dyn` results (resolution may adopt a thenable), and every program * that uses node:test subtests — `t.test()` runs a subtest inline and * awaits it on the CURRENT fiber even from synchronous code. Worker @@ -3196,8 +3030,6 @@ export class LlEmitter { private fiberlessAsyncFunctions(): Set { const eligible = new Set(); if (this.wasi || this.mod.workers === true) return eligible; - const embedded = this.mod.embedded; - if (embedded !== undefined && embedded.modules.length > 0) return eligible; const suspends = /@scr_(?:await_|module_await\b|promise_await_settled\b|test_sub\b|gen_yield_|async_gen_|fiber_)/; for (const decl of this.decls) if (/@scr_test_sub\b/.test(decl)) return eligible; @@ -4264,16 +4096,6 @@ export class LlEmitter { } else if (t.kind === "dyn") { this.declare(`declare void @scr_dyn_throw(ptr)`); B.line(`call void @scr_dyn_throw(ptr ${v.name})`); - } else if (t.kind === "jsval") { - const rc = vAdapters(this.shapeHost, t); - const test = "scr_jsval_is_object"; - this.declare(`declare zeroext i1 @${test}(ptr)`); - this.declare(`declare void @scr_throw_ref_classified(ptr, ptr, ptr, ptr, i1 zeroext)`); - const object = B.tmp(); - B.line(`${object} = call zeroext i1 @${test}(ptr ${v.name})`); - B.line( - `call void @scr_throw_ref_classified(ptr ${v.name}, ptr ${rc.retain}, ptr ${rc.release}, ptr ${traceArg(this.shapeHost, t)}, i1 zeroext ${object})`, - ); } else { const rc = vAdapters(this.shapeHost, t); this.declare(`declare void @scr_throw_ref(ptr, ptr, ptr, ptr)`); @@ -4312,7 +4134,7 @@ export class LlEmitter { valueName = this.unionGetBool(v.name); } else if (arm.kind === "string") { valueName = this.unionPeek(v.name, unionId); - } else if (arm.kind === "bigint" || arm.kind === "dyn" || arm.kind === "jsval") { + } else if (arm.kind === "bigint" || arm.kind === "dyn") { valueName = this.unionPeek(v.name, unionId); } const truthy = this.truthyOf(arm.kind, valueName, true); @@ -4406,14 +4228,6 @@ export class LlEmitter { B.line(`${truthy} = call zeroext i1 @scr_dyn_truthy(ptr ${valueName})`); return truthy; } - case "jsval": { - this.declare(`declare i32 @scr_jsval_truthy(ptr)`); - const raw = B.tmp(); - const truthy = B.tmp(); - B.line(`${raw} = call i32 @scr_jsval_truthy(ptr ${valueName})`); - B.line(`${truthy} = icmp ne i32 ${raw}, 0`); - return truthy; - } default: throw new LlvmUnsupportedError(`truthy:${unionArm ? "union:" : ""}${kind}`); } @@ -7546,7 +7360,6 @@ export class LlEmitter { emitDynamicExpr( e: ExprOf< | "dynFrom" - | "dynFromJsval" | "dynCall" | "dynInvoke" | "dynArrLit" @@ -7757,10 +7570,6 @@ export class LlEmitter { return emitAsyncExpr(this, e); } - emitJsInteropExpr(e: ExprOf<"jsMarshal" | "jsOp" | "jsExit" | "jsBridgePromise">): LlValue { - return emitJsInteropExpr(this, e); - } - /** Read a receiver whose value is consumed immediately by a field or tag * load. No user code may run between this read and its consumer. Locals * and their projections already have an owner; other expressions keep @@ -8266,26 +8075,6 @@ export class LlEmitter { return emitExpr(this, e); } - emitJsMarshal(e: IrExpr & { kind: "jsMarshal" }): LlValue { - return emitJsMarshal(this, e); - } - - emitJsOp(e: IrExpr & { kind: "jsOp" }): LlValue { - return emitJsOp(this, e); - } - - emitJsExit(e: IrExpr & { kind: "jsExit" }): LlValue { - return emitJsExit(this, e); - } - - islandAdapter(arity: number, retKind: "void" | "jsval" | "f64" | "bool" | "string"): string { - return islandAdapter(this, arity, retKind); - } - - islandTypedAdapter(fn: IrType & { kind: "func" }): string { - return islandTypedAdapter(this, fn); - } - dynKind(d: string): string { return dynKind(this, d); } diff --git a/packages/compiler/src/backend/llvm/expr-async.test.ts b/packages/compiler/src/backend/llvm/expr-async.test.ts index 4f05d3fb9..67d72d076 100644 --- a/packages/compiler/src/backend/llvm/expr-async.test.ts +++ b/packages/compiler/src/backend/llvm/expr-async.test.ts @@ -17,7 +17,7 @@ const concat = (left: IrExpr, right: IrExpr): IrExpr => ({ function logBody(name: "console.log" | "console.error", args: IrExpr[]): string { const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [ diff --git a/packages/compiler/src/backend/llvm/expr-containers.ts b/packages/compiler/src/backend/llvm/expr-containers.ts index 05dce98fe..4b4ed73a5 100644 --- a/packages/compiler/src/backend/llvm/expr-containers.ts +++ b/packages/compiler/src/backend/llvm/expr-containers.ts @@ -628,14 +628,14 @@ export function emitArrIntrinsic( case "pop": case "shift": { host.emitPublishedArrayGuard(r.name, e.receiver.type, method === "pop" ? 2 : 6); - const dynamic = elem.kind === "dyn" && e.type.kind === "dyn"; - if (!dynamic && e.type.kind !== "union") + const checkedValue = elem.kind === "dyn" && e.type.kind === "dyn"; + if (!checkedValue && e.type.kind !== "union") throw new InternalCompilerError("llvm emitter bug: array removal result is not a union"); const def = e.type.kind === "union" ? host.unionsById.get(e.type.unionId) : undefined; const tag = def ? def.arms.findIndex((arm) => typeEquals(arm, elem)) : -1; const undefTag = undefinedArmTag(e.type, host.unionsById); const sameUnion = elem.kind === "union" && typeEquals(elem, e.type); - if (!dynamic && ((!sameUnion && tag < 0) || undefTag < 0)) + if (!checkedValue && ((!sameUnion && tag < 0) || undefTag < 0)) throw new InternalCompilerError("llvm emitter bug: array removal union lacks its arms"); host.declare(`declare zeroext i8 @scr_arr_${method}_state(ptr, ptr)`); const rawSlot = B.slot(); @@ -658,11 +658,11 @@ export function emitArrIntrinsic( else if (elem.kind === "bool") B.line(`${value} = icmp ne i64 ${raw}, 0`); else B.line(`${value} = inttoptr i64 ${raw} to ptr`); B.line( - `store ptr ${dynamic || sameUnion || e.type.kind !== "union" ? value : host.unionNewOwned(e.type.unionId, tag, { name: value, type: elem })}, ptr ${resultSlot}`, + `store ptr ${checkedValue || sameUnion || e.type.kind !== "union" ? value : host.unionNewOwned(e.type.unionId, tag, { name: value, type: elem })}, ptr ${resultSlot}`, ); B.br(lj); B.startBlock(la); - if (dynamic) { + if (checkedValue) { host.declare(`declare ptr @scr_dyn_undefined()`); const absent = B.tmp(); B.line(`${absent} = call ptr @scr_dyn_undefined()`); diff --git a/packages/compiler/src/backend/llvm/expr-control.ts b/packages/compiler/src/backend/llvm/expr-control.ts index b425862f7..44ecd81c4 100644 --- a/packages/compiler/src/backend/llvm/expr-control.ts +++ b/packages/compiler/src/backend/llvm/expr-control.ts @@ -26,21 +26,10 @@ export function emitControlExpr( switch (e.kind) { case "dynDestrCheck": { // RequireObjectCoercible with V8's destructuring TypeError. dyn - // values check in the runtime helper and pass through unchanged - // (same temp, same ownership); island values check in the engine - // (a fresh +1 cell for the same value comes back). + // values check in the runtime helper and pass through unchanged. const v = host.emitExpr(e.value); const first = e.firstProp !== undefined ? host.cstr(e.firstProp) : "null"; - if (e.value.type.kind === "jsval") { - host.declare(`declare ptr @scr_jsval_destr_check(ptr, ptr, ptr)`); - const t = B.tmp(); - B.line( - `${t} = call ptr @scr_jsval_destr_check(ptr ${v.name}, ptr ${host.cstr(e.spelling)}, ptr ${first})`, - ); - const out = host.own({ name: t, type: e.type }); - host.emitPendingCheck(); - return out; - } + const helper = host.dyn.dynDestrCheckHelper(); B.line(`call void @${helper}(ptr ${v.name}, ptr ${host.cstr(e.spelling)}, ptr ${first})`); host.emitPendingCheck(); @@ -48,18 +37,9 @@ export function emitControlExpr( } case "dynIterN": { // GetIterator + first-N steps as a fresh array (V8's exact - // not-iterable TypeError on non-iterables): the dyn helper for - // dyn operands, the engine's real iterator protocol for island - // ones. + // not-iterable TypeError on non-iterables) through the native dyn helper. const v = emitBorrowedInput(host, e.value); - if (e.value.type.kind === "jsval") { - host.declare(`declare ptr @scr_jsval_iter_n(ptr, double)`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_iter_n(ptr ${v.name}, double ${f64Lit(e.count)})`); - const out = host.own({ name: t, type: e.type }); - host.emitPendingCheck(); - return out; - } + const helper = host.dyn.dynIterNHelper(); const t = B.tmp(); B.line( @@ -212,63 +192,7 @@ export function emitControlExpr( B.line(`${t} = load ptr, ptr ${slot}`); return host.own({ name: t, type: e.type }); } - if (e.receiver.type.kind === "jsval") { - // Island-handle chain: the nullish test asks the engine value; - // the unit path result is the engine's undefined (+1 cell), the - // body runs lazily over the bound handle otherwise. - const r = host.emitExpr(e.receiver); - host.declare(`declare zeroext i1 @scr_jsval_is_nullish(ptr)`); - host.declare(`declare ptr @scr_jsval_retain_v(ptr)`); - const isN = B.tmp(); - B.line(`${isN} = call zeroext i1 @scr_jsval_is_nullish(ptr ${r.name})`); - const bind = B.slot(); - B.entryAllocas.push(`${bind} = alloca ptr`); - B.line(`store ptr null, ptr ${bind}`); - host.ownSlot(bind, e.receiver.type); - if (e.type.kind === "void") { - const lb = B.newLabel("ocj.b"); - const lj = B.newLabel("ocj.j"); - B.condBr(isN, lj, lb); - B.startBlock(lb); - const rr = B.tmp(); - B.line(`${rr} = call ptr @scr_jsval_retain_v(ptr ${r.name})`); - B.line(`store ptr ${rr}, ptr ${bind}`); - host.chainSlots.set(e.id, { name: bind, type: e.receiver.type, slot: true }); - host.frames.push([]); - host.emitExpr(e.body); - host.releaseFrame(host.frames.pop()!); - host.chainSlots.delete(e.id); - B.br(lj); - B.startBlock(lj); - return { name: "", type: e.type }; - } - if (e.type.kind !== "jsval") - throw new InternalCompilerError("llvm emitter bug: jsval optChain result kind"); - const slot = B.slot(); - B.entryAllocas.push(`${slot} = alloca ptr`); - const lu = B.newLabel("ocj.u"); - const lb = B.newLabel("ocj.b"); - const lj = B.newLabel("ocj.j"); - B.condBr(isN, lu, lb); - B.startBlock(lu); - host.declare(`declare ptr @scr_jsval_undefined()`); - const un = B.tmp(); - B.line(`${un} = call ptr @scr_jsval_undefined()`); - B.line(`store ptr ${un}, ptr ${slot}`); - B.br(lj); - B.startBlock(lb); - const rr = B.tmp(); - B.line(`${rr} = call ptr @scr_jsval_retain_v(ptr ${r.name})`); - B.line(`store ptr ${rr}, ptr ${bind}`); - host.chainSlots.set(e.id, { name: bind, type: e.receiver.type, slot: true }); - host.emitBranchInto(slot, e.body); - host.chainSlots.delete(e.id); - B.br(lj); - B.startBlock(lj); - const t = B.tmp(); - B.line(`${t} = load ptr, ptr ${slot}`); - return host.own({ name: t, type: e.type }); - } + if (e.receiver.type.kind !== "union") throw new LlvmUnsupportedError(`optChain:${e.receiver.type.kind}`, e.loc); const def = host.unionsById.get(e.receiver.type.unionId); @@ -471,35 +395,10 @@ export function emitControlExpr( // TAG against its unit arms as the test. Pass-through shape: the // result IS the left box. Narrowed shape: the single non-unit // arm's payload extracts (+1 for ref kinds) and the box releases. - if (e.left.type.kind === "jsval") { - // The island form: engine nullish test, lazy right (jsval). - const l = host.emitExpr(e.left); - host.moveTemp(l); - host.declare(`declare zeroext i1 @scr_jsval_is_nullish(ptr)`); - const slot = B.slot(); - B.entryAllocas.push(`${slot} = alloca ptr`); - const isN = B.tmp(); - B.line(`${isN} = call zeroext i1 @scr_jsval_is_nullish(ptr ${l.name})`); - const lu = B.newLabel("nulj.u"); - const lv = B.newLabel("nulj.v"); - const lj = B.newLabel("nulj.j"); - B.condBr(isN, lu, lv); - B.startBlock(lu); - host.releaseValue(l.name, e.left.type); - host.emitBranchInto(slot, e.right); - B.br(lj); - B.startBlock(lv); - B.line(`store ptr ${l.name}, ptr ${slot}`); - B.br(lj); - B.startBlock(lj); - const t = B.tmp(); - B.line(`${t} = load ptr, ptr ${slot}`); - return host.own({ name: t, type: e.type }); - } + if (e.left.type.kind === "dyn") { - // The checked-dynamic form: the runtime kind decides (UNDEF/ - // NULL take the default; a wrapped island value asks the - // engine); the right runs lazily in its branch (already dyn). + // The native checked-value kind decides whether the left is + // nullish; the right runs lazily in its branch. const l = host.emitExpr(e.left); host.moveTemp(l); host.declare(`declare zeroext i1 @scr_dyn_is_nullish(ptr)`); diff --git a/packages/compiler/src/backend/llvm/expr-dispatch.ts b/packages/compiler/src/backend/llvm/expr-dispatch.ts index f0e13dbd0..1dc1d463c 100644 --- a/packages/compiler/src/backend/llvm/expr-dispatch.ts +++ b/packages/compiler/src/backend/llvm/expr-dispatch.ts @@ -1,47 +1,7 @@ /* Focused LLVM expression emission extracted from emitter.ts. */ import { InternalCompilerError } from "../../errors.js"; import { type IrExpr } from "../../ir/ir.js"; -import type { LlvmEmitterContext, ExprOf, LlValue } from "./expr-context.js"; - -export function emitJsInteropExpr( - host: LlvmEmitterContext, - e: ExprOf<"jsMarshal" | "jsOp" | "jsExit" | "jsBridgePromise">, -): LlValue { - const B = host.B; - switch (e.kind) { - case "jsMarshal": - return host.emitJsMarshal(e); - case "jsOp": - return host.emitJsOp(e); - case "jsExit": - return host.emitJsExit(e); - case "jsBridgePromise": { - // Island → static promise bridge: a fresh pending ScrPromise the - // engine promise settles. Operand borrowed; the +1 promise joins - // the frame. Pending check like other island ops. - const v = host.emitExpr(e.value); - const payload = - e.type.kind === "promise" && e.type.inner.kind === "void" - ? 0 // SCR_ISLP_VOID - : e.type.kind === "promise" && - e.type.inner.kind === "array" && - e.type.inner.elem.kind === "jsval" - ? 5 // SCR_ISLP_JSVAL_ARR: the Array.isArray-gated by-reference exit at settle - : 4; // SCR_ISLP_JSVAL - host.declare(`declare ptr @scr_jsval_bridge_promise(ptr, i32)`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_bridge_promise(ptr ${v.name}, i32 ${payload})`); - const out = host.own({ name: t, type: e.type }); - host.emitPendingCheck(); - return out; - } - default: { - const _exhaustive: never = e; - void _exhaustive; - throw new InternalCompilerError("unreachable"); - } - } -} +import type { LlvmEmitterContext, LlValue } from "./expr-context.js"; export function emitExpr(host: LlvmEmitterContext, e: IrExpr): LlValue { switch (e.kind) { @@ -117,7 +77,6 @@ export function emitExpr(host: LlvmEmitterContext, e: IrExpr): LlValue { case "fieldAbsent": return host.emitRecordExpr(e); case "dynFrom": - case "dynFromJsval": case "dynCall": case "dynInvoke": case "dynArrLit": @@ -150,11 +109,6 @@ export function emitExpr(host: LlvmEmitterContext, e: IrExpr): LlValue { case "newPromise": case "promiseWithResolvers": return host.emitAsyncExpr(e); - case "jsMarshal": - case "jsOp": - case "jsExit": - case "jsBridgePromise": - return host.emitJsInteropExpr(e); case "libCall": return host.emitLibCall(e); default: { diff --git a/packages/compiler/src/backend/llvm/expr-dynamic.ts b/packages/compiler/src/backend/llvm/expr-dynamic.ts index f82269f66..a07de963c 100644 --- a/packages/compiler/src/backend/llvm/expr-dynamic.ts +++ b/packages/compiler/src/backend/llvm/expr-dynamic.ts @@ -28,7 +28,6 @@ export function emitDynamicExpr( host: LlvmEmitterContext, e: ExprOf< | "dynFrom" - | "dynFromJsval" | "dynCall" | "dynInvoke" | "dynArrLit" @@ -116,16 +115,6 @@ export function emitDynamicExpr( B.line(`${t} = call ptr @${conv}(${valTy} ${v.name})`); return host.own({ name: t, type: e.type }); } - case "dynFromJsval": { - // Island value → dyn: the by-reference wrap (scr_dyn_from_jsval - // retains the cell in; engine scalars normalize to native dyn - // kinds at wrap time). Operand borrowed, result +1, never throws. - const v = emitBorrowedInput(host, e.value); - host.declare(`declare ptr @scr_dyn_from_jsval(ptr)`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_dyn_from_jsval(ptr ${v.name})`); - return host.own({ name: t, type: e.type }); - } case "dynCall": { // Calling a dyn value: args are already dyn (the lowering boxed or // converted them); everything is BORROWED by scr_dyn_call — the @@ -627,16 +616,16 @@ export function emitDynamicExpr( } else if (e.test === "error") { // `u instanceof Error`: the checked-dynamic tree's error encoding — an object // carrying the reserved "%error" marker key, a registered native - // Error view, or a real engine Error held by reference. + // Error view. const kd = host.dynKind(d.name); const isObj = B.tmp(); B.line(`${isObj} = icmp eq i32 ${kd}, ${DYN_KIND.OBJ}`); const slot = B.slot(); B.entryAllocas.push(`${slot} = alloca i1`); - host.declare(`declare zeroext i1 @scr_dyn_isl_is_error(ptr)`); - const isl = B.tmp(); - B.line(`${isl} = call zeroext i1 @scr_dyn_isl_is_error(ptr ${d.name})`); - B.line(`store i1 ${isl}, ptr ${slot}`); + host.declare(`declare zeroext i1 @scr_dyn_ref_is_error(ptr)`); + const nativeError = B.tmp(); + B.line(`${nativeError} = call zeroext i1 @scr_dyn_ref_is_error(ptr ${d.name})`); + B.line(`store i1 ${nativeError}, ptr ${slot}`); const lObj = B.newLabel("dts.o"); const lj = B.newLabel("dts.j"); B.condBr(isObj, lObj, lj); @@ -649,7 +638,7 @@ export function emitDynamicExpr( ); B.line(`${has} = icmp ne ptr ${m}, null`); const branded = B.tmp(); - B.line(`${branded} = or i1 ${has}, ${isl}`); + B.line(`${branded} = or i1 ${has}, ${nativeError}`); B.line(`store i1 ${branded}, ptr ${slot}`); B.br(lj); B.startBlock(lj); @@ -672,10 +661,9 @@ export function emitDynamicExpr( } return acc; }; - // ISLAND-held nodes route the tests that depend on the engine's - // answer through the scr_dyn_isl_* helpers (false on every - // other kind — the calls stay unconditional and branch-free). - const orIsl = (acc: string, helper: string, arg?: string): string => { + + // Native reference capsules answer through materialization helpers. + const orNativeRef = (acc: string, helper: string, arg?: string): string => { host.declare(`declare zeroext i1 @${helper}(ptr${arg !== undefined ? ", ptr" : ""})`); const c = B.tmp(); B.line( @@ -703,9 +691,8 @@ export function emitDynamicExpr( B.line(`${test} = and i1 ${bytes}, ${buffer}`); } else if (e.test === "object") { // `typeof v === "object"`: objects, arrays, bytes, native - // handles, promises, AND null — engine-held objects by the - // engine's own typeof. - const object = orIsl( + // handles, promises, null, and native reference capsules. + const object = orNativeRef( oneOf([ DYN_KIND.OBJ, DYN_KIND.ARR, @@ -715,7 +702,7 @@ export function emitDynamicExpr( DYN_KIND.PROXY, DYN_KIND.NULL, ]), - "scr_dyn_isl_typeof_is", + "scr_dyn_ref_typeof_is", host.cstr("object"), ); host.declare("declare zeroext i1 @scr_dyn_is_callable(ptr)"); @@ -726,9 +713,8 @@ export function emitDynamicExpr( B.line(`${nonCallable} = xor i1 ${callable}, true`); B.line(`${test} = and i1 ${object}, ${nonCallable}`); } else if (e.test === "array") { - // Array.isArray: the checked-dynamic tree's array kind, or the engine's own - // answer for an engine-held value. - test = orIsl(oneOf([DYN_KIND.ARR]), "scr_dyn_isl_is_array"); + // Array.isArray accepts native arrays and typed array capsules. + test = orNativeRef(oneOf([DYN_KIND.ARR]), "scr_dyn_ref_is_array"); } else if (e.test === "function") { host.declare("declare zeroext i1 @scr_dyn_is_callable(ptr)"); test = B.tmp(); diff --git a/packages/compiler/src/backend/llvm/expr-island.ts b/packages/compiler/src/backend/llvm/expr-island.ts deleted file mode 100644 index c29b3312c..000000000 --- a/packages/compiler/src/backend/llvm/expr-island.ts +++ /dev/null @@ -1,889 +0,0 @@ -/* Focused LLVM expression emission extracted from emitter.ts. */ -import { InternalCompilerError } from "../../errors.js"; -import { undefinedArmTag } from "../../ir/analysis.js"; -import { - canMarshalFuncIntoIsland, - type IrExpr, - type IrType, - islandCallbackRet, - islandPromisePayloadTag, - isRefCounted, - isUnitType, - STRING, - typeKey, -} from "../../ir/ir.js"; -import { FN_ATTRS, releaseSym } from "./shapes.js"; -import type { LlvmEmitterContext, LlValue } from "./expr-context.js"; -import { f64Lit } from "./common.js"; - -export function emitJsMarshal( - host: LlvmEmitterContext, - e: IrExpr & { kind: "jsMarshal" }, -): LlValue { - const B = host.B; - const v = host.emitExpr(e.value); - const simple = (sym: string, argTy: string, fallible: boolean): LlValue => { - host.declare(`declare ptr @${sym}(${argTy === "i1" ? "i1 zeroext" : argTy})`); - const t = B.tmp(); - B.line(`${t} = call ptr @${sym}(${argTy} ${v.name})`); - const out = host.own({ name: t, type: e.type }); - if (fallible) host.emitPendingCheck(); - return out; - }; - switch (e.value.type.kind) { - case "f64": - return simple("scr_jsval_from_f64", "double", false); - case "bool": - return simple("scr_jsval_from_bool", "i1", false); - case "string": - return simple("scr_jsval_from_str", "ptr", false); - case "dyn": - // A CHECKED-DYNAMIC (dyn) value entering the island: deep copy, - // data kinds only — boxed functions/handles/promises throw the - // catchable TypeError in the runtime, and a wrapped island value - // unwraps to the SAME engine value (the identity round trip). - // Transfer ownership to the island runtime. - return simple("scr_jsval_from_dyn", "ptr", true); - case "bytes": - // A typed array crossing IN: a COPY (the boundary's copy stance). - return simple("scr_jsval_from_bytes", "ptr", true); - case "url": - // A URL crossing IN: an engine URL instance built from href. - return simple("scr_jsval_from_url", "ptr", true); - case "promise": { - // A STATIC promise crossing IN: a real engine thenable settled - // when the scriptc promise settles (the async-callback return - // bridge). from_promise takes ownership of a +1 — retain past - // the borrowed frame temp. Transfer ownership to the island runtime. - const tag = islandPromisePayloadTag(e.value.type.inner); - if (!tag) - throw new InternalCompilerError( - "llvm emitter bug: jsMarshal of a promise outside the bridge payload domain", - ); - const tagN = { void: 0, f64: 1, bool: 2, string: 3, jsval: 4, jsvalArr: 5 }[tag]; - host.declare(`declare ptr @scr_promise_retain(ptr)`); - host.declare(`declare ptr @scr_jsval_from_promise(ptr, i32)`); - const pr = B.tmp(); - B.line(`${pr} = call ptr @scr_promise_retain(ptr ${v.name})`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_from_promise(ptr ${pr}, i32 ${tagN})`); - const out = host.own({ name: t, type: e.type }); - host.emitPendingCheck(); - return out; - } - case "func": { - // A closure entering the island as a host function: from_closure - // retains it; the engine's finalizer releases it at teardown. The - // per-signature adapter gives the runtime one uniform call shape. - const fn = e.value.type; - const adapter = canMarshalFuncIntoIsland(fn) - ? host.islandAdapter( - fn.params.length, - fn.ret.kind as "void" | "jsval" | "f64" | "bool" | "string", - ) - : host.islandTypedAdapter(fn); - host.declare(`declare ptr @scr_jsval_from_closure(ptr, i32, ptr)`); - // ISLAND-REST closures encode a NEGATIVE arity (the runtime ABI’s - // rule): the wrapper hands the trailing slot the engine array of - // the surplus arguments. - const arity = - fn.rest === true && fn.restAbi === "jsval" ? -fn.params.length : fn.params.length; - const t = B.tmp(); - B.line( - `${t} = call ptr @scr_jsval_from_closure(ptr ${v.name}, i32 ${arity}, ptr @${adapter})`, - ); - return host.own({ name: t, type: e.type }); - } - default: { - // JSON-safe composite: deep copy through the emitted serializer - // and the engine's JSON parser (documented aliasing divergence). - const helper = host.walkers.jsonWriteHelper(e.value.type); - host.declare(`declare void @scr_jb_init(ptr)`); - host.declare(`declare ptr @scr_jb_finish(ptr)`); - host.declare(`declare ptr @scr_jsval_from_json(ptr)`); - const buf = B.slot(); - B.entryAllocas.push(`${buf} = alloca %ScrJsonBuf`); - B.line(`call void @scr_jb_init(ptr ${buf})`); - B.line(`call void @${helper}(ptr ${buf}, ${host.llType(e.value.type)} ${v.name})`); - const js = B.tmp(); - B.line(`${js} = call ptr @scr_jb_finish(ptr ${buf})`); - host.own({ name: js, type: STRING }); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_from_json(ptr ${js})`); - const out = host.own({ name: t, type: e.type }); - host.emitPendingCheck(); - return out; - } - } -} - -export function emitJsOp(host: LlvmEmitterContext, e: IrExpr & { kind: "jsOp" }): LlValue { - const B = host.B; - const args = e.args.map((a) => host.emitExpr(a)); - const a = (i: number): string => args[i]!.name; - const nameSym = (): string => host.internLiteral(e.name!); - const fallible = (call: () => string): LlValue => { - const t = call(); - const out = host.own({ name: t, type: e.type }); - host.emitPendingCheck(); - return out; - }; - const argPack = (list: string[]): string => { - if (list.length === 0) return "null"; - const arr = B.slot(); - B.entryAllocas.push(`${arr} = alloca [${list.length} x ptr]`); - list.forEach((x, i) => { - const p = B.tmp(); - B.line(`${p} = getelementptr inbounds [${list.length} x ptr], ptr ${arr}, i64 0, i64 ${i}`); - B.line(`store ptr ${x}, ptr ${p}`); - }); - return arr; - }; - const JSOP: Record = { - add: 0, - sub: 1, - mul: 2, - div: 3, - mod: 4, - pow: 5, - lt: 6, - le: 7, - gt: 8, - ge: 9, - eq: 10, - neq: 11, - }; - switch (e.op) { - case "add": - case "sub": - case "mul": - case "div": - case "mod": - case "pow": - host.declare(`declare ptr @scr_jsval_binop(i32, ptr, ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_binop(i32 ${JSOP[e.op]}, ptr ${a(0)}, ptr ${a(1)})`); - return t; - }); - case "lt": - case "le": - case "gt": - case "ge": - case "eq": - case "neq": { - host.declare(`declare i32 @scr_jsval_cmp(i32, ptr, ptr)`); - const r = B.tmp(); - B.line(`${r} = call i32 @scr_jsval_cmp(i32 ${JSOP[e.op]}, ptr ${a(0)}, ptr ${a(1)})`); - const t = B.tmp(); - B.line(`${t} = icmp eq i32 ${r}, 1`); - const out = { name: t, type: e.type }; - host.emitPendingCheck(); - return out; - } - case "neg": - case "plus": { - const sym = e.op === "neg" ? "scr_jsval_neg" : "scr_jsval_plus"; - host.declare(`declare ptr @${sym}(ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line(`${t} = call ptr @${sym}(ptr ${a(0)})`); - return t; - }); - } - case "truthy": - case "not": { - host.declare(`declare i32 @scr_jsval_truthy(ptr)`); - const r = B.tmp(); - B.line(`${r} = call i32 @scr_jsval_truthy(ptr ${a(0)})`); - const t = B.tmp(); - B.line(`${t} = icmp ${e.op === "truthy" ? "ne" : "eq"} i32 ${r}, 0`); - return { name: t, type: e.type }; - } - case "typeof": { - host.declare(`declare ptr @scr_jsval_typeof(ptr)`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_typeof(ptr ${a(0)})`); - return host.own({ name: t, type: e.type }); - } - case "toStr": - host.declare(`declare ptr @scr_jsval_to_str(ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_to_str(ptr ${a(0)})`); - return t; - }); - case "getProp": - host.declare(`declare ptr @scr_jsval_get_prop(ptr, ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_get_prop(ptr ${a(0)}, ptr ${nameSym()})`); - return t; - }); - case "globalGet": - host.declare(`declare ptr @scr_jsval_global_get(ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_global_get(ptr ${nameSym()})`); - return t; - }); - case "setProp": { - host.declare(`declare i32 @scr_jsval_set_prop(ptr, ptr, ptr)`); - B.line( - `${B.tmp()} = call i32 @scr_jsval_set_prop(ptr ${a(0)}, ptr ${nameSym()}, ptr ${a(1)})`, - ); - host.emitPendingCheck(); - return { name: "", type: e.type }; - } - case "getIdx": - host.declare(`declare ptr @scr_jsval_get_idx(ptr, ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_get_idx(ptr ${a(0)}, ptr ${a(1)})`); - return t; - }); - case "iterNew": - host.declare(`declare ptr @scr_jsval_iter_new(ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_iter_new(ptr ${a(0)})`); - return t; - }); - case "setIdx": { - host.declare(`declare i32 @scr_jsval_set_idx(ptr, ptr, ptr)`); - B.line(`${B.tmp()} = call i32 @scr_jsval_set_idx(ptr ${a(0)}, ptr ${a(1)}, ptr ${a(2)})`); - host.emitPendingCheck(); - return { name: "", type: e.type }; - } - case "callMethod": { - const pack = argPack(args.slice(1).map((x) => x.name)); - host.declare(`declare ptr @scr_jsval_call_method(ptr, ptr, i32, ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line( - `${t} = call ptr @scr_jsval_call_method(ptr ${a(0)}, ptr ${nameSym()}, i32 ${args.length - 1}, ptr ${pack})`, - ); - return t; - }); - } - case "optCallMethod": { - const pack = argPack(args.slice(1).map((x) => x.name)); - host.declare(`declare ptr @scr_jsval_opt_call_method(ptr, ptr, i32, ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line( - `${t} = call ptr @scr_jsval_opt_call_method(ptr ${a(0)}, ptr ${nameSym()}, i32 ${args.length - 1}, ptr ${pack})`, - ); - return t; - }); - } - case "callFn": { - const pack = argPack(args.slice(1).map((x) => x.name)); - host.declare(`declare ptr @scr_jsval_call(ptr, i32, ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_call(ptr ${a(0)}, i32 ${args.length - 1}, ptr ${pack})`); - return t; - }); - } - case "callFnThis": { - const pack = argPack(args.slice(2).map((x) => x.name)); - host.declare(`declare ptr @scr_jsval_call_this(ptr, ptr, i32, ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line( - `${t} = call ptr @scr_jsval_call_this(ptr ${a(0)}, ptr ${a(1)}, i32 ${args.length - 2}, ptr ${pack})`, - ); - return t; - }); - } - case "callSpread": { - // Spread application (`f(...pre, ...s)`): the prelude helper's - // real spread syntax — iterator protocols are the engine's own, - // the guards front-run V8's spread-call TypeError texts (the name - // literal is the spread expression's spelling). - host.declare(`declare ptr @scr_jsval_call_spread(ptr, ptr, ptr, ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line( - `${t} = call ptr @scr_jsval_call_spread(ptr ${a(0)}, ptr ${a(1)}, ptr ${a(2)}, ptr ${nameSym()})`, - ); - return t; - }); - } - case "construct": { - const pack = argPack(args.slice(1).map((x) => x.name)); - host.declare(`declare ptr @scr_jsval_construct(ptr, i32, ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line( - `${t} = call ptr @scr_jsval_construct(ptr ${a(0)}, i32 ${args.length - 1}, ptr ${pack})`, - ); - return t; - }); - } - case "objLit": { - const pack = argPack(args.map((x) => x.name)); - host.declare(`declare ptr @scr_jsval_obj_lit(i32, ptr)`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_obj_lit(i32 ${args.length / 2}, ptr ${pack})`); - return host.own({ name: t, type: e.type }); - } - case "tplStrings": { - const pack = argPack(args.map((x) => x.name)); - host.declare(`declare ptr @scr_jsval_tpl_strings(i32, ptr)`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_tpl_strings(i32 ${args.length / 2}, ptr ${pack})`); - return host.own({ name: t, type: e.type }); - } - case "objSpread": { - host.declare(`declare ptr @scr_jsval_obj_spread(ptr, ptr)`); - return fallible(() => { - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_obj_spread(ptr ${a(0)}, ptr ${a(1)})`); - return t; - }); - } - case "defineGetter": { - // Getter completion for an island literal (the runtime ABI’s - // scr_jsval_define_getter shape): defines key a(1) on obj a(0) - // as an engine getter invoking a(2); answers the object (+1). - host.declare(`declare ptr @scr_jsval_define_getter(ptr, ptr, ptr)`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_define_getter(ptr ${a(0)}, ptr ${a(1)}, ptr ${a(2)})`); - return host.own({ name: t, type: e.type }); - } - case "arrLit": { - const pack = argPack(args.map((x) => x.name)); - host.declare(`declare ptr @scr_jsval_arr_lit(i32, ptr)`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_arr_lit(i32 ${args.length}, ptr ${pack})`); - return host.own({ name: t, type: e.type }); - } - case "instanceOf": { - // JS_IsInstanceOf through the engine: 1 true, 0 false, -1 threw - // (Symbol.hasInstance can raise) — the fallible pattern, result - // narrowed to bool by comparing against 1. - host.declare(`declare i32 @scr_jsval_instance_of(ptr, ptr)`); - return fallible(() => { - const r = B.tmp(); - B.line(`${r} = call i32 @scr_jsval_instance_of(ptr ${a(0)}, ptr ${a(1)})`); - const t = B.tmp(); - B.line(`${t} = icmp eq i32 ${r}, 1`); - return t; - }); - } - case "undefLit": { - host.declare(`declare ptr @scr_jsval_undefined()`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_undefined()`); - return host.own({ name: t, type: e.type }); - } - case "nullLit": { - host.declare(`declare ptr @scr_jsval_null()`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_null()`); - return host.own({ name: t, type: e.type }); - } - default: - throw new InternalCompilerError(`llvm emitter bug: jsOp ${e.op satisfies never}`); - } -} - -export function emitJsExit(host: LlvmEmitterContext, e: IrExpr & { kind: "jsExit" }): LlValue { - const B = host.B; - const v = host.emitExpr(e.value); - switch (e.type.kind) { - case "f64": - case "bool": { - const isF64 = e.type.kind === "f64"; - const sym = isF64 ? "scr_jsval_exit_f64" : "scr_jsval_exit_bool"; - host.declare(`declare i32 @${sym}(ptr, ptr)`); - const slot = B.slot(); - B.entryAllocas.push(`${slot} = alloca ${isF64 ? "double" : "i8"}`); - B.line(`store ${isF64 ? `double ${f64Lit(0)}` : "i8 0"}, ptr ${slot}`); - B.line(`${B.tmp()} = call i32 @${sym}(ptr ${v.name}, ptr ${slot})`); - host.emitPendingCheck(); - const t = B.tmp(); - if (isF64) { - B.line(`${t} = load double, ptr ${slot}`); - return { name: t, type: e.type }; - } - B.line(`${t} = load i8, ptr ${slot}`); - const b = B.tmp(); - B.line(`${b} = trunc i8 ${t} to i1`); - return { name: b, type: e.type }; - } - case "string": { - host.declare(`declare ptr @scr_jsval_exit_str(ptr)`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_exit_str(ptr ${v.name})`); - const out = host.own({ name: t, type: e.type }); - host.emitPendingCheck(); - return out; - } - case "bytes": { - // Uint8Array exit: kind-checked, copied out (+1). - host.declare(`declare ptr @scr_jsval_exit_bytes(ptr)`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_exit_bytes(ptr ${v.name})`); - const out = host.own({ name: t, type: e.type }); - host.emitPendingCheck(); - return out; - } - default: { - // `any[]`-declared slot: Array.isArray-gated, elements BY - // REFERENCE (identity crosses; the spine is a snapshot copy). - // JSON-safe element types keep the round trip below. - if (e.type.kind === "array" && e.type.elem.kind === "jsval") { - host.declare(`declare ptr @scr_jsval_exit_jsval_arr(ptr)`); - const t = B.tmp(); - B.line(`${t} = call ptr @scr_jsval_exit_jsval_arr(ptr ${v.name})`); - const out = host.own({ name: t, type: e.type }); - host.emitPendingCheck(); - return out; - } - // An undefined-armed union target: the engine's undefined takes - // the undefined arm FIRST (JSON cannot spell it); then null and - // data ride the round trip into the union's dynCheck like any - // composite. - const roundTrip = (): string => { - host.declare(`declare ptr @scr_jsval_to_json(ptr)`); - host.declare(`declare ptr @scr_json_parse(ptr)`); - const js = B.tmp(); - B.line(`${js} = call ptr @scr_jsval_to_json(ptr ${v.name})`); - host.own({ name: js, type: STRING }); - host.emitPendingCheck(); - const dom = B.tmp(); - B.line(`${dom} = call ptr @scr_json_parse(ptr ${js})`); - host.own({ name: dom, type: { kind: "dyn" } }); - host.emitPendingCheck(); - const helper = host.dyn.dynCheckHelper(e.type); - const t = B.tmp(); - B.line(`${t} = call ${host.llType(e.type)} @${helper}(ptr ${dom}, ptr null)`); - return t; - }; - const undefTag = e.type.kind === "union" ? undefinedArmTag(e.type, host.unionsById) : -1; - if (e.type.kind === "union" && undefTag >= 0) { - host.declare(`declare zeroext i1 @scr_jsval_is_undefined(ptr)`); - const isU = B.tmp(); - B.line(`${isU} = call zeroext i1 @scr_jsval_is_undefined(ptr ${v.name})`); - const slot = B.slot(); - B.entryAllocas.push(`${slot} = alloca ptr`); - const lu = B.newLabel("jx.u"); - const ld = B.newLabel("jx.d"); - const lj = B.newLabel("jx.j"); - B.condBr(isU, lu, ld); - B.startBlock(lu); - B.line(`store ptr ${host.unitInstanceRef(e.type.unionId, undefTag)}, ptr ${slot}`); - B.br(lj); - B.startBlock(ld); - host.frames.push([]); - const unionDef = host.unionsById.get(e.type.unionId); - const dataArms = unionDef - ? unionDef.arms.flatMap((a, i) => (isUnitType(a) ? [] : [{ a, i }])) - : []; - const jsvalArr = - dataArms.length === 1 && - dataArms[0]!.a.kind === "array" && - dataArms[0]!.a.elem.kind === "jsval" - ? dataArms[0]! - : null; - let t: string; - if (jsvalArr) { - // The `any[] | undefined` defaulted-parameter spelling: the - // engine array exits BY REFERENCE into the data arm. - host.declare(`declare ptr @scr_jsval_exit_jsval_arr(ptr)`); - const arr = B.tmp(); - B.line(`${arr} = call ptr @scr_jsval_exit_jsval_arr(ptr ${v.name})`); - host.emitPendingCheck(); - t = host.unionNewOwned(e.type.unionId, jsvalArr.i, { name: arr, type: jsvalArr.a }); - B.line(`store ptr ${t}, ptr ${slot}`); - } else { - t = roundTrip(); - host.own({ name: t, type: e.type }); - host.emitPendingCheck(); - host.moveTemp({ name: t, type: e.type }); - B.line(`store ptr ${t}, ptr ${slot}`); - } - host.releaseFrame(host.frames.pop()!); - B.br(lj); - B.startBlock(lj); - const out = B.tmp(); - B.line(`${out} = load ptr, ptr ${slot}`); - return host.own({ name: out, type: e.type }); - } - const t = roundTrip(); - const out = host.own({ name: t, type: e.type }); - host.emitPendingCheck(); - return out; - } - } -} - -export function islandAdapter( - host: LlvmEmitterContext, - arity: number, - retKind: "void" | "jsval" | "f64" | "bool" | "string", -): string { - const tag = { void: "v", jsval: "j", f64: "f", bool: "b", string: "s" }[retKind]; - const key = `ia:${arity}:${tag}`; - let sym = host.resolveThunks.get(key); - if (sym) return sym; - sym = `sc_ia_${arity}${tag}`; - host.resolveThunks.set(key, sym); - host.declare(`declare ptr @scr_jsval_retain_v(ptr)`); - const d: string[] = [ - `define internal ptr @${sym}(ptr %c, ptr %argv) ${FN_ATTRS} { ; island host-call adapter (${arity} arg${arity === 1 ? "" : "s"}, ${retKind})`, - `entry:`, - ]; - const passed: string[] = ["ptr %c"]; - for (let i = 0; i < arity; i++) { - d.push( - ` %ap${i} = getelementptr inbounds ptr, ptr %argv, i64 ${i}`, - ` %av${i} = load ptr, ptr %ap${i}`, - ` %ar${i} = call ptr @scr_jsval_retain_v(ptr %av${i})`, - ); - passed.push(`ptr %ar${i}`); - } - d.push( - ` %fnp = getelementptr inbounds %ScrClosure, ptr %c, i64 0, i32 1`, - ` %fn = load ptr, ptr %fnp`, - ); - switch (retKind) { - case "void": - d.push(` call void %fn(${passed.join(", ")})`, ` ret ptr null`); - break; - case "jsval": - d.push(` %r = call ptr %fn(${passed.join(", ")})`, ` ret ptr %r`); - break; - case "f64": - host.declare(`declare ptr @scr_jsval_from_f64(double)`); - d.push( - ` %r = call double %fn(${passed.join(", ")})`, - ` %j = call ptr @scr_jsval_from_f64(double %r)`, - ` ret ptr %j`, - ); - break; - case "bool": - host.declare(`declare ptr @scr_jsval_from_bool(i1 zeroext)`); - d.push( - ` %r = call i1 %fn(${passed.join(", ")})`, - ` %j = call ptr @scr_jsval_from_bool(i1 %r)`, - ` ret ptr %j`, - ); - break; - case "string": - // The closure's +1 string marshals in, then releases. NULL is the - // throw-path dummy — the wrapper reverse-bridges the pending - // exception. - host.declare(`declare ptr @scr_jsval_from_str(ptr)`); - host.declare(`declare void @scr_str_release(ptr)`); - d.push( - ` %r = call ptr %fn(${passed.join(", ")})`, - ` %isnull = icmp eq ptr %r, null`, - ` br i1 %isnull, label %bad, label %ok`, - `bad:`, - ` ret ptr null`, - `ok:`, - ` %j = call ptr @scr_jsval_from_str(ptr %r)`, - ` call void @scr_str_release(ptr %r)`, - ` ret ptr %j`, - ); - break; - } - d.push(`}`, ``); - host.resolveThunkDefs.push(...d); - return sym; -} - -export function islandTypedAdapter( - host: LlvmEmitterContext, - fn: IrType & { kind: "func" }, -): string { - const ret = islandCallbackRet( - fn.ret, - (id) => host.recordsById.get(id), - (id) => host.unionsById.get(id), - ); - if (!ret) - throw new InternalCompilerError( - "llvm emitter bug: typed island adapter with unsupported return", - ); - const key = `ita:${fn.params.map((p) => typeKey(p)).join(",")}=>${ret.async ? "P:" : ""}${ret.tag}`; - let sym = host.resolveThunks.get(key); - if (sym) return sym; - sym = `sc_ita_${host.resolveThunks.size}`; - host.resolveThunks.set(key, sym); - const d: string[] = [ - `define internal ptr @${sym}(ptr %c, ptr %argv) ${FN_ATTRS} { ; typed island host-call adapter: ${key}`, - `entry:`, - ]; - // One slot per param: scalars hold the converted value; refs start - // NULL so the convfail path can release NULL-tolerantly. Unit-arm - // instances are immortal — their release is a no-op. - const slotTy: string[] = []; - fn.params.forEach((p, i) => { - const ty = host.llType(p); - const st = ty === "double" ? "double" : ty === "i1" ? "i8" : "ptr"; - slotTy.push(st); - d.push(` %sl${i} = alloca ${st}`); - d.push( - ` store ${st} ${st === "double" ? f64Lit(0) : st === "i8" ? "0" : "null"}, ptr %sl${i}`, - ); - }); - let canFail = false; - const cleanup: string[] = []; - fn.params.forEach((p, i) => { - if (isRefCounted(p)) { - cleanup.push( - ` %cf${i} = load ptr, ptr %sl${i}`, - ` call void ${releaseSym(host.shapeHost, p)}(ptr %cf${i})`, - ); - } - }); - let blk = 0; - const failCheckPtr = (val: string): void => { - // NULL result → convfail. - canFail = true; - const b = blk++; - d.push( - ` %cn${b} = icmp eq ptr ${val}, null`, - ` br i1 %cn${b}, label %convfail, label %cont${b}`, - `cont${b}:`, - ); - }; - fn.params.forEach((p, i) => { - d.push( - ` %ap${i} = getelementptr inbounds ptr, ptr %argv, i64 ${i}`, - ` %av${i} = load ptr, ptr %ap${i}`, - ); - switch (p.kind) { - case "dyn": - host.declare(`declare ptr @scr_dyn_from_jsval(ptr)`); - d.push( - ` %dr${i} = call ptr @scr_dyn_from_jsval(ptr %av${i})`, - ` store ptr %dr${i}, ptr %sl${i}`, - ); - break; - case "jsval": - host.declare(`declare ptr @scr_jsval_retain_v(ptr)`); - d.push( - ` %jr${i} = call ptr @scr_jsval_retain_v(ptr %av${i})`, - ` store ptr %jr${i}, ptr %sl${i}`, - ); - break; - case "f64": { - canFail = true; - host.declare(`declare i32 @scr_jsval_exit_f64(ptr, ptr)`); - const b = blk++; - d.push( - ` %fx${i} = call i32 @scr_jsval_exit_f64(ptr %av${i}, ptr %sl${i})`, - ` %fk${i} = icmp eq i32 %fx${i}, 0`, - ` br i1 %fk${i}, label %convfail, label %cont${b}`, - `cont${b}:`, - ); - break; - } - case "bool": { - canFail = true; - host.declare(`declare i32 @scr_jsval_exit_bool(ptr, ptr)`); - const b = blk++; - d.push( - ` %bx${i} = call i32 @scr_jsval_exit_bool(ptr %av${i}, ptr %sl${i})`, - ` %bk${i} = icmp eq i32 %bx${i}, 0`, - ` br i1 %bk${i}, label %convfail, label %cont${b}`, - `cont${b}:`, - ); - break; - } - case "string": { - host.declare(`declare ptr @scr_jsval_exit_str(ptr)`); - d.push(` %sx${i} = call ptr @scr_jsval_exit_str(ptr %av${i})`); - failCheckPtr(`%sx${i}`); - d.push(` store ptr %sx${i}, ptr %sl${i}`); - break; - } - default: { - // Composite (record/array/union): the jsExit pipeline — engine - // JSON.stringify, json.parse, the interned dynCheck builder. - canFail = true; - host.declare(`declare ptr @scr_jsval_to_json(ptr)`); - host.declare(`declare ptr @scr_json_parse(ptr)`); - host.declare(`declare void @scr_str_release(ptr)`); - host.declare(`declare void @scr_dyn_release(ptr)`); - const utag = p.kind === "union" ? undefinedArmTag(p, host.unionsById) : -1; - const b = blk++; - if (p.kind === "union" && utag >= 0) { - host.declare(`declare zeroext i1 @scr_jsval_is_undefined(ptr)`); - d.push( - ` %iu${i} = call zeroext i1 @scr_jsval_is_undefined(ptr %av${i})`, - ` br i1 %iu${i}, label %undef${b}, label %conv${b}`, - `undef${b}:`, - ` store ptr ${host.unitInstanceRef(p.unionId, utag)}, ptr %sl${i} ; absent/undefined argument -> the undefined arm`, - ` br label %cont${b}`, - `conv${b}:`, - ); - } - d.push(` %tj${i} = call ptr @scr_jsval_to_json(ptr %av${i})`); - const b2 = blk++; - d.push( - ` %tjn${i} = icmp eq ptr %tj${i}, null`, - ` br i1 %tjn${i}, label %convfail, label %cont${b2}`, - `cont${b2}:`, - ` %dp${i} = call ptr @scr_json_parse(ptr %tj${i})`, - ` call void @scr_str_release(ptr %tj${i})`, - ); - const b3 = blk++; - d.push( - ` %dpn${i} = icmp eq ptr %dp${i}, null`, - ` br i1 %dpn${i}, label %convfail, label %cont${b3}`, - `cont${b3}:`, - ` %cv${i} = call ${host.llType(p)} @${host.dyn.dynCheckHelper(p)}(ptr %dp${i}, ptr null)`, - ` call void @scr_dyn_release(ptr %dp${i})`, - ...host.pendingTestLines(`%pe${i}`), - ); - const b4 = blk++; - d.push( - ` br i1 %pe${i}, label %convfail, label %cont${b4}`, - `cont${b4}:`, - ` store ${host.llType(p)} %cv${i}, ptr %sl${i}`, - ); - if (p.kind === "union" && utag >= 0) d.push(` br label %cont${b}`, `cont${b}:`); - } - } - }); - // The call over the converted slots (each moves into the callee). - const passed = ["ptr %c"]; - fn.params.forEach((p, i) => { - const ty = host.llType(p); - if (ty === "i1") { - d.push(` %ld${i} = load i8, ptr %sl${i}`, ` %lb${i} = trunc i8 %ld${i} to i1`); - passed.push(`i1 %lb${i}`); - } else { - d.push(` %ld${i} = load ${ty}, ptr %sl${i}`); - passed.push(`${ty} %ld${i}`); - } - }); - d.push( - ` %fnp = getelementptr inbounds %ScrClosure, ptr %c, i64 0, i32 1`, - ` %fn = load ptr, ptr %fnp`, - ); - if (ret.async) { - // The closure returns a +1 ScrPromise; from_promise takes ownership. - const tagN = { void: 0, f64: 1, bool: 2, string: 3, jsval: 4, json: 0, dyn: 0 }[ret.tag]; - host.declare(`declare ptr @scr_jsval_from_promise(ptr, i32)`); - d.push( - ` %pr = call ptr %fn(${passed.join(", ")})`, - ` %prn = icmp eq ptr %pr, null`, - ` br i1 %prn, label %pnull, label %pok`, - `pnull:`, - ` ret ptr null`, - `pok:`, - ` %pj = call ptr @scr_jsval_from_promise(ptr %pr, i32 ${tagN})`, - ` ret ptr %pj`, - ); - } else { - switch (ret.tag) { - case "void": - d.push(` call void %fn(${passed.join(", ")})`, ` ret ptr null`); - break; - case "jsval": - d.push(` %r = call ptr %fn(${passed.join(", ")})`, ` ret ptr %r`); - break; - case "f64": - host.declare(`declare ptr @scr_jsval_from_f64(double)`); - d.push( - ` %r = call double %fn(${passed.join(", ")})`, - ` %j = call ptr @scr_jsval_from_f64(double %r)`, - ` ret ptr %j`, - ); - break; - case "bool": - host.declare(`declare ptr @scr_jsval_from_bool(i1 zeroext)`); - d.push( - ` %r = call i1 %fn(${passed.join(", ")})`, - ` %j = call ptr @scr_jsval_from_bool(i1 %r)`, - ` ret ptr %j`, - ); - break; - case "string": - host.declare(`declare ptr @scr_jsval_from_str(ptr)`); - host.declare(`declare void @scr_str_release(ptr)`); - d.push( - ` %r = call ptr %fn(${passed.join(", ")})`, - ` %rn = icmp eq ptr %r, null`, - ` br i1 %rn, label %snull, label %sok`, - `snull:`, - ` ret ptr null`, - `sok:`, - ` %j = call ptr @scr_jsval_from_str(ptr %r)`, - ` call void @scr_str_release(ptr %r)`, - ` ret ptr %j`, - ); - break; - case "dyn": - // A checked-dynamic (+1 dyn) result: deep copy into the engine - // (the jsMarshal dyn rule); NULL is the throw-path dummy. - host.declare(`declare ptr @scr_jsval_from_dyn(ptr)`); - host.declare(`declare void @scr_dyn_release(ptr)`); - d.push( - ` %r = call ptr %fn(${passed.join(", ")})`, - ` %rn = icmp eq ptr %r, null`, - ` br i1 %rn, label %dnull, label %dok`, - `dnull:`, - ` ret ptr null`, - `dok:`, - ` %j = call ptr @scr_jsval_from_dyn(ptr %r)`, - ` call void @scr_dyn_release(ptr %r)`, - ` ret ptr %j`, - ); - break; - case "json": { - // A JSON-safe composite return: the jsMarshal path — the type- - // directed serializer, then the engine's JSON parser (deep - // copy). NULL result is the throw-path dummy. - const helper = host.walkers.jsonWriteHelper(fn.ret); - host.declare(`declare void @scr_jb_init(ptr)`); - host.declare(`declare ptr @scr_jb_finish(ptr)`); - host.declare(`declare ptr @scr_jsval_from_json(ptr)`); - host.declare(`declare void @scr_str_release(ptr)`); - d.push( - ` %jbuf = alloca %ScrJsonBuf`, - ` %rv = call ${host.llType(fn.ret)} %fn(${passed.join(", ")})`, - ...host.pendingTestLines("%rpend"), - ` br i1 %rpend, label %jfail, label %jok`, - `jfail:`, - ...(isRefCounted(fn.ret) - ? [` call void ${releaseSym(host.shapeHost, fn.ret)}(${host.llType(fn.ret)} %rv)`] - : []), - ` ret ptr null`, - `jok:`, - ` call void @scr_jb_init(ptr %jbuf)`, - ` call void @${helper}(ptr %jbuf, ${host.llType(fn.ret)} %rv)`, - ...(isRefCounted(fn.ret) - ? [` call void ${releaseSym(host.shapeHost, fn.ret)}(${host.llType(fn.ret)} %rv)`] - : []), - ` %rj = call ptr @scr_jb_finish(ptr %jbuf)`, - ` %j = call ptr @scr_jsval_from_json(ptr %rj)`, - ` call void @scr_str_release(ptr %rj)`, - ` ret ptr %j`, - ); - break; - } - } - } - if (canFail) { - d.push( - `convfail:`, - // Params already converted release here (NULL-tolerant; unit-arm - // instances are immortal — their release is a no-op). The pending - // TypeError reverse-bridges in the wrapper. - ...cleanup, - ` ret ptr null`, - ); - } - d.push(`}`, ``); - host.resolveThunkDefs.push(...d); - return sym; -} diff --git a/packages/compiler/src/backend/llvm/expr-primitives.test.ts b/packages/compiler/src/backend/llvm/expr-primitives.test.ts index f8c26648f..b64d639a1 100644 --- a/packages/compiler/src/backend/llvm/expr-primitives.test.ts +++ b/packages/compiler/src/backend/llvm/expr-primitives.test.ts @@ -17,7 +17,7 @@ function fixture(): IrModule { loc, }); return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "__main", functions: [{ name: "__main", params: [], returnType: VOID, locals: [], body, loc }], @@ -112,7 +112,7 @@ test("reference identity and instanceof borrow their operands", () => { body: [{ kind: "return" as const, value, loc }], }); const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "__main", classes: [ diff --git a/packages/compiler/src/backend/llvm/expr-stream-bridges.test.ts b/packages/compiler/src/backend/llvm/expr-stream-bridges.test.ts index 9741cf216..0a0aa108d 100644 --- a/packages/compiler/src/backend/llvm/expr-stream-bridges.test.ts +++ b/packages/compiler/src/backend/llvm/expr-stream-bridges.test.ts @@ -20,7 +20,7 @@ function sharedGraph(roots: number): IrModule { unionId: `input${index}`, })); return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", records: [ diff --git a/packages/compiler/src/backend/llvm/lib-dispatch.ts b/packages/compiler/src/backend/llvm/lib-dispatch.ts index 4bc0f7a1d..fbd99060b 100644 --- a/packages/compiler/src/backend/llvm/lib-dispatch.ts +++ b/packages/compiler/src/backend/llvm/lib-dispatch.ts @@ -294,7 +294,6 @@ export function emitLibCall(host: LlvmEmitterContext, e: LibCallExpr): LlValue { switch (prefix) { case "fetch": case "abort": - case "island": case "json": return host.emitWebLibCall(e); case "dyn": diff --git a/packages/compiler/src/backend/llvm/lib-filesystem.ts b/packages/compiler/src/backend/llvm/lib-filesystem.ts index 41d93317b..16a5b9192 100644 --- a/packages/compiler/src/backend/llvm/lib-filesystem.ts +++ b/packages/compiler/src/backend/llvm/lib-filesystem.ts @@ -86,19 +86,6 @@ export function emitWebLibCall(host: LlvmEmitterContext, e: LibCallExpr): LlValu host.emitPendingCheck(); return out; } - // The handful with non-generic shapes first. - if (e.fn === "island.castFail") { - // The deferred boundary failure: the island value was evaluated - // (its side effects are real), the throw is unconditional - // (catchable TypeError naming the target type), and the typed - // dummy is NULL — the pending check abandons it. - const args = e.args.map((a) => host.emitExpr(a)); - host.declare(`declare void @scr_jsval_cast_fail(ptr, ptr)`); - B.line(`call void @scr_jsval_cast_fail(ptr ${args[0]!.name}, ptr ${args[1]!.name})`); - const out = host.own({ name: "null", type: e.type }); - host.emitPendingCheck(); - return out; - } return host.emitGenericLibCall(e); } diff --git a/packages/compiler/src/backend/llvm/lib-shared.ts b/packages/compiler/src/backend/llvm/lib-shared.ts index 07df1406f..645e98514 100644 --- a/packages/compiler/src/backend/llvm/lib-shared.ts +++ b/packages/compiler/src/backend/llvm/lib-shared.ts @@ -924,14 +924,6 @@ export const LIB_FN_SYMS: Record = { "http.clientDestroyed": "scr_http_client_destroyed", "http2.streamUndefCall": "scr_http2_stream_undef_call", "http.agentNew": "scr_http_agent_new", - // The island surface (--dynamic): eval/import bridge catchably (the - // may-throw seed's pending check); importDyn answers an engine promise - // and never throws itself. insp.jsval throws on composite island - // values (engine JSON.stringify inside). - "island.eval": "scr_island_eval", - "island.import": "scr_jsval_import", - "island.importDyn": "scr_jsval_import_dyn", - "insp.jsval": "scr_insp_jsval", // timers/promises (+1 promises; the await parks a fiber, so the async // loop gate already runs) and diagnostics_channel (scr_dc.c): all // generic shapes; the throwing members ride the pending check. diff --git a/packages/compiler/src/backend/llvm/local-array-reads.test.ts b/packages/compiler/src/backend/llvm/local-array-reads.test.ts index 31b2717b3..7dab89255 100644 --- a/packages/compiler/src/backend/llvm/local-array-reads.test.ts +++ b/packages/compiler/src/backend/llvm/local-array-reads.test.ts @@ -129,7 +129,7 @@ function fixture(): IrModule { ], }; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", records: [{ id: "cell", fields: [{ name: "x", type: F64 }] }], diff --git a/packages/compiler/src/backend/llvm/local-union-storage.test.ts b/packages/compiler/src/backend/llvm/local-union-storage.test.ts index f19deb721..3d1fb57da 100644 --- a/packages/compiler/src/backend/llvm/local-union-storage.test.ts +++ b/packages/compiler/src/backend/llvm/local-union-storage.test.ts @@ -82,7 +82,7 @@ function fixture(): IrModule { ], }; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", unions: [{ id: "optional", arms: [STRING, UNDEFINED_T] }], diff --git a/packages/compiler/src/backend/llvm/map-read-lifetimes.test.ts b/packages/compiler/src/backend/llvm/map-read-lifetimes.test.ts index 3d75432ec..4263f05c7 100644 --- a/packages/compiler/src/backend/llvm/map-read-lifetimes.test.ts +++ b/packages/compiler/src/backend/llvm/map-read-lifetimes.test.ts @@ -67,7 +67,7 @@ function fixture(value: IrType = record, key: IrType = F64): IrModule { ], }; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", records: [{ id: "cell", fields: [{ name: "x", type: F64 }] }], diff --git a/packages/compiler/src/backend/llvm/shapes.test.ts b/packages/compiler/src/backend/llvm/shapes.test.ts index 71a7b5472..f8199d555 100644 --- a/packages/compiler/src/backend/llvm/shapes.test.ts +++ b/packages/compiler/src/backend/llvm/shapes.test.ts @@ -27,7 +27,7 @@ function declarationHost( tracedShapes: new Set(), tracedUnions: new Set(), nullableUnions: new NullableUnions({ - irVersion: 15, + irVersion: 16, sourceFile: "test.ts", functions: [], entry: "main", @@ -170,7 +170,7 @@ describe("LLVM runtime RC symbols", () => { describe("emitted object releases", () => { test("a surviving headered record enqueues only when not already buffered", () => { const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: "cycle.ts", entry: "main", functions: [], @@ -192,7 +192,7 @@ describe("emitted object releases", () => { describe("live-object audit notes", () => { const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: "audit.ts", entry: "main", functions: [], diff --git a/packages/compiler/src/backend/llvm/shapes.ts b/packages/compiler/src/backend/llvm/shapes.ts index 08d24d682..970a64367 100644 --- a/packages/compiler/src/backend/llvm/shapes.ts +++ b/packages/compiler/src/backend/llvm/shapes.ts @@ -581,8 +581,7 @@ export function arrNewCall(host: ShapeHost, elem: IrType, capText: string): stri elem.kind === "classval" || // local class objects own traced capture boxes elem.kind === "promise" || // promise entries (Promise.all inputs): full REF story elem.kind === "child" || // spawned child handles: scr_child_* adapters, no trace - elem.kind === "netServer" || // server handles ([...set] drains): REF, no trace - elem.kind === "jsval" || // island handles (`any[]` under --dynamic): REF, no trace + elem.kind === "netServer" || elem.kind === "dyn" || // native collection seeds/drains: traced REF elem.kind === "regex" || // RegExp values: scr_regex_* adapters, no trace (no refs inside) (elem.kind === "array" && traceAdapter(host, elem) !== null); diff --git a/packages/compiler/src/backend/llvm/stack-unions.test.ts b/packages/compiler/src/backend/llvm/stack-unions.test.ts index d6b04c6db..fea34a9cf 100644 --- a/packages/compiler/src/backend/llvm/stack-unions.test.ts +++ b/packages/compiler/src/backend/llvm/stack-unions.test.ts @@ -73,7 +73,7 @@ function fixture(arm: IrType = record): IrModule { body: [ret(narrow(ref("value"), arm))], }; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", records: [{ id: "cell", fields: [{ name: "x", type: F64 }] }], diff --git a/packages/compiler/src/backend/llvm/string-construction.test.ts b/packages/compiler/src/backend/llvm/string-construction.test.ts index b22b06b21..b436efa77 100644 --- a/packages/compiler/src/backend/llvm/string-construction.test.ts +++ b/packages/compiler/src/backend/llvm/string-construction.test.ts @@ -17,7 +17,7 @@ const concat = (left: IrExpr, right: IrExpr): IrExpr => ({ function module(value: IrExpr): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [ diff --git a/packages/compiler/src/backend/llvm/string-lifetimes.test.ts b/packages/compiler/src/backend/llvm/string-lifetimes.test.ts index 89c707c19..c93f1dcb9 100644 --- a/packages/compiler/src/backend/llvm/string-lifetimes.test.ts +++ b/packages/compiler/src/backend/llvm/string-lifetimes.test.ts @@ -72,7 +72,7 @@ function fn(name: string, names: string[], value: IrExpr): IrFunction { } function mod(...functions: IrFunction[]): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [ diff --git a/packages/compiler/src/backend/llvm/switch-dispatch.test.ts b/packages/compiler/src/backend/llvm/switch-dispatch.test.ts index 57c12728e..04ff0e185 100644 --- a/packages/compiler/src/backend/llvm/switch-dispatch.test.ts +++ b/packages/compiler/src/backend/llvm/switch-dispatch.test.ts @@ -13,7 +13,7 @@ function emit(type: IrType, tests: (IrExpr | null)[], pointerBits: 32 | 64 = 64) function emitWith(disc: IrExpr, tests: (IrExpr | null)[], pointerBits: 32 | 64 = 64): string { const type = disc.kind === "varRef" ? disc.type : F64; const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [ diff --git a/packages/compiler/src/backend/may-throw.test.ts b/packages/compiler/src/backend/may-throw.test.ts index 383e12ce5..07b127c37 100644 --- a/packages/compiler/src/backend/may-throw.test.ts +++ b/packages/compiler/src/backend/may-throw.test.ts @@ -28,7 +28,7 @@ function fn(name: string, body: IrStmt[], locals: IrLocal[] = [local]): IrFuncti return { name, body, locals, params: [], returnType: VOID, loc }; } function moduleWith(...functions: IrFunction[]): IrModule { - return { irVersion: 15, sourceFile: loc.file, entry: "caller", functions }; + return { irVersion: 16, sourceFile: loc.file, entry: "caller", functions }; } const assignment: IrStmt = { kind: "assign", localId: local.id, value, loc }; const expression: IrExpr = { kind: "assignExpr", localId: local.id, value, type: F64, loc }; diff --git a/packages/compiler/src/backend/may-throw.ts b/packages/compiler/src/backend/may-throw.ts index 432e1a81b..ad475b41d 100644 --- a/packages/compiler/src/backend/may-throw.ts +++ b/packages/compiler/src/backend/may-throw.ts @@ -243,15 +243,6 @@ export function computeMayThrow( ) f.throws = true; break; - case "jsOp": - case "jsExit": - case "jsMarshal": - case "jsBridgePromise": - // Island operations bridge engine exceptions into the cell - // (jsMarshal only on engine-level surprise, but the emitted - // pending check exists — seed conservatively). - f.throws = true; - break; case "libCall": // The may-throw seed hook: throwing library calls (fs.*, // json.parse) count exactly like a `throw` statement. diff --git a/packages/compiler/src/backend/native-link-info-core.ts b/packages/compiler/src/backend/native-link-info-core.ts index b41683ee9..8ad524693 100644 --- a/packages/compiler/src/backend/native-link-info-core.ts +++ b/packages/compiler/src/backend/native-link-info-core.ts @@ -16,13 +16,11 @@ import type { NativeTargetSpec } from "./targets.js"; export interface NativeLinkFeatures { workers?: boolean; - dynamic: boolean; regex: boolean; copying: boolean; textDecoderLegacy: boolean; fileHandle: boolean; fetch: boolean; - netIsland: boolean; zlib: boolean; assert: boolean; inspect: boolean; diff --git a/packages/compiler/src/backend/native-toolchain.test.ts b/packages/compiler/src/backend/native-toolchain.test.ts index ed513e506..bd43ba395 100644 --- a/packages/compiler/src/backend/native-toolchain.test.ts +++ b/packages/compiler/src/backend/native-toolchain.test.ts @@ -299,7 +299,6 @@ test.skipIf( cPath, outPath: join(dir, "host"), cacheIdentity: TEST_CACHE_IDENTITY, - dynamic: true, net: true, http: true, tls: true, @@ -309,18 +308,13 @@ test.skipIf( // reusable independently of the output path. systemLibraries: ["m"], }); - const hostEngine = (await readdir(vendorRoot)).find((name) => - name.startsWith("3c8f3d689539-plain-"), - ); const hostTls = (await readdir(vendorRoot)).find((name) => name.startsWith("mbedtls-")); - expect(hostEngine).toBeDefined(); expect(hostTls).toBeDefined(); process.env["SCRIPTC_CC"] = "zigcc"; const zigOptions = { cPath, cacheIdentity: TEST_CACHE_IDENTITY, - dynamic: true, net: true, http: true, tls: true, @@ -330,9 +324,6 @@ test.skipIf( await compileC({ ...zigOptions, outPath: join(dir, "zig-first") }); let vendorEntries = await readdir(vendorRoot); - expect(vendorEntries.filter((name) => name.startsWith("3c8f3d689539-plain-"))).toHaveLength( - 2, - ); expect(vendorEntries.filter((name) => name.startsWith("mbedtls-")).length).toBe(2); // Host clang uses system zlib, so only the Zig build materializes a zlib // object family in the shared vendor root. @@ -340,22 +331,12 @@ test.skipIf( // Invalidate the host archive. A targetless Zig rebuild must continue to // use the separately keyed Zig archive instead of repairing or consuming // the host-clang entry. - await writeFile( - join(vendorRoot, hostEngine!, "libqjs.a"), - "host archive intentionally invalid\n", - ); await writeFile( join(vendorRoot, hostTls!, "libmbedtls.a"), "host archive intentionally invalid\n", ); await compileC({ ...zigOptions, outPath: join(dir, "zig-second") }); vendorEntries = await readdir(vendorRoot); - expect(vendorEntries.filter((name) => name.startsWith("3c8f3d689539-plain-"))).toHaveLength( - 2, - ); - expect(await readFile(join(vendorRoot, hostEngine!, "libqjs.a"), "utf8")).toBe( - "host archive intentionally invalid\n", - ); expect(await readFile(join(vendorRoot, hostTls!, "libmbedtls.a"), "utf8")).toBe( "host archive intentionally invalid\n", ); @@ -694,7 +675,7 @@ exec "$@" cPath, outPath: join(dir, "second"), cacheIdentity: TEST_CACHE_IDENTITY, - dynamic: true, + tls: true, }); expect((await readFile(ccacheLog, "utf8")).trim()).not.toBe(""); } finally { @@ -2249,27 +2230,22 @@ test("native cache warming seeds exact runtime and vendor families without compl process.env["SCRIPTC_CACHE_DIR"] = cacheRoot; delete process.env["SCRIPTC_TEST_VENDOR_CACHE_DIR"]; delete process.env["SCRIPTC_NO_CACHE"]; - const warmed = await warmNativeCaches({ profiles: ["runtime", "tls", "dynamic"] }); + const warmed = await warmNativeCaches({ profiles: ["runtime", "tls"] }); expect(warmed.cacheRoot).toBe(cacheRoot); - expect(warmed.profiles.map(({ profile }) => profile)).toEqual(["runtime", "tls", "dynamic"]); + expect(warmed.profiles.map(({ profile }) => profile)).toEqual(["runtime", "tls"]); expect(warmed.profiles.every(({ elapsedMs }) => elapsedMs >= 0)).toBe(true); expect( (await readdir(join(cacheRoot, "obj"), { withFileTypes: true })).filter((e) => e.isDirectory(), ), - ).toHaveLength(3); + ).toHaveLength(2); expect(await readdir(join(cacheRoot, "bin")).catch(() => [])).toEqual([]); const vendorEntries = await readdir(vendorCacheRoot); const tlsEntry = vendorEntries.find((name) => name.startsWith("mbedtls-")); - const engineEntry = vendorEntries.find((name) => name.startsWith("3c8f3d689539-plain-")); expect(tlsEntry).toBeDefined(); - expect(engineEntry).toBeDefined(); expect((await stat(join(vendorCacheRoot, tlsEntry!, "libmbedtls.a.sha256"))).isFile()).toBe( true, ); - expect((await stat(join(vendorCacheRoot, engineEntry!, "libqjs.a.sha256"))).isFile()).toBe( - true, - ); } finally { if (oldCacheDir === undefined) delete process.env["SCRIPTC_CACHE_DIR"]; else process.env["SCRIPTC_CACHE_DIR"] = oldCacheDir; @@ -2295,28 +2271,26 @@ test("damaged shared vendor archives are rejected and rebuilt before linking", a delete process.env["SCRIPTC_NO_CACHE"]; delete process.env["SCRIPTC_TEST_VENDOR_CACHE_DIR"]; await writeFile(cPath, "int main(void) { return 0; }\n"); - await warmNativeCaches({ profiles: ["dynamic"] }); + await warmNativeCaches({ profiles: ["tls"] }); const vendorRoot = join(cacheRoot, "vendor"); - const engineDir = (await readdir(vendorRoot)).find((name) => - name.startsWith("3c8f3d689539-plain-"), - ); - expect(engineDir).toBeDefined(); - const engineArchive = join(vendorRoot, engineDir!, "libqjs.a"); - expect((await stat(`${engineArchive}.sha256`)).isFile()).toBe(true); - await writeFile(engineArchive, corruption); + const tlsDir = (await readdir(vendorRoot)).find((name) => name.startsWith("mbedtls-")); + expect(tlsDir).toBeDefined(); + const tlsArchive = join(vendorRoot, tlsDir!, "libmbedtls.a"); + expect((await stat(`${tlsArchive}.sha256`)).isFile()).toBe(true); + await writeFile(tlsArchive, corruption); await compileC({ cPath, outPath, cacheIdentity: TEST_CACHE_IDENTITY, - dynamic: true, + tls: true, }); expect((await stat(outPath)).isFile()).toBe(true); - const repaired = await readFile(engineArchive); + const repaired = await readFile(tlsArchive); expect(repaired).not.toEqual(corruption); - expect((await readFile(`${engineArchive}.sha256`, "utf8")).trim()).toBe( + expect((await readFile(`${tlsArchive}.sha256`, "utf8")).trim()).toBe( createHash("sha256").update(repaired).digest("hex"), ); } finally { @@ -2329,7 +2303,7 @@ test("damaged shared vendor archives are rejected and rebuilt before linking", a } }, 120_000); -test("dynamic builds promote staged vendor archives before bounded LRU eviction", async () => { +test("TLS builds promote staged vendor archives before bounded LRU eviction", async () => { const dir = await mkdtemp(join(tmpdir(), "scriptc-vendor-lru-")); scratch.push(dir); const cacheRoot = join(dir, "cache"); @@ -2345,21 +2319,19 @@ test("dynamic builds promote staged vendor archives before bounded LRU eviction" delete process.env["SCRIPTC_CACHE_MAX_MB"]; delete process.env["SCRIPTC_TEST_VENDOR_CACHE_DIR"]; await writeFile(cPath, "int main(void) { return 0; }\n"); - await warmNativeCaches({ profiles: ["dynamic"] }); + await warmNativeCaches({ profiles: ["tls"] }); const vendorRoot = join(cacheRoot, "vendor"); - const engineDir = (await readdir(vendorRoot)).find((name) => - name.startsWith("3c8f3d689539-plain-"), - ); - expect(engineDir).toBeDefined(); - const engineArchive = join(vendorRoot, engineDir!, "libqjs.a"); + const tlsDir = (await readdir(vendorRoot)).find((name) => name.startsWith("mbedtls-")); + expect(tlsDir).toBeDefined(); + const tlsArchive = join(vendorRoot, tlsDir!, "libmbedtls.a"); const initialBytes = await cacheTreeBytes(cacheRoot); const capMb = Math.max(4, Math.ceil((initialBytes * 2) / (1024 * 1024))); const filler = join(cacheRoot, "filler.bin"); const staleArchiveTime = new Date("2000-01-01T00:00:00.000Z"); const fillerTime = new Date("2001-01-01T00:00:00.000Z"); await writeFile(filler, Buffer.alloc(capMb * 1024 * 1024)); - await utimes(engineArchive, staleArchiveTime, staleArchiveTime); + await utimes(tlsArchive, staleArchiveTime, staleArchiveTime); await utimes(filler, fillerTime, fillerTime); process.env["SCRIPTC_CACHE_MAX_MB"] = String(capMb); @@ -2367,11 +2339,11 @@ test("dynamic builds promote staged vendor archives before bounded LRU eviction" cPath, outPath, cacheIdentity: TEST_CACHE_IDENTITY, - dynamic: true, + tls: true, }); expect((await stat(outPath)).isFile()).toBe(true); - expect((await stat(engineArchive)).mtimeMs).toBeGreaterThan(fillerTime.getTime()); + expect((await stat(tlsArchive)).mtimeMs).toBeGreaterThan(fillerTime.getTime()); expect(await cacheTreeBytes(cacheRoot)).toBeLessThanOrEqual(capMb * 1024 * 1024); } finally { if (oldCacheDir === undefined) delete process.env["SCRIPTC_CACHE_DIR"]; @@ -2823,7 +2795,8 @@ test.skipIf(process.platform === "win32")( expect(realClang).toBeDefined(); const waitForSignal = async (): Promise => { - const deadline = Date.now() + 10_000; + // A cold runtime compile shares CPUs with the full Sandbox gate. + const deadline = Date.now() + 60_000; while (!existsSync(signal)) { if (Date.now() > deadline) throw new Error("timed out waiting for final compilation"); await new Promise((resolveWait) => setTimeout(resolveWait, 10)); diff --git a/packages/compiler/src/backend/native/artifact-stamps.ts b/packages/compiler/src/backend/native/artifact-stamps.ts index 6fc7793a2..7ba0b4370 100644 --- a/packages/compiler/src/backend/native/artifact-stamps.ts +++ b/packages/compiler/src/backend/native/artifact-stamps.ts @@ -370,8 +370,6 @@ export function localArtifactIdentity( ); } return hash - .update(process.env["SCRIPTC_FETCH_CURL"] === "1" ? "fetch-curl" : "fetch-native") - .update("\0") .update(JSON.stringify(normalizedOptions)) .update("\0") .update(resolve(opts.cPath)) diff --git a/packages/compiler/src/backend/native/cache-warm.ts b/packages/compiler/src/backend/native/cache-warm.ts index f3894df7d..13863be6d 100644 --- a/packages/compiler/src/backend/native/cache-warm.ts +++ b/packages/compiler/src/backend/native/cache-warm.ts @@ -9,7 +9,7 @@ import { type CcDriver, targetPlatform, resolveCc } from "./driver.js"; import { clearCcCaches } from "./runtime-objects.js"; import { compileCInternal } from "./executable.js"; -export type NativeCacheWarmProfile = "runtime" | "tls" | "dynamic"; +export type NativeCacheWarmProfile = "runtime" | "tls"; export interface WarmNativeCachesOptions { /** Native object posture to seed. Defaults to the shipped release/-O2 lane. */ @@ -29,7 +29,7 @@ export function supportedNativeCacheWarmProfiles( driver: CcDriver, ): readonly NativeCacheWarmProfile[] { if (isMobileTarget(driver.target) || targetPlatform(driver) === "wasi") return []; - return ["runtime", "tls", "dynamic"]; + return ["runtime", "tls"]; } /** Populate expensive native prerequisites against the current compiler, @@ -48,7 +48,7 @@ export async function warmNativeCaches( ); } await ensurePrivateCacheRoot(cacheRoot, process.env["SCRIPTC_CACHE_DIR"] === undefined); - const known = new Set(["runtime", "tls", "dynamic"]); + const known = new Set(["runtime", "tls"]); for (const profile of options.profiles ?? []) { if (!known.has(profile)) throw new Error(`unknown native cache warm profile '${profile}'`); } @@ -91,7 +91,6 @@ export async function warmNativeCaches( optimization: options.optimization ?? "release", sanitize: options.sanitize ?? false, ...(profile === "tls" ? { fetch: true } : {}), - ...(profile === "dynamic" ? { dynamic: true } : {}), }, true, protectedPaths, diff --git a/packages/compiler/src/backend/native/compiler-fingerprint.ts b/packages/compiler/src/backend/native/compiler-fingerprint.ts index 880e973b3..ec427ce0a 100644 --- a/packages/compiler/src/backend/native/compiler-fingerprint.ts +++ b/packages/compiler/src/backend/native/compiler-fingerprint.ts @@ -13,13 +13,11 @@ import { import { existingDriverTracePaths, normalizedProbeInvocation } from "./trace-paths.js"; import { stableTestMemo } from "./session.js"; import { - QJS_ENGINE_SOURCES, LRE_SOURCES, ZLIB_SOURCES, vendorEngineDir, vendorTlsDir, vendorZlibDir, - vendorCurlDir, } from "./vendor.js"; import { nativeSourceFiles, runtimeSrcDir } from "./runtime-inputs.js"; @@ -53,7 +51,7 @@ interface EffectiveCompilerInvocationProbe { * intentionally uses a target-wide synthetic TU so it can discover every * owned system header, but that generic command is not sufficient identity for * a wrapper that injects flags or preincluded files only for a particular build - * flavor (for example, only when it sees -O2 or -DSCR_DYNAMIC). */ + * flavor (for example, only when it sees -O2). */ async function effectiveCompilerInvocationFingerprintFresh( driver: Pick, environmentFingerprint: string, @@ -166,10 +164,10 @@ export function effectiveCompilerInvocationFingerprint( * hashes the resolved files. Runtime-local and vendored source/header bytes * have their own content/version identities; scanning every owned file for * angle includes closes the system-header gap in separately built QuickJS, - * libregexp, mbedTLS, zlib, curl, and Ryū translation units. */ + * libregexp, mbedTLS, zlib, and Ryū translation units. */ export async function implicitDependencyProbeIncludes(rtDir: string): Promise { const vendor = join(rtDir, "..", "vendor"); - const quickjsSources = new Set([...QJS_ENGINE_SOURCES, ...LRE_SOURCES]); + const quickjsSources = new Set(LRE_SOURCES); const zlibSources = new Set(ZLIB_SOURCES); const fileGroups = await Promise.all([ nativeSourceFiles(rtDir, false), @@ -186,7 +184,6 @@ export async function implicitDependencyProbeIncludes(rtDir: string): Promise name.endsWith(".h") || zlibSources.has(name), ), - nativeSourceFiles(join(vendor, "curl", "include"), true, (name) => name.endsWith(".h")), ]); const includes = new Set(); for (const path of fileGroups.flat()) { @@ -383,8 +380,6 @@ async function implicitToolchainFingerprintsFresh( join(vendorTlsDir(), "library"), "-I", vendorZlibDir(), - "-I", - join(vendorCurlDir(), "include"), "-M", ]; const [dependencyResults, linker, assembler, compilerInvocation] = await Promise.all([ diff --git a/packages/compiler/src/backend/native/contracts.ts b/packages/compiler/src/backend/native/contracts.ts index 96936f840..82a4558b0 100644 --- a/packages/compiler/src/backend/native/contracts.ts +++ b/packages/compiler/src/backend/native/contracts.ts @@ -44,20 +44,9 @@ export interface CcOptions { systemLibraries?: readonly string[]; /** Darwin framework names, emitted as distinct driver arguments. */ frameworks?: readonly string[]; - /** Embed the dynamic-island engine (--dynamic): compiles scr_island.c, - * defines SCR_DYNAMIC, and links the cached libqjs.a. Off retains the - * static runtime selection; executable section GC may still remove - * unreachable static-runtime code. */ - dynamic?: boolean; /** Isolated native Worker contexts; every runtime object must use TLS. */ workers?: boolean; - /** The program contains a regex construct (index.ts detects it on the - * IR): compiles scr_regex.c and links the vendored libregexp — as cached - * standalone objects in static builds, from the engine archive under - * --dynamic (one libregexp per binary; its host hooks want the island's - * JSContext there). Off = regex-free: the command line is exactly the - * historical runtime selection; executable section GC may remove unrelated - * unreachable code. */ + regex?: boolean; /** The program uses one of the copying/typed-array bridge intrinsics * implemented in scr_copying.c (index.ts detects them on the IR). @@ -77,23 +66,10 @@ export interface CcOptions { * scr_tls + scr_http's client parser + zlib — the socket units join * the link implicitly, no libcurl anywhere), which builds for every * target the socket units reach: hosts, linux cross, win32 cross. - * Static user-code fetch compiles the same TU without the engine; the - * broader web surface still uses its dynamic half. Fetch-free builds - * keep their exact link line. SCRIPTC_FETCH_CURL=1 selects the retired - * curl reference instead - * (scr_fetch_curl.c + system libcurl on hosts / the generated soname - * stub on linux cross targets — ensureCurlStub), kept compilable for - * one release as the flip's reference. */ + * Fetch-free builds keep their exact link line. */ fetch?: boolean; - /** The embedded npm graph imports node:http or node:https (index.ts - * detects it on the IR): compiles the island's http/https client - * bridge (scr_net_island.c) and implies the socket units into the - * link, exactly like fetch. The emitted main calls - * scr_net_island_install on the same predicate (native-fetch builds - * also register it from scr_fetch_install). */ - netIsland?: boolean; /** The program uses zlib (index.ts detects zlib.* libCalls on the IR): - * compiles scr_zlib.c — the regex/curl gating precedent, so zlib-free + * compiles scr_zlib.c — the regex gating precedent, so zlib-free * binaries keep their exact link line. The default host-clang build links * the SYSTEM libz (macOS ships it), byte-identical to the historical line; * every Zig build compiles the vendored zlib with the selected driver instead @@ -199,7 +175,7 @@ export interface CcOptions { nodeTest?: boolean; /** The program uses the node:tls or node:https surface (moduleUsesTls on * the IR): compiles scr_tls.c and links the vendored mbedTLS archive - * (built lazily like the engine archive, cached per flavor). Always + * (built lazily and cached per flavor). Always * alongside scr_net.c and scr_http.c, which moduleUsesNet / * moduleUsesHttpServer answer true for whenever this does. TLS-free * binaries keep their exact link line and never compile mbedTLS. */ diff --git a/packages/compiler/src/backend/native/driver.ts b/packages/compiler/src/backend/native/driver.ts index a11a1b84c..3aed14213 100644 --- a/packages/compiler/src/backend/native/driver.ts +++ b/packages/compiler/src/backend/native/driver.ts @@ -27,9 +27,7 @@ export function executableSectionEliminationFlags(platform: string): { } { switch (platform) { case "darwin": - // ld64's symbol subsections make this sufficient for ordinary C/LLVM - // objects. Do not attach it only to --dynamic: static programs have the - // same unreachable runtime sections. + // ld64's symbol subsections let dead_strip remove unreachable runtime code. return { compile: [], link: ["-Wl,-dead_strip"] }; case "linux": return { @@ -51,51 +49,6 @@ export function executableSectionEliminationFlags(platform: string): { } } -/* ── alternate C compiler (SCRIPTC_CC) and cross target (SCRIPTC_TARGET) ────────── - * SCRIPTC_CC=zigcc swaps the compiler driver to `zig cc` (clang underneath, with - * zig's bundled sysroots — the door to cross-compiling). Unset or - * SCRIPTC_CC=clang is the default. Host Linux adds the two glibc requirements - * that macOS does not need: -D_GNU_SOURCE while compiling, and -lm after all - * link inputs. Other hosts keep the historical bare-clang command line. - * - * SCRIPTC_TARGET= (zigcc only — plain clang has no cross sysroots here) - * adds `-target ` to every compile. Linux triples also add - * -D_GNU_SOURCE: glibc hides POSIX/GNU declarations (kill, realpath, stpcpy, - * arc4random_buf, posix_spawn_file_actions_addchdir_np, ...) under plain - * -std=c11, where macOS exposes everything by default. Musl triples additionally - * carry SCR_MUSL because musl deliberately exposes no libc-identification macro; - * the runtime uses it only for the narrow libc shim in scr_musl.c. Pin the glibc - * minor in GNU triples (e.g. aarch64-linux-gnu.2.36) so the binary runs on the - * differential container's distro (see tests/harness/linux-differential.test.ts). - * - * Fetch is NATIVE everywhere (scr_fetch.c over the socket units — no - * libcurl), so it cross-compiles wherever net/http/tls do, win32 - * included. The retired curl reference (SCRIPTC_FETCH_CURL=1) keeps the - * historical host -lcurl link and the linux-gnu import-STUB arm (soname - * libcurl.so.4 — see ensureCurlStub). The event-loop units - * (net/http/dgram/watch) cross-compile to Linux: the readiness poller is - * the scr_platform.h contract with kqueue and epoll backends; libregexp, - * zlib, mbedTLS, and the engine archive (--dynamic) build per target - * (ensureLreObjects / ensureZlibObjects / ensureTlsArchive / - * buildEngineArchiveDirect — default host-clang zlib builds still link the - * system libz, byte-identically; Zig builds use vendored zlib objects). - * Windows triples (x86_64-windows-gnu, mingw-w64 headers and CRT via zig) - * have no gates left: events, net/http, fetch, watch, zlib, dgram/dns, - * tls, and the engine archive (--dynamic) all build per target through - * their win32 arms (mbedTLS compiles unchanged for the triple — its own _WIN32 - * port covers entropy and timing; the TLS link adds bcrypt for - * BCryptGenRandom, while the CA-store unit adds crypt32 for the Windows - * system certificate stores). - * They additionally compile - * scr_win.c, the win32 libc shim TU (stpcpy, arc4random_buf — see the - * _WIN32 block in scr_runtime.h), linking -ladvapi32 for its CSPRNG - * (RtlGenRandom) and GetUserNameA. Native zigcc builds (no SCRIPTC_TARGET) - * support everything: same platform, same archives, just a different - * driver binary. - * Mobile triples (aarch64-apple-ios, aarch64-apple-ios-simulator, - * aarch64-linux-android — see the mobile-targets block below) are - * LIBRARY-MODE targets: compileLibArchive accepts them, compile()/compileC - * refuse the executable lane with the pointer to --lib. */ export interface CcDriver { /** The compiler argv prefix: ["clang"] (default) or ["zig", "cc"]. */ argv: string[]; diff --git a/packages/compiler/src/backend/native/executable.ts b/packages/compiler/src/backend/native/executable.ts index 00658b42a..69bea51bd 100644 --- a/packages/compiler/src/backend/native/executable.ts +++ b/packages/compiler/src/backend/native/executable.ts @@ -81,21 +81,16 @@ import { import { currentVendorCacheBuildIdentity, vendorBuildCacheRoot, - engineArchivePath, tlsArchivePath, lreObjectPaths, zlibObjectPaths, - curlStubDirPath, - ensureEngineArchive, stageVendorInputs, ensureTlsArchive, ensureLreObjects, ensureZlibObjects, - ensureCurlStub, vendorEngineDir, vendorZlibDir, vendorTlsDir, - vendorCurlDir, } from "./vendor.js"; import { execFileAsync, subprocessFailureDetail, CcCompileError } from "./process.js"; import { implicitLinkerFingerprint } from "./linker-fingerprint.js"; @@ -103,21 +98,6 @@ import { CacheInputsChangedError } from "./session.js"; import { ensureRuntimeObjects, stageRuntimeObjects, clearCcCaches } from "./runtime-objects.js"; import { localizeLibraryObjects } from "./object-merge.js"; -/** Compiles one C program together with the runtime sources. - * With caching disabled, the runtime (a dozen small files) is recompiled on - * every build — no cached-archive staleness bugs. Sanitized dev builds compile - * the program separately so its O0 setting does not slow the O1 runtime. - * Other builds use one clang invocation. --dynamic additionally compiles - * scr_island.c under SCR_DYNAMIC and links the cached engine archive (built - * lazily, see above); regex-using programs additionally compile scr_regex.c - * and link libregexp (the cached objects, or the archive's own copy under - * --dynamic). Executable links use the target's section-elimination recipe - * independently of those feature gates. - * - * With a caller-supplied dependency identity and an enabled cache root, - * unchanged programs skip payload code generation/linking via the binary - * cache after lightweight metadata probes, and misses link the program's own - * TU against cached per-flavor runtime objects. */ export async function compileCInternal( opts: CcOptions, cacheWarmOnly: boolean, @@ -126,29 +106,14 @@ export async function compileCInternal( const rtDir = runtimeSrcDir(); const sanitize = opts.sanitize ?? false; const optimization = opts.optimization ?? "release"; - const dynamic = opts.dynamic ?? false; - if (opts.workers && (dynamic || targetPlatform(resolveCc()) === "wasi")) + if (opts.workers && targetPlatform(resolveCc()) === "wasi") throw new Error("worker threads require a native static executable"); const regex = opts.regex ?? false; - // fetch's implementation switch: the default is the NATIVE bridge - // (scr_fetch.c over scr_net + scr_tls + scr_http's client parser + - // zlib — no libcurl anywhere), which implies the socket units into the - // link. SCRIPTC_FETCH_CURL=1 keeps the retired curl reference - // (scr_fetch_curl.c + system libcurl / the linux soname stub) - // compilable for one release as the flip's reference. - const fetchOn = opts.fetch ?? false; - // The retired curl bridge has only a SCR_DYNAMIC implementation. - // Static fetch always keeps the native runtime even when a developer - // has the comparison switch exported in their shell. - const curlFetch = dynamic && fetchOn && process.env["SCRIPTC_FETCH_CURL"] === "1"; - const nativeFetch = fetchOn && !curlFetch; - // The island's node:http/https client bridge: embedded graphs that - // import those builtins get working clients over the same socket units - // (native-fetch builds always carry it — scr_fetch_install registers it). - const netIsland = dynamic && ((opts.netIsland ?? false) || nativeFetch); - const net = (opts.net ?? false) || nativeFetch || netIsland; - const http = (opts.http ?? false) || nativeFetch || netIsland; - const tls = (opts.tls ?? false) || nativeFetch || netIsland; + // Fetch shares the native network, TLS, HTTP, and zlib runtime. + const nativeFetch = opts.fetch ?? false; + const net = (opts.net ?? false) || nativeFetch; + const http = (opts.http ?? false) || nativeFetch; + const tls = (opts.tls ?? false) || nativeFetch; const tlsCa = (opts.tlsCa ?? false) || tls; const driver = resolveCc(); const darwinDebugSymbols = needsDarwinDebugSymbols( @@ -195,42 +160,6 @@ export async function compileCInternal( // POSIX drivers need the thread compile/link mode; win32 uses CreateThread. const threadArgs = targetPlatform(driver) === "win32" || targetPlatform(driver) === "wasi" ? [] : ["-pthread"]; - if (driver.target !== null) { - // See the resolveCc block: these inputs are built on and for the HOST - // (vendored archives, system libs). Regex, zlib, and the engine archive - // are NOT here: their vendored sources are plain C that ensureLreObjects - // / ensureZlibObjects / buildEngineArchiveDirect compile per target with - // the driver itself — win32 included (the Windows lane runs the - // @dynamic corpus and the zlib program against the box's Node). The - // NATIVE fetch rides the socket units and cross-compiles with them — - // no gate; only the retired curl REFERENCE (SCRIPTC_FETCH_CURL=1) - // keeps a linux-only arm (the vendored curl headers + the generated - // soname stub, ensureCurlStub — win32 has no system libcurl contract - // to bind at load time). The event-loop units, tls, and dgram cross-compile to Linux - // AND Windows (scr_platform.h poller + per-target mbedTLS; the - // loop's win32 arm is WSAPoll, scr_loop_wsapoll.c, and the socket - // units' win32 arms respell winsock behind POSIX-errno wrappers — - // scr_net.c/scr_dgram.c/scr_tls.c). The events unit cross-compiles - // everywhere: its win32 arm is CRT signal() + - // PeekNamedPipe/WaitForSingleObject probes (scr_events.c), served by - // the loop's capped win32 idle sleep (scr_async.c). - const unsupported = ( - [ - // The NATIVE fetch cross-compiles wherever the socket units do - // (linux and win32 both); only the retired curl reference keeps - // its linux-only soname-stub arm. - ["fetch (SCRIPTC_FETCH_CURL)", curlFetch && targetPlatform(driver) !== "linux"], - ] as const - ) - .filter(([, on]) => on) - .map(([name]) => name); - if (unsupported.length > 0) { - throw new Error( - `SCRIPTC_TARGET=${driver.target}: ${unsupported.join(", ")} not supported under a cross target yet ` + - `(host-built vendor archives / system libs — see docs/linux-port.md).`, - ); - } - } const cachePolicy = toolchainEnvironmentCachePolicy(); const configuredCacheRoot = cacheRootDir(); const toolchainEnv = toolchainEnvironmentFingerprint(); @@ -422,20 +351,15 @@ export async function compileCInternal( ? null : join(tmpdir(), `scriptc-vendor-${process.pid}-${Math.random().toString(36).slice(2)}`); const vendorCacheRoot = transientVendorRoot ?? vendorBuildCacheRoot(persistentCache?.root); - // Every vendor output path is deterministic from pins, flags, driver, and - // target. Build the command/key from those paths now, but do not materialize - // them until a complete-binary lookup has missed. - let engineArchive = dynamic - ? engineArchivePath(sanitize, driver, vendorBuildIdentity, vendorCacheRoot) - : null; let tlsArchive = tls ? tlsArchivePath(sanitize, driver, vendorBuildIdentity, vendorCacheRoot) : null; - // --dynamic + regex shares the archive's libregexp (its host hooks and + // ours would collide; see scr_regex.c) — the standalone objects are for // static builds only. - let lreObjects = - regex && !dynamic ? lreObjectPaths(sanitize, driver, vendorBuildIdentity, vendorCacheRoot) : []; + let lreObjects = regex + ? lreObjectPaths(sanitize, driver, vendorBuildIdentity, vendorCacheRoot) + : []; // Vendored zlib is the Zig story — default host-clang builds keep the exact // historical `-lz` system link (see CcOptions.zlib). The native fetch's // gzip decoder rides the same objects/link. @@ -443,36 +367,13 @@ export async function compileCInternal( ((opts.zlib ?? false) || nativeFetch) && isZigDriver(driver) ? zlibObjectPaths(sanitize, driver, vendorBuildIdentity, vendorCacheRoot) : []; - // The libcurl import stub is likewise CROSS-only — host builds keep the - // exact historical system `-lcurl` link (see CcOptions.fetch). Curl - // reference builds only. - let curlStubDir = - curlFetch && driver.target !== null - ? curlStubDirPath(driver, vendorBuildIdentity, vendorCacheRoot) - : null; const materializeVendorPrerequisites = async ( stageRoot?: string, materializeCacheRoot: string = vendorCacheRoot, ): Promise => { // Preserve source order to avoid multiplying first-build resource // pressure when several large vendor sets are cold simultaneously. - if (dynamic) { - const cachedArchive = engineArchivePath( - sanitize, - driver, - vendorBuildIdentity, - materializeCacheRoot, - ); - protectCachedArtifact(cacheWarmPaths, cachedArchive); - const materialize = async (): Promise => [ - await ensureEngineArchive(sanitize, driver, vendorBuildIdentity, materializeCacheRoot), - ]; - const paths = - stageRoot === undefined - ? await materialize() - : await stageVendorInputs(materialize, join(stageRoot, "engine")); - engineArchive = paths[0]!; - } + if (tls) { const cachedArchive = tlsArchivePath( sanitize, @@ -490,7 +391,7 @@ export async function compileCInternal( : await stageVendorInputs(materialize, join(stageRoot, "tls")); tlsArchive = paths[0]!; } - if (regex && !dynamic) { + if (regex) { for (const object of lreObjectPaths( sanitize, driver, @@ -520,20 +421,6 @@ export async function compileCInternal( ? await materialize() : await stageVendorInputs(materialize, join(stageRoot, "zlib")); } - if (curlStubDir !== null) { - protectCachedArtifact( - cacheWarmPaths, - join(curlStubDirPath(driver, vendorBuildIdentity, materializeCacheRoot), "libcurl.so"), - ); - const materialize = async (): Promise => [ - join(await ensureCurlStub(driver, vendorBuildIdentity, materializeCacheRoot), "libcurl.so"), - ]; - const paths = - stageRoot === undefined - ? await materialize() - : await stageVendorInputs(materialize, join(stageRoot, "curl")); - curlStubDir = dirname(paths[0]!); - } }; // rt() maps each runtime source's path on the command line: identity for // the historical single invocation, cached-.o substitution on cache misses. @@ -614,10 +501,9 @@ export async function compileCInternal( ? ["-I", vendorZlibDir(), ...zlibObjects] : [] : []), - // The zlib ↔ island bridge: only when BOTH halves are in the build - // (the scr_inspect_island.c pattern) — the emitted main calls its + + // through the native installation hooks — the emitted main calls its // installer exactly then. - ...(opts.zlib && opts.dynamic ? [rt(join(rtDir, "scr_zlib_island.c"))] : []), ...(opts.events ? [rt(join(rtDir, "scr_events.c")), rt(join(rtDir, "scr_readline.c"))] : []), ...(opts.emitter || opts.workers ? [rt(join(rtDir, "scr_events_emitter.c"))] : []), // The checked-dynamic HANDLE support unit (listener gate + runtime @@ -673,57 +559,8 @@ export async function compileCInternal( // This is independent of the mbedTLS archive: getCACertificates-only // programs need crypt32 too, while TLS programs imply the CA unit. ...(tlsCa && targetPlatform(driver) === "win32" ? ["-lcrypt32"] : []), - // Static fetch is the engine-free half of scr_fetch.c. Dynamic builds - // compile the same source beside scr_island.c below, where its - // SCR_DYNAMIC half installs the full web surface. - ...(nativeFetch && !dynamic ? [rt(join(rtDir, "scr_fetch.c"))] : []), - ...(engineArchive - ? [ - "-DSCR_DYNAMIC", - "-I", - vendorEngineDir(), - rt(join(rtDir, "scr_island.c")), - rt(join(rtDir, "scr_web.c")), - // The one unit referencing BOTH the island and the inspect - // engine (insp.jsval): linked exactly when both halves are. - ...(opts.inspect ? [rt(join(rtDir, "scr_inspect_island.c"))] : []), - // fetch: the NATIVE bridge by default (its socket/tls/zlib - // dependencies joined the link above); the curl REFERENCE - // (SCRIPTC_FETCH_CURL=1) keeps the historical system -lcurl / - // linux soname-stub arms for one release. - ...(nativeFetch ? [rt(join(rtDir, "scr_fetch.c"))] : []), - // The island's node:http/https CLIENT bridge (scr_net_island.c): - // the one TU referencing both the socket units and the engine — - // compiled beside the native fetch (scr_fetch_install registers - // it) and whenever the embedded graph imports node:http/https - // (the emitted main calls scr_net_island_install exactly then). - ...(netIsland ? [rt(join(rtDir, "scr_net_island.c"))] : []), - ...(curlFetch - ? curlStubDir !== null - ? [ - "-I", - join(vendorCurlDir(), "include"), - rt(join(rtDir, "scr_fetch_curl.c")), - `-L${curlStubDir}`, - "-lcurl", - ] - : [rt(join(rtDir, "scr_fetch_curl.c")), "-lcurl"] - : []), - engineArchive, - // Linux's libm is appended after every input below for GNU ld's - // left-to-right archive resolution. Other dynamic targets keep - // the historical engine-adjacent spelling. - ...(driver.linkArgs.includes("-lm") ? [] : ["-lm"]), - // The PE stack reserve, pinned to the 8MB POSIX main-stack - // geometry ISL_MAIN_STACK_BUDGET is sized against (4MB engine - // budget + 4MB excursion margin) — quickjs-ng's own CMake makes - // the same 8MB choice on Windows. Not left to the driver: - // classic mingw ld defaults to 2MB (which the budget would blow - // straight past); zig's lld happens to default to 16MB today, - // but that is nobody's contract. - ...(targetPlatform(driver) === "win32" ? ["-Wl,--stack,8388608"] : []), - ] - : []), + // Fetch uses the native network, TLS, and HTTP runtime. + ...(nativeFetch ? [rt(join(rtDir, "scr_fetch.c"))] : []), // A .ll program TU (the LLVM backend) deliberately carries no target // triple (byte-stable output; clang supplies the host/SCRIPTC_TARGET // triple exactly as it does for .c) — silence the -Woverride-module @@ -772,11 +609,9 @@ export async function compileCInternal( "-Wno-deprecated-declarations", "-I", rtDir, - ...(regex || dynamic ? ["-I", vendorEngineDir()] : []), + ...(regex ? ["-I", vendorEngineDir()] : []), ...(zlibObjects.length > 0 ? ["-I", vendorZlibDir()] : []), - ...(curlStubDir !== null ? ["-I", join(vendorCurlDir(), "include")] : []), ...(tlsArchive !== null ? ["-I", join(vendorTlsDir(), "include")] : []), - ...(dynamic ? ["-DSCR_DYNAMIC"] : []), ]; // Keep sanitizer runtime objects optimized in both postures. Large dev // programs still compile at O0, avoiding an expensive LLVM optimization @@ -987,24 +822,18 @@ export async function compileCInternal( ...(targetPlatform(driver) === "win32" ? ["-ladvapi32", "-liphlpapi", "-lws2_32"] : []), ...(tls && targetPlatform(driver) === "win32" ? ["-lbcrypt"] : []), ...(tlsCa && targetPlatform(driver) === "win32" ? ["-lcrypt32"] : []), - ...(curlFetch && driver.target === null ? ["-lcurl"] : []), - ...(dynamic && !driver.linkArgs.includes("-lm") ? ["-lm"] : []), ...(((opts.zlib ?? false) || nativeFetch) && !isZigDriver(driver) ? ["-lz"] : []), ...driver.linkArgs, ...executableLinkFlags, ]; // Both the wrapper dry run and dependency trace need the real build's // compile/link flag shape: wrappers commonly inject flags or native inputs - // conditionally on optimization, sanitizer, dynamic, or platform switches. + // conditionally on optimization, sanitizer, or platform switches. const effectiveLinkInvocationArgs = [ ...(separateSanitizedProgram ? cflags : programCompilerArgs), ...(targetPlatform(driver) === "win32" ? ["-ladvapi32", "-liphlpapi", "-lws2_32"] : []), ...(tls && targetPlatform(driver) === "win32" ? ["-lbcrypt"] : []), ...(tlsCa && targetPlatform(driver) === "win32" ? ["-lcrypt32"] : []), - ...(curlStubDir !== null ? [`-L${curlStubDir}`] : []), - ...(curlFetch && driver.target === null ? ["-lcurl"] : []), - ...(dynamic && !driver.linkArgs.includes("-lm") ? ["-lm"] : []), - ...(dynamic && targetPlatform(driver) === "win32" ? ["-Wl,--stack,8388608"] : []), ...(((opts.zlib ?? false) || nativeFetch) && !isZigDriver(driver) ? ["-lz"] : []), ...driver.linkArgs, ...executableLinkFlags, @@ -1012,10 +841,7 @@ export async function compileCInternal( // A complete hit is checked before cross-target curl's generated import stub // is materialized. Its -L spelling still joins the dry-run identity, while // the real trace omits only that not-yet-existing scriptc-owned directory. - const linkTraceInvocationArgs = - curlStubDir === null - ? effectiveLinkInvocationArgs - : effectiveLinkInvocationArgs.filter((arg) => arg !== `-L${curlStubDir}`); + const linkTraceInvocationArgs = effectiveLinkInvocationArgs; let implicitLinker: string | null = null; let preBuildDependencies: NativeArtifactDependency[] | null = null; let localArtifactDependencyPaths: string[] | null = null; diff --git a/packages/compiler/src/backend/native/tool-identity.ts b/packages/compiler/src/backend/native/tool-identity.ts index 97e0c3736..c552f0ed4 100644 --- a/packages/compiler/src/backend/native/tool-identity.ts +++ b/packages/compiler/src/backend/native/tool-identity.ts @@ -37,7 +37,6 @@ export async function executableNativeEnvironmentFingerprint( .update("\0"); for (const name of [ "PATH", - "SCRIPTC_FETCH_CURL", "SCRIPTC_TEST_RUNTIME_SRC_DIR", "SCRIPTC_TEST_VENDOR_CACHE_DIR", "SCRIPTC_TEST_TRUST_COMPILER_WRAPPER", diff --git a/packages/compiler/src/backend/native/vendor.ts b/packages/compiler/src/backend/native/vendor.ts index 0db30890c..cf7b3a68d 100644 --- a/packages/compiler/src/backend/native/vendor.ts +++ b/packages/compiler/src/backend/native/vendor.ts @@ -6,24 +6,18 @@ import { resolvedToolIdentity } from "./tool-identity.js"; export const { vendorEngineDir, vendorTlsDir, - vendorCurlDir, vendorBuildCacheRoot, vendorCacheTargetFlavor, vendorCacheBuildIdentity, currentVendorCacheBuildIdentity, - engineArchivePath, stageVendorInputs, - ensureEngineArchive, lreObjectPaths, ensureLreObjects, vendorZlibDir, zlibObjectPaths, ensureZlibObjects, - curlStubDirPath, - ensureCurlStub, tlsArchivePath, ensureTlsArchive, - QJS_ENGINE_SOURCES, LRE_SOURCES, ZLIB_SOURCES, } = createVendorArchives({ diff --git a/packages/compiler/src/backend/publication.test.ts b/packages/compiler/src/backend/publication.test.ts index 5a167b048..38dd11833 100644 --- a/packages/compiler/src/backend/publication.test.ts +++ b/packages/compiler/src/backend/publication.test.ts @@ -54,7 +54,7 @@ test("published types close over fields, containers and whole hierarchies", () = cls("Other", [["n", F64]]), ]; const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", classes, diff --git a/packages/compiler/src/backend/runtime-abi.ts b/packages/compiler/src/backend/runtime-abi.ts index a8b30c680..802e97540 100644 --- a/packages/compiler/src/backend/runtime-abi.ts +++ b/packages/compiler/src/backend/runtime-abi.ts @@ -2,8 +2,8 @@ * of the link contract: a program object keeps this symbol undefined and the * matching runtime defines it, so incompatible manual links fail before the * program can start. */ -export const RUNTIME_ABI_VERSION = 13 as const; -export const RUNTIME_ABI_MARKER = "scr_runtime_abi_v13" as const; +export const RUNTIME_ABI_VERSION = 14 as const; +export const RUNTIME_ABI_MARKER = "scr_runtime_abi_v14" as const; /** Object consumption is useful today, but the complete scr_* surface may * still change before 1.0. The versioned marker prevents accidental mixing; diff --git a/packages/compiler/src/backend/runtime-pack-core.ts b/packages/compiler/src/backend/runtime-pack-core.ts index 786ae0d57..eeb2f84ca 100644 --- a/packages/compiler/src/backend/runtime-pack-core.ts +++ b/packages/compiler/src/backend/runtime-pack-core.ts @@ -81,7 +81,6 @@ export interface RuntimePackManifest { export interface RuntimeFeatureSet extends NativeLinkFeatures { workers: boolean; nativeFetch: boolean; - netIslandEffective: boolean; netEffective: boolean; httpEffective: boolean; tlsEffective: boolean; @@ -255,26 +254,17 @@ function isRuntimePackTarget(target: Record | null): boolean { export function effectiveRuntimeFeatures( features: NativeLinkFeatures, - env: NodeJS.ProcessEnv = process.env, + _env: NodeJS.ProcessEnv = process.env, ): RuntimeFeatureSet { - const curlFetch = features.dynamic && features.fetch && env["SCRIPTC_FETCH_CURL"] === "1"; - if (curlFetch) { - throw new RuntimePackError( - "SCRIPTC_FETCH_CURL=1 is an external developer-toolchain comparison mode and is not available with precompiled runtime packs", - "unsupported", - ); - } const nativeFetch = features.fetch; - const netIslandEffective = features.dynamic && (features.netIsland || nativeFetch); - const netEffective = features.net || nativeFetch || netIslandEffective; - const httpEffective = features.http || nativeFetch || netIslandEffective; - const tlsEffective = features.tls || nativeFetch || netIslandEffective; + const netEffective = features.net || nativeFetch; + const httpEffective = features.http || nativeFetch; + const tlsEffective = features.tls || nativeFetch; const tlsCaEffective = features.tlsCa || tlsEffective; return { ...features, workers: features.workers === true, nativeFetch, - netIslandEffective, netEffective, httpEffective, tlsEffective, @@ -380,10 +370,7 @@ export function selectRuntimePackArtifacts( mode: RuntimePackMode = "executable", ): RuntimePackArtifacts { const features = effectiveRuntimeFeatures(requested, env); - if ( - features.workers && - (mode !== "executable" || features.dynamic || manifest.target.object_format === "wasm") - ) + if (features.workers && (mode !== "executable" || manifest.target.object_format === "wasm")) throw new RuntimePackError("worker threads require a native static executable", "unsupported"); const key = runtimePackFlavorKey(manifest, flavor, mode); const selectedFlavor = manifest.flavors[key]; @@ -392,11 +379,6 @@ export function selectRuntimePackArtifacts( `runtime pack has no ${key} flavor; reinstall the matching runtime package`, "invalid", ); - if (mode !== "executable" && requested.dynamic) - throw new RuntimePackError( - "library runtime packs do not support dynamic execution", - "unsupported", - ); return { features, runtime: selectedFlavor.runtime_units diff --git a/packages/compiler/src/backend/runtime-pack-targets.test.ts b/packages/compiler/src/backend/runtime-pack-targets.test.ts index 7fd8dc415..2939d12d3 100644 --- a/packages/compiler/src/backend/runtime-pack-targets.test.ts +++ b/packages/compiler/src/backend/runtime-pack-targets.test.ts @@ -52,7 +52,7 @@ async function fixture(target: NativeTargetSpec, workers = false) { object_format: target.objectFormat, minimum_os: target.minimumOs, }, - runtime_abi: { version: 13, marker: "scr_runtime_abi_v13" }, + runtime_abi: { version: 14, marker: "scr_runtime_abi_v14" }, compiler: { command: "fixture", identity: "fixture", target: target.llvmTriple }, macros: { executable: [], excluded: ["SCR_LIB"], sanitizer: "external-toolchain-required" }, flavors: { @@ -90,13 +90,11 @@ async function fixture(target: NativeTargetSpec, workers = false) { } const features = { - dynamic: false, regex: false, copying: false, textDecoderLegacy: false, fileHandle: false, fetch: false, - netIsland: false, zlib: false, assert: false, inspect: false, @@ -173,15 +171,12 @@ test.each([ }); test("worker runtime packs refuse dynamic and WASI execution", async () => { - for (const [target, dynamic] of [ - [LINUX_X64_GNU_TARGET, true], - [WASM32_WASI_TARGET, false], - ] as const) { + for (const target of [WASM32_WASI_TARGET]) { const pack = await fixture(target, true); await expect( loadRuntimePack({ target, - features: { ...features, workers: true, dynamic }, + features: { ...features, workers: true }, optimization: "release", resolver: () => pack.packagePath, }), diff --git a/packages/compiler/src/backend/runtime-pack.test.ts b/packages/compiler/src/backend/runtime-pack.test.ts index 42a30cf2c..1ce5f6db1 100644 --- a/packages/compiler/src/backend/runtime-pack.test.ts +++ b/packages/compiler/src/backend/runtime-pack.test.ts @@ -27,13 +27,11 @@ import { MACOS_ARM64_TARGET, WINDOWS_X64_MSVC_TARGET, type NativeTargetSpec } fr const VERSION = compilerReleaseVersion(); const BASE: NativeLinkFeatures = { - dynamic: false, regex: false, copying: false, textDecoderLegacy: false, fileHandle: false, fetch: false, - netIsland: false, zlib: false, assert: false, inspect: false, @@ -81,9 +79,9 @@ async function fixture(target: NativeTargetSpec = MACOS_ARM64_TARGET) { }; const base = await artifact("artifacts/base.o", "base"); const legacy = await artifact("artifacts/legacy.o", "legacy"); - const dynamic = await artifact("artifacts/dynamic.o", "dynamic"); + const fileHandle = await artifact("artifacts/fileHandle.o", "fileHandle"); const regex = await artifact("artifacts/regex.a", "regex"); - const quickjs = await artifact("artifacts/qjs.a", "qjs"); + const zlib = await artifact("artifacts/zlib.a", "zlib"); await writeFile(join(root, "license.txt"), "license"); const units = [ { @@ -97,7 +95,12 @@ async function fixture(target: NativeTargetSpec = MACOS_ARM64_TARGET) { defines: ["SCR_TEXT_DECODER_LEGACY"], ...legacy, }, - { id: "dynamic", when: { dynamic: true }, defines: ["SCR_DYNAMIC"], ...dynamic }, + { + id: "fileHandle", + when: { fileHandle: true }, + defines: ["SCR_TEST_FILE_HANDLE"], + ...fileHandle, + }, ], }, ]; @@ -113,14 +116,14 @@ async function fixture(target: NativeTargetSpec = MACOS_ARM64_TARGET) { object_format: target.objectFormat, minimum_os: target.minimumOs, }, - runtime_abi: { version: 13, marker: "scr_runtime_abi_v13" }, + runtime_abi: { version: 14, marker: "scr_runtime_abi_v14" }, compiler: { command: "clang", identity: "fixture clang", target: target.llvmTriple, }, macros: { - executable: ["SCR_DYNAMIC", "SCR_TEXT_DECODER_LEGACY"], + executable: ["SCR_TEST_FILE_HANDLE", "SCR_TEXT_DECODER_LEGACY"], excluded: ["SCR_LIB", "SCR_THREAD_INSTANCES", "SCR_RC_AUDIT"], sanitizer: "external-toolchain-required", }, @@ -129,8 +132,8 @@ async function fixture(target: NativeTargetSpec = MACOS_ARM64_TARGET) { dev: { optimization: "-O0", runtime_units: units }, }, archives: [ - { id: "libregexp", predicate: { all: ["regex"], not: ["dynamic"] }, ...regex }, - { id: "quickjs", predicate: "dynamic", ...quickjs }, + { id: "libregexp", predicate: { all: ["regex"], not: ["fileHandle"] }, ...regex }, + { id: "zlib", predicate: "fileHandle", ...zlib }, ], system_libraries: [{ name: "System", predicate: true }], licenses: [{ path: "license.txt", license: "fixture" }], @@ -180,10 +183,9 @@ describe("runtime pack manifests", () => { }); test("feature implications and predicates are deterministic", () => { - const features = effectiveRuntimeFeatures({ ...BASE, dynamic: true, fetch: true }); + const features = effectiveRuntimeFeatures({ ...BASE, fileHandle: true, fetch: true }); expect(features).toMatchObject({ nativeFetch: true, - netIslandEffective: true, netEffective: true, httpEffective: true, tlsEffective: true, @@ -191,7 +193,7 @@ describe("runtime pack manifests", () => { zlibEffective: true, }); expect(evaluateRuntimePredicate({ all: ["fetch"], not: ["regex"] }, features)).toBe(true); - expect(evaluateRuntimePredicate({ any: ["regex", "dynamic"] }, features)).toBe(true); + expect(evaluateRuntimePredicate({ any: ["regex", "fileHandle"] }, features)).toBe(true); }); test("static runtime-pack executable links dead-strip too", async () => { @@ -238,15 +240,17 @@ describe("runtime pack manifests", () => { }); expect(legacy.runtimeObjects.map((path) => path.split("/").at(-1))).toEqual(["legacy.o"]); expect(legacy.archives.map((path) => path.split("/").at(-1))).toEqual(["regex.a"]); - const dynamic = await loadRuntimePack({ + const fileHandle = await loadRuntimePack({ target: MACOS_ARM64_TARGET, - features: { ...BASE, dynamic: true, regex: true }, + features: { ...BASE, fileHandle: true, regex: true }, optimization: "dev", resolver, }); - expect(dynamic.flavor).toBe("dev"); - expect(dynamic.runtimeObjects.map((path) => path.split("/").at(-1))).toEqual(["dynamic.o"]); - expect(dynamic.archives.map((path) => path.split("/").at(-1))).toEqual(["qjs.a"]); + expect(fileHandle.flavor).toBe("dev"); + expect(fileHandle.runtimeObjects.map((path) => path.split("/").at(-1))).toEqual([ + "fileHandle.o", + ]); + expect(fileHandle.archives.map((path) => path.split("/").at(-1))).toEqual(["zlib.a"]); }); test("runtime bitcode follows the selected speed variant and is verified", async () => { @@ -306,7 +310,7 @@ describe("runtime pack manifests", () => { expect( await loadRuntimeBitcode({ target: MACOS_ARM64_TARGET, - features: { ...BASE, dynamic: true }, + features: { ...BASE, fileHandle: true }, resolver, }), ).toBeNull(); @@ -691,9 +695,7 @@ test("library runtime selection requires dedicated packs and never substitutes e await writeFile(join(f.root, "runtime-pack.json"), JSON.stringify(f.manifest)); const threaded = await loadRuntimePack({ ...options, mode: "library-thread" }); expect(threaded.runtimeObjects.map((path) => basename(path))).toEqual(["base.o"]); - await expect( - loadRuntimePack({ ...options, features: { ...BASE, dynamic: true }, mode: "library" }), - ).rejects.toThrow("do not support dynamic"); + delete f.manifest.flavors.release; delete f.manifest.flavors.dev; await writeFile(join(f.root, "runtime-pack.json"), JSON.stringify(f.manifest)); diff --git a/packages/compiler/src/backend/target-diagnostics.test.ts b/packages/compiler/src/backend/target-diagnostics.test.ts index 8e6e53ca6..fb9713795 100644 --- a/packages/compiler/src/backend/target-diagnostics.test.ts +++ b/packages/compiler/src/backend/target-diagnostics.test.ts @@ -35,7 +35,7 @@ const fetch: IrExpr = { }; function module(direct: IrExpr[] = []): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "%main", records: [], diff --git a/packages/compiler/src/backend/target-diagnostics.ts b/packages/compiler/src/backend/target-diagnostics.ts index 5756245de..daf9311d9 100644 --- a/packages/compiler/src/backend/target-diagnostics.ts +++ b/packages/compiler/src/backend/target-diagnostics.ts @@ -2,7 +2,7 @@ import { everyModuleNode, everyStmtList, transformStmtList } from "../ir/travers import type { LlvmUnsupportedError } from "./llvm/emitter.js"; import type { ScrDiagnostic } from "../diagnostics/diagnostic.js"; import { type IrModule, type SrcLoc } from "../ir/ir.js"; -import { moduleUsesFetch, moduleEmbedsBuiltin } from "../ir/runtime-features.js"; +import { moduleUsesFetch } from "../ir/runtime-features.js"; /** Reflection tables expose methods that the program never calls. On WASI, * keep their host-only implementations as explicit runtime refusals. Typed @@ -121,11 +121,6 @@ export function targetRefusalDiag(target: string, surface: string, loc: SrcLoc): }; } -/** APIs that require host capabilities absent from portable WASI Preview 1. - * These are target diagnostics, not backend-tier gaps: the same language IR - * (including async, generators, and the dynamic island) is otherwise valid. - * Keep the fine-grained walk first so diagnostics point at the API use; the - * embedded-module checks are the entry-anchored safety net for island code. */ export function moduleWasiUnavailableSurface( mod: IrModule, ): { surface: string; loc: SrcLoc } | null { @@ -204,10 +199,5 @@ export function moduleWasiUnavailableSurface( if (moduleUsesFetch(mod)) { return { surface: "network-backed fetch (WASI Preview 1 has no socket API)", loc: entryLoc }; } - for (const builtin of ["node:http", "node:https", "node:net", "node:tls"]) { - if (moduleEmbedsBuiltin(mod, builtin)) { - return { surface: `${builtin} networking (WASI Preview 1 has no socket API)`, loc: entryLoc }; - } - } return null; } diff --git a/packages/compiler/src/backend/vendor-archives.ts b/packages/compiler/src/backend/vendor-archives.ts index 71afda96c..daa7e5eaa 100644 --- a/packages/compiler/src/backend/vendor-archives.ts +++ b/packages/compiler/src/backend/vendor-archives.ts @@ -1,8 +1,8 @@ import { execFile } from "node:child_process"; import { createHash } from "node:crypto"; -import { mkdir, mkdtemp, readdir, rm, writeFile } from "node:fs/promises"; +import { mkdir, mkdtemp, readdir, rm } from "node:fs/promises"; import { availableParallelism, tmpdir } from "node:os"; -import { basename, dirname, join, resolve } from "node:path"; +import { basename, join, resolve } from "node:path"; import { promisify } from "node:util"; import { stageCachedFile, @@ -18,7 +18,6 @@ import { QJS_COMMIT, MBEDTLS_VERSION, ZLIB_VERSION, - QJS_ENGINE_SOURCES, LRE_SOURCES, ZLIB_SOURCES, } from "./vendor-inputs.js"; @@ -26,7 +25,6 @@ export { QJS_COMMIT, MBEDTLS_VERSION, ZLIB_VERSION, - QJS_ENGINE_SOURCES, LRE_SOURCES, ZLIB_SOURCES, } from "./vendor-inputs.js"; @@ -40,8 +38,7 @@ export interface VendorArchiveContext { } export function createVendorArchives(context: VendorArchiveContext) { - const { runtimeSrcDir, targetPlatform, isZigDriver, resolvedToolIdentity, runtimeFingerprint } = - context; + const { runtimeSrcDir, isZigDriver, resolvedToolIdentity, runtimeFingerprint } = context; const validVendorArtifact = validCachedFile; function vendorEngineDir(): string { @@ -124,16 +121,6 @@ export function createVendorArchives(context: VendorArchiveContext) { ); } - function engineArchivePath( - sanitize: boolean, - driver: CcDriver, - buildIdentity: string, - cacheRoot: string = vendorBuildCacheRoot(), - ): string { - const flavor = `${sanitize ? "asan" : "plain"}-${vendorCacheTargetFlavor(driver)}-${buildIdentity}`; - return join(cacheRoot, `${QJS_COMMIT.slice(0, 12)}-${flavor}`, "libqjs.a"); - } - /** Publish one finished vendor prerequisite from disposable build scratch. * The shared data and digest use the ordinary atomic cache publisher. * Concurrent builders produce equivalent bytes; on platforms where rename @@ -192,126 +179,6 @@ export function createVendorArchives(context: VendorArchiveContext) { throw lastError; } - /** The engine archive for one flavor, built lazily on the first --dynamic - * compile and cached under /vendor/---/ — unlike - * the runtime's own sources (recompiled every build, ~100ms), the engine is - * far too big to rebuild per compile. The plain flavor is ALWAYS MinSizeRel - * regardless of the program's optimization level: measured binary delta is - * ~620KB vs ~900KB at -O2, and eval-in-an-island workloads don't earn the - * difference. The asan flavor (Debug + QJS_ENABLE_ASAN) exists so the - * sanitized test lane checks engine interop under instrumentation. - * - * Concurrency: parallel first builds (e.g. test workers) each build in a - * private temp dir and publish with an atomic rename — first one wins, - * losers discard their work and use the winner's archive. - * - * The qjs library target is just four TUs (QJS_ENGINE_SOURCES), so host-clang, - * targetless Zig, and cross builds use the same direct per-TU recipe. This removes CMake from - * the runtime dependency set and lets cache warming compile exactly the - * archive a later program consumes. The default host-clang driver uses bare - * clang + ar; every Zig driver uses the selected zig cc + zig ar. */ - async function ensureEngineArchive( - sanitize: boolean, - driver: CcDriver, - buildIdentity: string, - cacheRoot: string = vendorBuildCacheRoot(), - ): Promise { - const archive = engineArchivePath(sanitize, driver, buildIdentity, cacheRoot); - const cacheDir = dirname(archive); - if (await validVendorArtifact(archive)) return archive; - return buildEngineArchiveDirect(sanitize, driver, cacheRoot, cacheDir); - } - - /** The qjs library target's source list (CMakeLists.txt `qjs_sources` with - * QJS_BUILD_LIBC off — cutils is header-only): the cross-build recipe - * compiles exactly these. */ - - /** The engine archive for one target, per-TU compiler invocations plus ar. - * The flags mirror what the former CMake - * configurations apply to the qjs library target: gnu11 (CMAKE_C_EXTENSIONS - * ON), hidden visibility, -funsigned-char, -DQUICKJS_NG_BUILD and - * -D_GNU_SOURCE (qjs_defines; linux targetArgs already carry the latter), - * then MinSizeRel (-Os -DNDEBUG) for plain or Debug+QJS_ENABLE_ASAN - * (-O0 -ggdb -fno-omit-frame-pointer -fsanitize=address - * -fno-sanitize-recover=all) for asan. Same atomic-rename publish as every - * vendor cache. */ - async function buildEngineArchiveDirect( - sanitize: boolean, - driver: CcDriver, - cacheRoot: string, - cacheDir: string, - ): Promise { - const vendor = vendorEngineDir(); - const archive = join(cacheDir, "libqjs.a"); - const compileArgv = isZigDriver(driver) ? driver.argv : ["clang"]; - const arArgv = isZigDriver(driver) ? [...driver.argv.slice(0, 1), "ar"] : ["ar"]; - const cflags = [ - "-std=gnu11", - ...driver.targetArgs, - "-fvisibility=hidden", - "-funsigned-char", - "-DQUICKJS_NG_BUILD", - "-D_GNU_SOURCE", - // CMake's qjs_defines on WIN32 (quickjs.c's own _WIN32 arms cover the - // rest — timezoneapi, intrin, cutils.h's _msize usable-size probe). - ...(targetPlatform(driver) === "win32" - ? ["-DWIN32_LEAN_AND_MEAN", "-D_WIN32_WINNT=0x0601"] - : []), - ...(sanitize - ? [ - "-O0", - "-ggdb", - "-fno-omit-frame-pointer", - "-fsanitize=address", - "-fno-sanitize-recover=all", - "-DQJS_ENABLE_ASAN", - ] - : ["-Os", "-DNDEBUG"]), - "-I", - vendor, - ]; - await mkdir(cacheRoot, { recursive: true }); - const buildDir = await mkdtemp( - join(tmpdir(), `scriptc-vendor-qjs-${driver.target ?? "host"}-`), - ); - try { - const width = Math.min(QJS_ENGINE_SOURCES.length, availableParallelism()); - for (let i = 0; i < QJS_ENGINE_SOURCES.length; i += width) { - await Promise.all( - QJS_ENGINE_SOURCES.slice(i, i + width).map((src) => - execFileAsync( - compileArgv[0] ?? "clang", - [ - ...compileArgv.slice(1), - ...cflags, - "-c", - join(vendor, src), - "-o", - join(buildDir, `${basename(src, ".c")}.o`), - ], - { cwd: buildDir }, - ), - ), - ); - } - await execFileAsync(arArgv[0] ?? "ar", [ - ...arArgv.slice(1), - "rcs", - join(buildDir, "libqjs.a"), - ...QJS_ENGINE_SOURCES.map((s) => join(buildDir, `${basename(s, ".c")}.o`)), - ]); - await publishVendorArtifact(join(buildDir, "libqjs.a"), archive); - } finally { - await rm(buildDir, { recursive: true, force: true }); - } - return archive; - } - - /** The vendor sources behind static-build regex support: quickjs-ng's - * libregexp and its unicode tables (cutils is header-only). Deliberately - * NOT the engine — a regex-using static binary links ~110KB of matcher, - * never the ~620KB island. */ - function lreObjectPaths( sanitize: boolean, driver: CcDriver, @@ -327,11 +194,10 @@ export function createVendorArchives(context: VendorArchiveContext) { } /** The libregexp objects for one flavor, compiled lazily on the first - * regex-using static build (~1s) and cached like the engine archive — + * regex-using build (~1s) and cached under * /vendor/-lre---/*.o — with the same atomic-rename * publish (parallel first builds race safely; losers discard their work). - * Plain is -Os (size class matters: the regex fence pins regex-using - * binaries well under the engine class); asan matches the final link so + * Plain is -Os to keep regex-using binaries small; asan matches the final link so * the sanitized lane instruments the matcher too. Cross targets get their * own flavor directory, compiled with the SCRIPTC_CC driver and its target * args — libregexp/libunicode are plain C11, so the cross story is exactly @@ -465,88 +331,6 @@ export function createVendorArchives(context: VendorArchiveContext) { return objects; } - function vendorCurlDir(): string { - return join(runtimeSrcDir(), "..", "vendor", "curl"); - } - - /** Every libcurl function scr_fetch_curl.c references — the generated import - * stub defines exactly these. A new curl call in scr_fetch_curl.c that is - * missing here fails the CROSS link immediately with the symbol's name - * (host builds resolve it from the real system libcurl and never look). */ - const CURL_STUB_SYMBOLS = [ - "curl_easy_cleanup", - "curl_easy_getinfo", - "curl_easy_init", - "curl_easy_setopt", - "curl_easy_strerror", - "curl_free", - "curl_global_cleanup", - "curl_global_init", - "curl_multi_add_handle", - "curl_multi_cleanup", - "curl_multi_info_read", - "curl_multi_init", - "curl_multi_perform", - "curl_multi_poll", - "curl_multi_remove_handle", - "curl_slist_append", - "curl_slist_free_all", - "curl_url", - "curl_url_cleanup", - "curl_url_get", - "curl_url_set", - ]; - - function curlStubDirPath( - driver: CcDriver, - buildIdentity: string, - cacheRoot: string = vendorBuildCacheRoot(), - ): string { - return join(cacheRoot, `curl-stub-${driver.target}-${buildIdentity}`); - } - - /** The libcurl import stub for one CROSS target, generated lazily on the - * first fetch-using cross build and cached like the zlib objects — - * /vendor/curl-stub--/libcurl.so, atomic-rename publish. The - * stub is empty definitions of CURL_STUB_SYMBOLS compiled `-shared` with - * `-soname libcurl.so.4`: linking against it satisfies scr_fetch_curl.c's - * references and records a plain `DT_NEEDED libcurl.so.4`, which the - * TARGET system's real libcurl satisfies at load time (curl's unversioned - * exports make the classic import-stub technique sound here — nothing - * from the stub's bodies ever ships in the binary). One stub per target, - * no sanitize flavor: the stub's code is never executed or instrumented, - * and asan links against plain shared libraries freely. */ - async function ensureCurlStub( - driver: CcDriver, - buildIdentity: string, - cacheRoot: string = vendorBuildCacheRoot(), - ): Promise { - const cacheDir = curlStubDirPath(driver, buildIdentity, cacheRoot); - const lib = join(cacheDir, "libcurl.so"); - if (await validVendorArtifact(lib)) return cacheDir; - - await mkdir(cacheRoot, { recursive: true }); - const buildDir = await mkdtemp(join(tmpdir(), "scriptc-vendor-curl-stub-")); - try { - const src = join(buildDir, "stub.c"); - await writeFile(src, CURL_STUB_SYMBOLS.map((s) => `void ${s}(void) {}\n`).join("")); - await execFileAsync(driver.argv[0] ?? "clang", [ - ...driver.argv.slice(1), - ...driver.targetArgs, - "-shared", - "-fPIC", - "-Wl,-soname,libcurl.so.4", - src, - "-o", - join(buildDir, "libcurl.so"), - ]); - await publishVendorArtifact(join(buildDir, "libcurl.so"), lib); - } finally { - await rm(buildDir, { recursive: true, force: true }); - } - return cacheDir; - } - function vendorTlsDir(): string { return join(runtimeSrcDir(), "..", "vendor", "mbedtls"); } @@ -562,8 +346,8 @@ export function createVendorArchives(context: VendorArchiveContext) { } /** The mbedTLS archive for one flavor, compiled lazily on the first - * TLS-using build (~15s over ~110 TUs, parallelized) and cached like the - * engine archive — /vendor/mbedtls----/libmbedtls.a — + * TLS-using build (~15s over ~110 TUs, parallelized) and cached under + * /vendor/mbedtls----/libmbedtls.a * with the same atomic-rename publish (parallel first builds race safely; * losers discard their work). Plain is -Os (the TLS stack is link-gated * but still wants its size class small); asan matches the final link so @@ -637,24 +421,18 @@ export function createVendorArchives(context: VendorArchiveContext) { return { vendorEngineDir, vendorTlsDir, - vendorCurlDir, vendorBuildCacheRoot, vendorCacheTargetFlavor, vendorCacheBuildIdentity, currentVendorCacheBuildIdentity, - engineArchivePath, stageVendorInputs, - ensureEngineArchive, lreObjectPaths, ensureLreObjects, vendorZlibDir, zlibObjectPaths, ensureZlibObjects, - curlStubDirPath, - ensureCurlStub, tlsArchivePath, ensureTlsArchive, - QJS_ENGINE_SOURCES, LRE_SOURCES, ZLIB_SOURCES, }; diff --git a/packages/compiler/src/backend/vendor-inputs.ts b/packages/compiler/src/backend/vendor-inputs.ts index 5aaa24ff7..3d2710fa0 100644 --- a/packages/compiler/src/backend/vendor-inputs.ts +++ b/packages/compiler/src/backend/vendor-inputs.ts @@ -4,7 +4,6 @@ export const MBEDTLS_VERSION = "3.6.7"; export const ZLIB_VERSION = "1.3.1"; /** Exact translation-unit membership shared by cache builds and external * source-pack recipes. */ -export const QJS_ENGINE_SOURCES = ["dtoa.c", "libregexp.c", "libunicode.c", "quickjs.c"] as const; export const LRE_SOURCES = ["libregexp.c", "libunicode.c"] as const; export const ZLIB_SOURCES = [ "adler32.c", diff --git a/packages/compiler/src/backend/warm-cache.ts b/packages/compiler/src/backend/warm-cache.ts index 5bd547161..c2ea87ce8 100644 --- a/packages/compiler/src/backend/warm-cache.ts +++ b/packages/compiler/src/backend/warm-cache.ts @@ -12,11 +12,10 @@ import { export async function warmNativeCaches( options: WarmNativeCachesOptions = {}, ): Promise { - if (options.sanitize || process.env["SCRIPTC_FETCH_CURL"] === "1") - return warmDevelopmentRuntime(options); + if (options.sanitize) return warmDevelopmentRuntime(options); const cacheRoot = await prepareBuildCacheRoot(buildCacheRoot()); if (cacheRoot === null) throw new Error("the native build cache is disabled or unavailable"); - const known = new Set(["runtime", "tls", "dynamic"]); + const known = new Set(["runtime", "tls"]); for (const profile of options.profiles ?? []) if (!known.has(profile)) throw new Error(`unknown native cache warm profile '${profile}'`); const target = nativeCodegenTarget(); @@ -26,7 +25,7 @@ export async function warmNativeCaches( throw new Error( `native cache warming requires an executable target; ${target.name} supports library archives`, ); - const profiles = [...new Set(options.profiles ?? (["runtime", "tls", "dynamic"] as const))]; + const profiles = [...new Set(options.profiles ?? (["runtime", "tls"] as const))]; const results = []; for (const profile of profiles) { const started = performance.now(); @@ -34,13 +33,11 @@ export async function warmNativeCaches( target, optimization: options.optimization ?? "release", features: { - dynamic: profile === "dynamic", fetch: profile === "tls", regex: false, copying: false, textDecoderLegacy: false, fileHandle: false, - netIsland: false, zlib: false, assert: false, inspect: false, diff --git a/packages/compiler/src/cli/command.ts b/packages/compiler/src/cli/command.ts index 8dd8a9f28..d729de866 100644 --- a/packages/compiler/src/cli/command.ts +++ b/packages/compiler/src/cli/command.ts @@ -77,7 +77,6 @@ async function main(args: string[], host: CliHost): Promise { fail(`unknown cache command "${inputArg ?? ""}" (supported: warm)\n\n${USAGE}`); if ( values.lib || - values.dynamic || values.backend !== undefined || values.emit !== undefined || values.print !== undefined || @@ -103,10 +102,10 @@ async function main(args: string[], host: CliHost): Promise { fail(`unknown optimization "${optimization}" (supported: release, dev, speed)\n\n${USAGE}`); } const profileArgs = positionals.slice(2); - const knownProfiles = new Set(["runtime", "tls", "dynamic"]); + const knownProfiles = new Set(["runtime", "tls"]); for (const profile of profileArgs) { if (!knownProfiles.has(profile as NativeCacheWarmProfile)) { - fail(`unknown cache warm profile "${profile}" (supported: runtime, tls, dynamic)`); + fail(`unknown cache warm profile "${profile}" (supported: runtime, tls)`); } } let result; @@ -143,7 +142,6 @@ async function main(args: string[], host: CliHost): Promise { fail("scriptc build --lib takes no input positional: the profile names the entry module"); } if ( - values.dynamic || values.backend !== undefined || values.emit !== undefined || values.print !== undefined || @@ -157,7 +155,7 @@ async function main(args: string[], host: CliHost): Promise { externalTypeArgs.length > 0 ) { fail( - "scriptc build --lib takes no --dynamic/--backend/--emit/--print/--optimization/--strip/--windows-subsystem/--detached-exit/--npm-static/--ffi/--external-types: the profile pins the emission and optimization, npm imports are judged automatically, outbound FFI belongs to executable builds, and external type mappings belong to coverage", + "scriptc build --lib takes no --backend/--emit/--print/--optimization/--strip/--windows-subsystem/--detached-exit/--npm-static/--ffi/--external-types: the profile pins the emission and optimization, npm imports are judged automatically, outbound FFI belongs to executable builds, and external type mappings belong to coverage", ); } const profilePath = resolve(profileArg); @@ -339,7 +337,6 @@ async function main(args: string[], host: CliHost): Promise { if (command === "coverage") { const { coverage, sourceTexts } = await host.analyze(input, { - dynamic: values.dynamic, ...(npmStatic !== undefined ? { npmStatic } : {}), ...(ffiProfilePath !== undefined ? { ffiProfilePath } : {}), ...(Object.keys(externalTypes).length > 0 ? { externalTypes } : {}), @@ -381,7 +378,6 @@ async function main(args: string[], host: CliHost): Promise { outputKind: output.outputKind, emitIr: output.emitIr, sanitize: values.sanitize, - dynamic: values.dynamic, ...(backend !== undefined ? { backend } : {}), ...(optimization !== undefined ? { optimization } : {}), ...(values.strip ? { strip: true } : {}), diff --git a/packages/compiler/src/cli/host.ts b/packages/compiler/src/cli/host.ts index e24543cfa..cb83e95d5 100644 --- a/packages/compiler/src/cli/host.ts +++ b/packages/compiler/src/cli/host.ts @@ -9,7 +9,7 @@ import type { import type { NativeOptimization } from "../backend/optimization.js"; import type { ProvenanceSources } from "../frontend/provenance-registry.js"; -export type NativeCacheWarmProfile = "runtime" | "tls" | "dynamic"; +export type NativeCacheWarmProfile = "runtime" | "tls"; /** Only host operations vary between the seed and installed compiler. */ export interface CliHost { diff --git a/packages/compiler/src/cli/usage.ts b/packages/compiler/src/cli/usage.ts index 0a24477f2..a0388374b 100644 --- a/packages/compiler/src/cli/usage.ts +++ b/packages/compiler/src/cli/usage.ts @@ -4,7 +4,6 @@ Usage: scriptc build [options] compile to an executable or source artifact scriptc run [options] compile and run scriptc coverage how much compiles statically, and why not - scriptc coverage --dynamic what a --dynamic build compiles, and what still blocks it scriptc coverage --external-types type-resolve an embedder-provided module for analysis scriptc build --lib --profile library mode: compile the profile's entry @@ -14,7 +13,7 @@ Usage: exporting the profile symbols; a profile with a sidecar section also gets the contract sidecar JSON beside the archive - scriptc cache warm [runtime|tls|dynamic…] prebuild expensive native cache families + scriptc cache warm [runtime|tls…] verify and load precompiled runtime families for the current compiler/SDK/target Options: @@ -52,22 +51,19 @@ Options: --emit-ir also write IR beside an executable or library archive; deprecated for executables: use --emit=ir for primary IR --sanitize build with ASan + runtime RC audit - --dynamic embed the dynamic engine (adds ~620KB; static stays the default) --ffi bind signature-only TypeScript declarations to native C symbols and link the manifest's archives/libraries --npm-static compile the named npm packages' shipped JS statically as program modules (repeatable; "auto" opts in every eligible direct import: own .d.ts, unminified JS, no build-transform - markers). A package preflight refuses falls back to the - island (--dynamic) with a coverage-report note — opt-in, - experimental + markers). Packages that fail preflight are refused with a + diagnostic. Eligible dependencies compile automatically. --provenance-sources EXPERIMENTAL: compile npm dependencies from their provenance-attested SOURCE (fetched at the attested commit) as static program modules; packages without a - usable attestation keep the island path (a note, never - a failure) + usable attestation use their published source --external-types coverage only: map an exact bare module specifier to a local declaration file. The declaration supplies types @@ -90,7 +86,6 @@ export const CLI_OPTIONS = { "keep-llvm": { type: "boolean", default: true }, "emit-ir": { type: "boolean", default: false }, sanitize: { type: "boolean", default: false }, - dynamic: { type: "boolean", default: false }, ffi: { type: "string" }, "npm-static": { type: "string", multiple: true }, "provenance-sources": { type: "boolean", default: false }, diff --git a/packages/compiler/src/compat/fetch-profile.ts b/packages/compiler/src/compat/fetch-profile.ts index 6239fd03e..95a84e13b 100644 --- a/packages/compiler/src/compat/fetch-profile.ts +++ b/packages/compiler/src/compat/fetch-profile.ts @@ -51,7 +51,7 @@ export interface FetchCompatOption { evidence: readonly FetchCompatEvidence[]; } -export type FetchCompatInventoryStatus = "static" | "dynamic-only" | "unsupported" | "out-of-scope"; +export type FetchCompatInventoryStatus = "static" | "unsupported" | "out-of-scope"; export type FetchCompatInventoryPlacement = | "global" @@ -64,7 +64,7 @@ export type FetchCompatInventoryPlacement = /** One public property in the pinned runtime census, or one WebIDL * dictionary member observed through its conversion reads. Static rows - * must resolve to an operation/option above; dynamic-only rows are the + * must resolve to an operation/option above; unsupported rows are the * implementation queue; out-of-scope rows make intentional omissions * explicit instead of letting absence masquerade as a support claim. */ export interface FetchCompatInventoryEntry { @@ -119,22 +119,6 @@ const staticEntry = ( placement: FetchCompatInventoryPlacement, ): FetchCompatInventoryEntry => ({ id, owner, member, placement, status: "static" }); -const dynamicEntry = ( - id: string, - owner: string, - member: string, - placement: FetchCompatInventoryPlacement, - reason: string, -): FetchCompatInventoryEntry => ({ - id, - owner, - member, - placement, - status: "dynamic-only", - code: "SC2020", - reason, -}); - const unsupportedEntry = ( id: string, owner: string, @@ -167,8 +151,7 @@ const outOfScopeEntry = ( }); const widerMemberFence = "the member is outside the native static handle projection"; -const typedInterfaceUnsupported = - "typed source has no compiler bridge for this interface in either tier"; +const typedInterfaceUnsupported = "typed source has no compiler bridge for this interface"; const metadataExclusion = "WebIDL brand metadata is observable reflection, not an executable compatibility operation"; @@ -581,7 +564,7 @@ export const NODE24_FETCH_COMPAT_PROFILE = { "AbortSignal", "constructor", "constructor", - "Node exposes the interface object but constructing it throws; neither compiler tier currently preserves that constructor behavior", + "Node exposes the interface object but constructing it throws; the compiler does not preserve that constructor behavior", ), staticEntry("stdlib.abort-signal.abort", "AbortSignal", "abort", "static"), staticEntry("stdlib.abort-signal.timeout", "AbortSignal", "timeout", "static"), @@ -626,7 +609,7 @@ export const NODE24_FETCH_COMPAT_PROFILE = { staticEntry(`stdlib.headers.${member}`, "Headers", member, "prototype"), ), ...["keys", "values", "entries"].map((member) => - dynamicEntry( + unsupportedEntry( `stdlib.headers.${member}`, "Headers", member, @@ -635,7 +618,7 @@ export const NODE24_FETCH_COMPAT_PROFILE = { ), ), staticEntry("stdlib.headers.forEach", "Headers", "forEach", "prototype"), - dynamicEntry( + unsupportedEntry( "stdlib.headers.symbol.iterator", "Headers", "[Symbol.iterator]", @@ -704,10 +687,10 @@ export const NODE24_FETCH_COMPAT_PROFILE = { "Response", member, "static", - "Response static constructor-object operations have no compiler lowering in either tier", + "Response static constructor-object operations have no compiler lowering", ), ), - dynamicEntry("stdlib.response.type", "Response", "type", "prototype", widerMemberFence), + unsupportedEntry("stdlib.response.type", "Response", "type", "prototype", widerMemberFence), ...["url", "redirected", "status", "ok", "statusText", "headers", "body", "bodyUsed"].map( (member) => staticEntry(`stdlib.response.${member}`, "Response", member, "prototype"), ), @@ -718,7 +701,7 @@ export const NODE24_FETCH_COMPAT_PROFILE = { "Response", member, "prototype", - "the dynamic fetch bridge does not implement this Response operation", + "the native fetch runtime does not implement this Response operation", ), ), ...["text", "json"].map((member) => @@ -744,13 +727,13 @@ export const NODE24_FETCH_COMPAT_PROFILE = { staticEntry("stdlib.readable-stream.cancel", "ReadableStream", "cancel", "prototype"), staticEntry("stdlib.readable-stream.get-reader", "ReadableStream", "getReader", "prototype"), ...["pipeThrough", "values"].map((member) => - dynamicEntry( + unsupportedEntry( `stdlib.readable-stream.${member}`, "ReadableStream", member, "prototype", member === "values" - ? "direct for-await consumption compiles statically; storing or driving the first-class iterator handle requires --dynamic" + ? "direct for-await consumption compiles statically; storing or driving the first-class iterator handle is unsupported" : "the wider Web Streams graph is outside the native readable-stream slice", ), ), @@ -760,7 +743,7 @@ export const NODE24_FETCH_COMPAT_PROFILE = { "ReadableStream", member, "prototype", - "the dynamic Web Streams bridge exposes only an explicit unsupported stub for this operation", + "this operation is outside the native readable-stream implementation", ), ), unsupportedEntry( @@ -768,7 +751,7 @@ export const NODE24_FETCH_COMPAT_PROFILE = { "ReadableStream", "[Symbol.asyncIterator]", "prototype-symbol", - "direct for-await consumption compiles statically; explicit symbol access and stored iterator handles have no compiler lowering in either tier", + "direct for-await consumption compiles statically; explicit symbol access and stored iterator handles have no compiler lowering", ), outOfScopeEntry( "stdlib.readable-stream.symbol.toStringTag", @@ -783,7 +766,7 @@ export const NODE24_FETCH_COMPAT_PROFILE = { "ReadableStreamDefaultReader", "constructor", "constructor", - "the constructor object is unavailable in the dynamic engine; static reader handles come from ReadableStream.getReader()", + "reader handles come from ReadableStream.getReader(); the constructor object is unsupported", ), staticEntry( "stdlib.readable-stream-default-reader.read", @@ -822,7 +805,7 @@ export const NODE24_FETCH_COMPAT_PROFILE = { "ReadableStreamDefaultController", "constructor", "constructor", - "the constructor object is unavailable in the dynamic engine; static controller handles come from underlying-source callbacks", + "controller handles come from underlying-source callbacks; the constructor object is unsupported", ), staticEntry( "stdlib.readable-stream-default-controller.desired-size", @@ -879,19 +862,19 @@ export const NODE24_FETCH_COMPAT_PROFILE = { return supported.has(member) ? staticEntry(id, "RequestInit", member, "dictionary") : member === "dispatcher" - ? dynamicEntry( + ? unsupportedEntry( id, "RequestInit", member, "dictionary", - "the dynamic tier recognizes Vercel CLI's EnvProxyDispatcher and applies equivalent native environment-proxy routing", + "custom dispatchers are unsupported; native environment-proxy routing uses NODE_USE_ENV_PROXY", ) : unsupportedEntry( id, "RequestInit", member, "dictionary", - "neither compiler tier preserves this RequestInit member's conversion or transport behavior", + "the compiler does not preserve this RequestInit member's conversion or transport behavior", ); }), ...["headers", "status", "statusText"].map((member) => @@ -906,7 +889,7 @@ export const NODE24_FETCH_COMPAT_PROFILE = { { name: "WritableStream/TransformStream", reason: - "the static tier currently targets readable fetch bodies, not general Web Streams graphs", + "native support currently covers readable fetch bodies; general Web Streams graphs are unsupported", }, { name: "Readable byte/BYOB streams", diff --git a/packages/compiler/src/compile-types.ts b/packages/compiler/src/compile-types.ts index db0d57966..de2c1a335 100644 --- a/packages/compiler/src/compile-types.ts +++ b/packages/compiler/src/compile-types.ts @@ -17,10 +17,6 @@ export interface CompileBaseOptions { * The CLI's deprecated --emit-ir flag supplies this option. */ emitIr?: boolean; sanitize?: boolean; - /** Embed the dynamic-island engine (--dynamic). Off = the static default: - * island constructs are diagnostics and nothing about codegen or linking - * changes. */ - dynamic?: boolean; /** LLVM is the production code generator. */ backend?: "llvm"; /** Native optimization posture. Release is the shipped -O2 default; dev @@ -39,15 +35,8 @@ export interface CompileBaseOptions { * executable mapped and the memory charged for up to ~100 ms after exit. * Executables only; no effect on other platforms. */ detachedExit?: boolean; - /** --npm-static: package names whose shipped, unminified JS compiles - * STATICALLY as program modules (inference types the bodies; statements - * the lowering cannot prove become runtime fences). "auto" opts in every - * directly-imported package passing the eligibility heuristics (own - * .d.ts, unminified JS, no build-transform markers). A package whose - * preflight refuses marks itself an offender and falls back to the - * island (--dynamic) or the requires-dynamic diagnostic (static builds) - * — never a silent misbuild. Off by default: nothing changes without - * the flag. */ + + /** Eligible packages compile automatically. Explicit names override automatic selection heuristics. */ npmStatic?: readonly string[] | "auto"; /** Outbound native FFI manifest. Its signature-only TypeScript bindings * lower to direct C ABI calls. Source outputs retain those declarations; @@ -161,12 +150,9 @@ export type CompileLibraryResult = | { ok: false; diagnostics: ScrDiagnostic[]; sourceTexts: Map }; export interface AnalyzeOptions { - /** Analyze as a --dynamic build (island constructs lower instead of - * producing requires-dynamic diagnostics). */ - dynamic?: boolean; /** --npm-static (see CompileOptions.npmStatic): the analysis compiles * opted-in packages' JS as program modules and the coverage report - * carries each package's static/fallback status. */ + * carries each package's native/refused status. */ npmStatic?: readonly string[] | "auto"; /** Analyze with the outbound native bindings from this FFI manifest. */ ffiProfilePath?: string; diff --git a/packages/compiler/src/contracts/check.ts b/packages/compiler/src/contracts/check.ts index 3e1570917..5a0e7767f 100644 --- a/packages/compiler/src/contracts/check.ts +++ b/packages/compiler/src/contracts/check.ts @@ -768,7 +768,7 @@ class Int32Contracts { else if (dynamic.has(family)) this.refuse( note, - "instances of the class reach dynamic code (any, unknown casts, islands) where a store to the field is not checked", + "instances of the class reach dynamic code (any or unknown casts) where a store to the field is not checked", "keep instances of this class out of any-typed values, or remove Int32", ); } @@ -1516,7 +1516,7 @@ class ImmutableContracts { if (PASS_THROUGH.has(e.kind) || OBSERVE.has(e.kind)) return; if (e.kind === "fieldGet" || e.kind === "recordGet" || e.kind === "arrayGet") return; // Any other parent: a derived child goes somewhere this pass does - // not follow (dynamic conversions, islands, runtime helpers). + // not follow (dynamic conversions, runtime helpers). everyExprChild( e, (child) => { @@ -1759,10 +1759,6 @@ function describeSink(e: IrExpr): string { case "dynObjLit": case "dynArrLit": return "dynamic (any or unknown) code"; - case "jsOp": - case "jsMarshal": - case "jsExit": - return "the JavaScript island"; case "intrinsic": return `the runtime (${e.name})`; default: diff --git a/packages/compiler/src/coverage/report.ts b/packages/compiler/src/coverage/report.ts index f8bb30d67..b881a6aa2 100644 --- a/packages/compiler/src/coverage/report.ts +++ b/packages/compiler/src/coverage/report.ts @@ -10,7 +10,6 @@ import type { Milestone, ScrDiagnostic } from "../diagnostics/diagnostic.js"; import { DIAGNOSTICS_SCHEMA, DIAGNOSTICS_SCHEMA_VERSION, - DYNAMIC_CAPABLE_CODES, SourceLocator, groupDiagnostics, type DiagnosticGroup, @@ -21,15 +20,10 @@ import { } from "../diagnostics/envelope.js"; import { renderDiagnostics } from "../diagnostics/render.js"; import type { LowerStats } from "../frontend/lowering/lowerer.js"; -import type { NpmBuiltinUse, NpmLazyTrap } from "../frontend/npm.js"; import type { ProvenanceSources } from "../frontend/provenance-registry.js"; export interface CoverageInput { file: string; - /** Analyzed as a --dynamic build: island sites LOWER (their statements - * land in stats.statementsIsland) instead of SC2013-fencing, and the - * report renders them as "compile dynamically". */ - dynamic?: boolean; stats: LowerStats; diagnostics: ScrDiagnostic[]; /** JS statements whose compile fences deferred to RUNTIME (runtimeFence @@ -44,19 +38,8 @@ export interface CoverageInput { * the program compiles, but these sites can behave differently natively. * Never blockers; `--fail-on=divergences` opts into failing on them. */ divergences?: ScrDiagnostic[]; - /** --dynamic only: every Node builtin the embedded npm graph imports — - * what the island must provide for this program (unshimmed ones also - * appear as SC2030 blockers, EXCEPT lazily-reached ones, which embed - * the island's call-time throw instead of failing the build). */ - npmBuiltins?: NpmBuiltinUse[]; - /** --dynamic only: unresolvable specifiers reached ONLY by require()/ - * import() edges — embedded as runtime traps with Node's call-time - * error shape; listed in the builtins table so the build output stays - * honest about what the binary cannot reach. */ - npmLazyTraps?: NpmLazyTrap[]; - /** --npm-static: each requested (or auto-detected) package's outcome — - * compiled statically as program modules, or fallen back to the island - * with the first refusal reason. */ + /** Each dependency's native compilation outcome, with the first refusal + * reason for a refused package. */ npmStatic?: NpmStaticStatus[]; /** --provenance-sources: the resolved source-mapped packages and the * fallback notes — the report renders per-package attribution from @@ -64,7 +47,7 @@ export interface CoverageInput { provenance?: ProvenanceSources; /** --provenance-sources: per-file statement attribution from the emit * pass (LowerResult.statsByFile). */ - statsByFile?: Map; + statsByFile?: Map; /** --provenance-sources: diagnostics of elided pure-annotated dead * consts (off the build; the provenance section names them). */ provenanceElided?: ScrDiagnostic[]; @@ -72,11 +55,11 @@ export interface CoverageInput { preflightFailed: boolean; } -/** One --npm-static package's outcome for the report. */ +/** One dependency's native compilation outcome. */ export interface NpmStaticStatus { package: string; - status: "static" | "fallback"; - /** The fallback's first refusal reason (fallback rows only). */ + status: "static" | "refused"; + /** The first refusal reason for a refused package. */ detail?: string; } @@ -89,10 +72,6 @@ const RESET = "\x1b[0m"; const MILESTONE_ORDER: Milestone[] = ["M1", "M2", "M3", "M4", "M5", "later"]; -/** Codes whose construct RUNS under --dynamic (the embedded engine) — the - * report separates "one flag away" from "cannot compile at all". */ -const DYNAMIC_CAPABLE = DYNAMIC_CAPABLE_CODES; - /** Human rows cap their message: long embedded type text would otherwise * push lines past several hundred columns. The full message is in the * --print=diagnostics envelope (and in `scriptc build` output). */ @@ -190,28 +169,18 @@ export function renderCoverage(input: CoverageInput, opts: CoverageRenderOptions return out.join("\n"); } - // Top-line numbers stay whole-program: reached statements plus the - // unreached remainder the analysis lowered anyway. Under --dynamic the - // island-lowered statements split out as "compile dynamically" — they - // BUILD, but their work runs in the embedded engine, and counting them - // as static would overstate how native the program is. + // Whole-program totals include reached and unreached statements. const un = input.unreached; const total = input.stats.statementsTotal + (un?.stats.statementsTotal ?? 0); const failed = input.stats.statementsFailed + (un?.stats.statementsFailed ?? 0); - const island = input.stats.statementsIsland + (un?.stats.statementsIsland ?? 0); const skipped = input.stats.functionsSkipped + (un?.stats.functionsSkipped ?? 0); - const ok = total - failed - island; + const ok = total - failed; const pct = total === 0 ? 100 : Math.floor((ok / total) * 100); const pctColor = pct === 100 ? GREEN : pct >= 75 ? YELLOW : RED; out.push(` statements analyzed ${total}`); out.push(` compile statically ${ok} ${c(pctColor, c(BOLD, `(${pct}%)`))}`); - if (input.dynamic) { - const ipct = total === 0 ? 0 : Math.floor((island / total) * 100); - out.push( - ` compile dynamically ${island} ${c(YELLOW, c(BOLD, `(${ipct}%)`))} ${c(DIM, "(island sites — the embedded engine runs them)")}`, - ); - } + if (skipped > 0) { out.push( ` ${c(DIM, `(${skipped} function${skipped === 1 ? "" : "s"} not analyzed — signature blocked; their statements count as not static)`)}`, @@ -219,72 +188,21 @@ export function renderCoverage(input: CoverageInput, opts: CoverageRenderOptions } out.push(""); - // --npm-static outcomes: which opted-in packages compiled statically as - // program modules and which fell back to the island (with the first - // refusal reason) — the flag's honesty section. + // Report native package compilation and the first reason for each refusal. const npmStatic = input.npmStatic ?? []; if (npmStatic.length > 0) { - out.push(` ${c(DIM, "npm packages compiled statically (--npm-static):")}`); + out.push(` ${c(DIM, "npm package compilation:")}`); const widestP = Math.max(...npmStatic.map((s) => s.package.length)); for (const s of npmStatic) { const status = s.status === "static" ? c(GREEN, "static") - : c(YELLOW, "island fallback") + - (s.detail !== undefined ? ` ${c(DIM, `(${s.detail})`)}` : ""); + : c(RED, "refused") + (s.detail !== undefined ? ` ${c(DIM, `(${s.detail})`)}` : ""); out.push(` ${s.package.padEnd(widestP)} ${status}`); } out.push(""); } - // What the embedded npm code asks of the island: every Node builtin the - // graph imports, with its shim status, plus every unresolvable specifier - // only require()/import() edges reach. Eagerly-blocked builtins also - // surface as SC2030 blockers below; "lazy trap" rows DON'T fail the - // build — the binary embeds Node's call-time error and the call throws - // at runtime, exactly where Node would have failed. - const builtins = input.dynamic ? (input.npmBuiltins ?? []) : []; - const traps = input.dynamic ? (input.npmLazyTraps ?? []) : []; - if (builtins.length > 0 || traps.length > 0) { - out.push( - ` ${c(DIM, traps.length > 0 ? "embedded npm code imports Node builtins and unresolved specifiers:" : "embedded npm code imports Node builtins:")}`, - ); - const widestB = Math.max( - ...[...builtins.map((b) => b.builtin.length), ...traps.map((t) => t.specifier.length)], - ); - // Pad the plain words before coloring — escape codes have no width. - const widestS = Math.max( - ...[...builtins.map((b) => (b.shimmed ? 7 : b.lazy ? 23 : 11)), ...traps.map(() => 24)], - ); - for (const b of builtins) { - const status = b.shimmed - ? c(GREEN, "shimmed".padEnd(widestS)) - : b.lazy - ? c(YELLOW, "not shimmed — lazy trap".padEnd(widestS)) - : c(RED, "not shimmed".padEnd(widestS)); - out.push( - ` ${b.builtin.padEnd(widestB)} ${status} ${c(DIM, `(${b.packages.join(", ")})`)}`, - ); - } - for (const t of traps) { - // A native .node addon RESOLVED — the island cannot dlopen it, so - // the build embedded a throwing ERR_DLOPEN_FAILED stub instead of - // the addon's machine code; unresolvable rows keep Node's not-found - // error shapes. - const what = t.native ? "native addon — lazy trap" : "unresolvable — lazy trap"; - out.push( - ` ${t.specifier.padEnd(widestB)} ${c(YELLOW, what.padEnd(widestS))} ` + - c(DIM, `(${t.via.join("/")} in ${t.packages.join(", ")})`), - ); - } - if (builtins.some((b) => b.lazy) || traps.length > 0) { - out.push( - ` ${c(DIM, "(lazy trap: only reachable through require()/import() boundaries — the build embeds Node's call-time error; the call throws at runtime)")}`, - ); - } - out.push(""); - } - // --provenance-sources: per-package attribution — the answer to "did // the DEPENDENCY's statements compile static?", computed by summing // statsByFile entries under each package's source dir. Elided @@ -298,19 +216,17 @@ export function renderCoverage(input: CoverageInput, opts: CoverageRenderOptions for (const pkg of prov.packages) { let pTotal = 0; let pFailed = 0; - let pIsland = 0; const dir = pkg.dir.endsWith("/") ? pkg.dir : `${pkg.dir}/`; for (const [file, s] of input.statsByFile ?? - new Map()) { + new Map()) { if (!file.startsWith(dir)) continue; pTotal += s.total; pFailed += s.failed; - pIsland += s.island; } const elided = (input.provenanceElided ?? []).filter((d) => d.loc.file.startsWith(dir), ).length; - const pOk = pTotal - pFailed - pIsland; + const pOk = pTotal - pFailed; const pPct = pTotal === 0 ? 100 : Math.floor((pOk / pTotal) * 100); const pColor = pPct === 100 ? GREEN : pPct >= 75 ? YELLOW : RED; const shortRepo = pkg.repo @@ -321,7 +237,7 @@ export function renderCoverage(input: CoverageInput, opts: CoverageRenderOptions ` ${pkg.name}@${pkg.version} ${c(DIM, `${shortRepo} @ ${pkg.commit.slice(0, 12)}`)}`, ); out.push( - ` ${pTotal} statements: ${pOk} static ${c(pColor, c(BOLD, `(${pPct}%)`))}, ${pIsland} island, ${pFailed} fenced` + + ` ${pTotal} statements: ${pOk} static ${c(pColor, c(BOLD, `(${pPct}%)`))}, ${pFailed} fenced` + (elided > 0 ? ` ${c(DIM, `(${elided} fence${elided === 1 ? "" : "s"} elided as @__PURE__ dead consts — uses would fence per site)`)}` : ""), @@ -357,11 +273,7 @@ export function renderCoverage(input: CoverageInput, opts: CoverageRenderOptions const unreachedDiags = [...(un?.diagnostics ?? []), ...(un?.runtimeFences ?? [])]; if (failed === 0 && input.diagnostics.length === 0 && unreachedDiags.length === 0) { - out.push( - island > 0 - ? ` ${c(GREEN, "builds with --dynamic")} — no remaining blockers (the island sites above run in the embedded engine).` - : ` ${c(GREEN, "fully static")} — this program has no dynamic remainder.`, - ); + out.push(` ${c(GREEN, "fully static")} — all analyzed statements compile to native code.`); if (divergences.length > 0) { out.push(""); renderDivergences(); @@ -372,12 +284,10 @@ export function renderCoverage(input: CoverageInput, opts: CoverageRenderOptions // Ordered by internal scheduling (soonest first), then by frequency — // the top line is the blocker most likely to disappear next. The // milestone labels themselves are maintainer business and never rendered. - // Blockers split by what a flag can fix: sites that RUN under --dynamic - // (the embedded engine) versus constructs with no lowering at all. + const blockers = groupBlockers(input.diagnostics); const unreachedBlockers = groupBlockers(unreachedDiags, "unreached"); - const dynamic = blockers.filter((b) => DYNAMIC_CAPABLE.has(b.code)); - const rejected = blockers.filter((b) => !DYNAMIC_CAPABLE.has(b.code)); + const rejected = blockers; const renderGroup = (group: Blocker[], dim = false) => renderRows(group, RED, dim); if ( failed > 0 && @@ -391,14 +301,6 @@ export function renderCoverage(input: CoverageInput, opts: CoverageRenderOptions ` ${c(RED, "blockers:")} ${failed} statement${failed === 1 ? "" : "s"} failed without a diagnostic (a compiler bug — please report it)`, ); } - if (dynamic.length > 0) { - const sites = dynamic.reduce((n, b) => n + b.count, 0); - out.push( - ` ${c(YELLOW, `runs with --dynamic`)} ${sites} site${sites === 1 ? "" : "s"} ${c(DIM, "(embeds a JS engine, ~620KB — static stays the default)")}`, - ); - renderGroup(dynamic); - out.push(""); - } if (rejected.length > 0) { out.push(` blockers:`); renderGroup(rejected); @@ -510,9 +412,8 @@ export function coverageEnvelope( const un = input.unreached; const total = input.stats.statementsTotal + (un?.stats.statementsTotal ?? 0); const failed = input.stats.statementsFailed + (un?.stats.statementsFailed ?? 0); - const island = input.stats.statementsIsland + (un?.stats.statementsIsland ?? 0); const skipped = input.stats.functionsSkipped + (un?.stats.functionsSkipped ?? 0); - const ok = total - failed - island; + const ok = total - failed; return { schema: DIAGNOSTICS_SCHEMA, schemaVersion: DIAGNOSTICS_SCHEMA_VERSION, @@ -531,7 +432,7 @@ export function coverageEnvelope( stats: { statementsTotal: total, statementsStatic: ok, - statementsDynamic: island, + statementsDynamic: 0, statementsFailed: failed, functionsSkipped: skipped, percentStatic: total === 0 ? 100 : Math.floor((ok / total) * 100), diff --git a/packages/compiler/src/coverage/surface-manifest.ts b/packages/compiler/src/coverage/surface-manifest.ts index 27ecfa475..a3deeb287 100644 --- a/packages/compiler/src/coverage/surface-manifest.ts +++ b/packages/compiler/src/coverage/surface-manifest.ts @@ -9,10 +9,10 @@ import { InternalCompilerError } from "../errors.js"; * (tests/harness/surface-manifest.test.ts) fails until the committed file * is regenerated (`pnpm manifest`). * - * Schema (schemaVersion 1 — additive changes only; removals or meaning + * Schema (schemaVersion 2 — additive changes only; removals or meaning * changes bump the number): * { - * schemaVersion: 1, + * schemaVersion: 2, * compilerVersion: string, // the exact published release version — * // a version pin matches this string * coverage: string[], // what is and is not projected (the @@ -23,7 +23,7 @@ import { InternalCompilerError } from "../errors.js"; * // names ("stdlib.string.charCodeAt") * kind: "syntax" | "stdlib" | "node-builtin" | "diagnostic-fence", * name: string, // human-readable surface name - * status: "static" | "dynamic-only" | "unsupported", + * status: "static" | "unsupported", * code?: "SC____", // REQUIRED on every non-static entry: * // the diagnostic code the compiler * // raises where the refusal applies @@ -49,7 +49,7 @@ import { BUILTIN_MODULE_FNS, COLLECTION_ITERATOR_METHODS, COMPOUND_ASSIGN_OPS, - ISLAND_SURFACE, + STDLIB_SURFACE, MAP_METHODS, SET_COMBINE_METHODS, SET_METHODS, @@ -65,7 +65,7 @@ import { export type SurfaceEntryKind = "syntax" | "stdlib" | "node-builtin" | "diagnostic-fence"; -export type SurfaceEntryStatus = "static" | "dynamic-only" | "unsupported"; +export type SurfaceEntryStatus = "static" | "unsupported"; export interface SurfaceManifestEntry { id: string; @@ -77,13 +77,13 @@ export interface SurfaceManifestEntry { } export interface SurfaceManifest { - schemaVersion: 1; + schemaVersion: 2; compilerVersion: string; coverage: string[]; entries: SurfaceManifestEntry[]; } -export const MANIFEST_SCHEMA_VERSION = 1; +export const MANIFEST_SCHEMA_VERSION = 2; /** The manifest's own scope statement: what the projection covers and — * just as load-bearing — what it deliberately leaves out, so absence is @@ -93,10 +93,9 @@ const COVERAGE_NOTES: string[] = [ "Absence from this manifest means 'not projected', never 'unsupported'. Surfaces lowered through dedicated code paths rather than tables are not yet projected: console, JSON, Promise/async and the timer surface, the net/http/tls/https/dgram/dns/assert/test/stream/readline module member surfaces, template literals, the regex slice, global functions (parseInt, parseFloat, isNaN, isFinite), and the process surface outside its ambient slice.", "The ambient-nondeterminism and ambient-authority surfaces the library sidecar's determinism attestation scans ARE projected even where they lower through dedicated code paths — the Date compositions (stdlib.date.*), perf_hooks' performance.now, and the process global's ambient reads and authority calls (node-builtin.process.*) — so a determinism fence can name every surface the attestation demotes on.", "stdlib and node-builtin member entries name surface whose LOWERED call forms are constrained (arity, argument shapes); declared call forms outside the lowered set are refused per site, with code SC2020 for standard-library and node-builtin surface.", - "Entries with status 'unsupported' or 'dynamic-only' describe where the named code is raised: forms of the construct outside the supported subset are refused with that code — not that every form of the named feature is refused. Supported forms appear as their own static entries where a table projects them.", - "Entries with status 'dynamic-only' compile when the build embeds the dynamic engine (--dynamic); without the flag each use site is refused with the entry's code.", + "Entries with status 'unsupported' describe where the named code is raised: forms of the construct outside the supported subset are refused with that code — not that every form of the named feature is refused. Supported forms appear as their own static entries where a table projects them.", `The engine-free fetch projection targets Node ${NODE24_FETCH_COMPAT_PROFILE.target.node} with bundled Undici ${NODE24_FETCH_COMPAT_PROFILE.target.undici}. Each projected row names the differential evidence that guards it; changing the pinned Node or Undici version is an explicit profile update.`, - "The fetch profile also contains a runtime-reflected census of the selected fetch, abort, Headers, and readable-stream interfaces plus RequestInit/ResponseInit dictionary reads. Static, dynamic-only, and unsupported census rows are projected here; its explicitly out-of-scope metadata rows and adjacent-interface exclusions remain in the profile so absence is deliberate rather than ambiguous.", + "The fetch profile also contains a runtime-reflected census of the selected fetch, abort, Headers, and readable-stream interfaces plus RequestInit/ResponseInit dictionary reads. Static and unsupported census rows are projected here; its explicitly out-of-scope metadata rows and adjacent-interface exclusions remain in the profile so absence is deliberate rather than ambiguous.", "Process-level diagnostic codes are not surface entries: SC0001-SC0004 are preflight gates, SC1110 is a comptime evaluation failure, SC3001/SC3002 are backend/target tier refusals, SC9001/SC9002 are internal errors.", "Entry statuses are projected for the desktop targets. The mobile targets (aarch64-apple-ios, aarch64-apple-ios-simulator, aarch64-linux-android) compile library-mode archives only: the library-admissible surface (what SC4005's async_free requirement and the library link set admit) is supported there, the executable lane refuses those triples with SC3002, and no entry outside the library-admissible surface carries a mobile support claim. iOS archives build for iOS 15.0 on darwin hosts; Android archives build against NDK API level 26.", "No scheduling metadata is published; entry ids are the stable diff keys across releases.", @@ -304,30 +303,29 @@ export function generateSurfaceManifest(compilerVersion: string): SurfaceManifes }); } - // ── stdlib: the Math surface — static table first, island remainder ─── const mathNames = new Set([ ...Object.keys(STATIC_MATH_FNS), - ...Object.keys(ISLAND_SURFACE.math.fns), + ...Object.keys(STDLIB_SURFACE.math.fns), ]); for (const name of mathNames) { const stat = STATIC_MATH_FNS[name]; - const island = ISLAND_SURFACE.math.fns[name]; + const declared = STDLIB_SURFACE.math.fns[name]; if (stat !== undefined) { add({ id: `stdlib.math.${name}`, kind: "stdlib", name: `Math.${name}`, status: "static", - // Only the island overlap earns a tail: the tables prove where the - // untabled arities go there. Elsewhere untabled shapes may have + + // Untabled shapes may have // their own special-cased lowerings (Math.min/max over one array // spread), so no claim is made about them. note: name === "hypot" ? "compiles statically at any arity, including number[] spreads" : `compiles statically at arity ${stat.arity}` + - (island !== undefined - ? "; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + (declared !== undefined + ? "; other declared call shapes are refused with SC2012" : ""), }); } else { @@ -335,17 +333,17 @@ export function generateSurfaceManifest(compilerVersion: string): SurfaceManifes id: `stdlib.math.${name}`, kind: "stdlib", name: `Math.${name}`, - status: "dynamic-only", + status: "unsupported", code: "SC2012", }); } } - for (const name of Object.keys(ISLAND_SURFACE.math.props)) { + for (const name of Object.keys(STDLIB_SURFACE.math.props)) { add({ id: `stdlib.math.${name}`, kind: "stdlib", name: `Math.${name}`, - status: "dynamic-only", + status: "unsupported", code: "SC2012", }); } @@ -360,7 +358,7 @@ export function generateSurfaceManifest(compilerVersion: string): SurfaceManifes } const numberNames = new Set([ ...Object.keys(STATIC_NUMBER_METHODS), - ...Object.keys(ISLAND_SURFACE.number), + ...Object.keys(STDLIB_SURFACE.number), ]); for (const name of numberNames) { const stat = Object.hasOwn(STATIC_NUMBER_METHODS, name) @@ -379,26 +377,24 @@ export function generateSurfaceManifest(compilerVersion: string): SurfaceManifes id: `stdlib.number.${name}`, kind: "stdlib", name: `number.prototype.${name}`, - status: "dynamic-only", + status: "unsupported", code: "SC2012", }); } } - for (const name of Object.keys(ISLAND_SURFACE.string)) { + for (const name of Object.keys(STDLIB_SURFACE.string)) { if (STRING_INDEX_METHODS.has(name) || STRING_REPLACE_METHODS.has(name)) continue; add({ id: `stdlib.string.${name}`, kind: "stdlib", name: `string.prototype.${name}`, - status: "dynamic-only", + status: "unsupported", code: "SC2012", }); } - // ISLAND_SURFACE.globals (parseFloat, isFinite) is deliberately NOT + // STDLIB_SURFACE.globals (parseFloat, isFinite) is deliberately NOT // projected: those globals also lower statically over exactly-typed - // arguments through untabled call paths, so neither status would be - // truthful from the island table alone — the coverage notes carry the - // exclusion. + // arguments through untabled call paths; the table alone cannot classify them. // ── node-builtin: modules, members, constants, named fences ─────────── const moduleId = (mod: string): string => `node-builtin.${mod.split("/").join(".")}`; @@ -488,7 +484,7 @@ export function generateSurfaceManifest(compilerVersion: string): SurfaceManifes } } for (const row of NODE24_FETCH_COMPAT_PROFILE.inventory.entries) { - if (row.status !== "dynamic-only" && row.status !== "unsupported") continue; + if (row.status !== "unsupported") continue; if (row.code === undefined || row.reason === undefined) { throw new InternalCompilerError(`non-static fetch inventory row '${row.id}' is incomplete`); } diff --git a/packages/compiler/src/coverage/verdict-cache.ts b/packages/compiler/src/coverage/verdict-cache.ts index f98793ec2..841e2b57b 100644 --- a/packages/compiler/src/coverage/verdict-cache.ts +++ b/packages/compiler/src/coverage/verdict-cache.ts @@ -20,7 +20,7 @@ import { type FrontendInputSnapshot, } from "../frontend/input-tracker.js"; -const SCHEMA = "scriptc.coverage-verdict.v1"; +const SCHEMA = "scriptc.coverage-verdict.v2"; /** Key-value storage for verdict entries (best effort: failures miss). */ export interface VerdictStore { @@ -29,11 +29,9 @@ export interface VerdictStore { } /** The cacheable part of a coverage analysis: JSON-shaped fields only. An - * analysis that carries anything else (npm builtin tables, provenance) - * is not cached. */ + * analysis that carries anything else (provenance) is not cached. */ export interface CachedCoverage { file: string; - dynamic: boolean; stats: LowerStats; diagnostics: ScrDiagnostic[]; runtimeFences?: ScrDiagnostic[]; @@ -118,7 +116,6 @@ export function verdictKey( cache.platform, process.env["SCRIPTC_TARGET"] ?? "", entry, - opts.dynamic === true ? "dynamic" : "static", npmStatic, opts.ffiProfilePath ?? "", ffi, @@ -131,14 +128,11 @@ function cacheable(coverage: AnalyzeResult["coverage"]): CachedCoverage | null { if ( coverage.provenance !== undefined || coverage.statsByFile !== undefined || - coverage.provenanceElided !== undefined || - coverage.npmBuiltins !== undefined || - coverage.npmLazyTraps !== undefined + coverage.provenanceElided !== undefined ) return null; const out: CachedCoverage = { file: coverage.file, - dynamic: coverage.dynamic ?? false, stats: coverage.stats, diagnostics: coverage.diagnostics, preflightFailed: coverage.preflightFailed, @@ -155,7 +149,6 @@ function restore(cached: CachedCoverage, sources: CachedSource[]): AnalyzeResult for (const source of sources) sourceTexts.set(source.path, source.text); const coverage: AnalyzeResult["coverage"] = { file: cached.file, - dynamic: cached.dynamic, stats: cached.stats, diagnostics: cached.diagnostics, preflightFailed: cached.preflightFailed, diff --git a/packages/compiler/src/diagnostics/diagnostic.ts b/packages/compiler/src/diagnostics/diagnostic.ts index f17c86f27..2bc42ef8b 100644 --- a/packages/compiler/src/diagnostics/diagnostic.ts +++ b/packages/compiler/src/diagnostics/diagnostic.ts @@ -18,8 +18,8 @@ * SC4xxx library-mode/profile refusals (the library-emission mode): profile * malformed (SC4001), export unresolved (SC4002), unmappable * signature (SC4003), async/generator export (SC4004), the - * async_free graph requirement (SC4005), island/dynamic on the - * library path (SC4006), generic export signatures (SC4007), + * async_free graph requirement (SC4005), generic export + * signatures (SC4007; SC4006 is retired), * contract-sidecar projection (SC4009), multi-site type * declarations feeding a tabled type (SC4010), conditional/ * mapped types producing a tabled type (SC4011), the @@ -272,7 +272,7 @@ export const UNSUPPORTED: Record = { hint: "relative imports (./file, ../dir/file), package.json-mediated project " + "imports (#alias via the imports field, self-name references via " + - "exports), installed npm packages (their code runs under --dynamic), " + + "exports), statically compiled npm packages, " + "and the built-in fs, fs/promises, path, os, url, crypto, zlib, " + "child_process, net, http, tls, https, http2, dgram, dns, util, " + "util/types, string_decoder, querystring, readline, events, stream, " + @@ -412,76 +412,69 @@ export const UNSUPPORTED: Record = { * of UNSUPPORTED): the other half of the enumerable code registry, indexed * so the surface manifest (coverage/surface-manifest.ts) can catalog every * refusal code a program's constructs can meet. `status` says what the - * refusal means for the construct: "dynamic-only" codes mark constructs - * that RUN under --dynamic (the report's dynamic-capable family — - * SC2010/SC2011/SC2012/SC2013); "unsupported" codes mark constructs with - * no lowering on either tier. Process-level codes are deliberately absent: + * refusal means for the construct. Process-level codes are deliberately absent: * preflight gates (SC0001–SC0004), comptime evaluation failures (SC1110), * backend/target refusals (SC3001/SC3002), and internal errors - * (SC9001/SC9002) report problems or engine tiers, not language/stdlib + * (SC9001/SC9002) report compilation problems, not language/stdlib * surface. */ -export const FENCE_CODES: Record = - { - // SC2001 is the residual type fence: the named type-shape families each - // carry their own code (SC2005 generic signatures, SC2006 index - // signatures, SC2007 overloads, SC2008 intersections, SC2009 component - // fences; standard-library types with no lowering report SC2020). What - // remains here is the remainder the name enumerates. - SC2001: { - name: "values of types outside the compilable set (constructor objects and library-derived or unresolved generic shapes)", - status: "unsupported", - }, - SC2002: { - name: "record shape flows outside the width-copy rules (shapes must match exactly or width-coerce)", - status: "unsupported", - }, - SC2003: { - name: "union-to-union conversions outside the re-tagging rule", - status: "unsupported", - }, - SC2004: { - name: "uses of a binding whose declaration did not compile (cascade marker)", - status: "unsupported", - }, - SC2005: { - name: "values whose type keeps a generic call signature (a compiled function is one concrete signature)", - status: "unsupported", - }, - SC2006: { - name: "index-signature object types outside the supported shape", - status: "unsupported", - }, - SC2007: { - name: "values of overloaded function type (a compiled function value is one signature)", - status: "unsupported", - }, - SC2008: { name: "intersection types with no resolved lowering", status: "unsupported" }, - SC2009: { - name: "supported container and function shapes over a component type outside its slot", - status: "unsupported", - }, - SC2010: { - name: "constructs that exist only in the embedded dynamic engine", - status: "dynamic-only", - }, - SC2011: { name: "'any'-typed values and the operations on them", status: "dynamic-only" }, - SC2012: { - name: "standard-library surface that runs in the embedded dynamic engine", - status: "dynamic-only", - }, - SC2013: { - name: "npm package imports and values (the package's implementation runs in the embedded engine)", - status: "dynamic-only", - }, - SC2020: { - name: "standard-library or @types/node surface with no lowering", - status: "unsupported", - }, - SC2030: { - name: "npm package code that cannot be embedded for the dynamic engine", - status: "unsupported", - }, - }; +export const FENCE_CODES: Record = { + // SC2001 is the residual type fence: the named type-shape families each + // carry their own code (SC2005 generic signatures, SC2006 index + // signatures, SC2007 overloads, SC2008 intersections, SC2009 component + // fences; standard-library types with no lowering report SC2020). What + // remains here is the remainder the name enumerates. + SC2001: { + name: "values of types outside the compilable set (constructor objects and library-derived or unresolved generic shapes)", + status: "unsupported", + }, + SC2002: { + name: "record shape flows outside the width-copy rules (shapes must match exactly or width-coerce)", + status: "unsupported", + }, + SC2003: { + name: "union-to-union conversions outside the re-tagging rule", + status: "unsupported", + }, + SC2004: { + name: "uses of a binding whose declaration did not compile (cascade marker)", + status: "unsupported", + }, + SC2005: { + name: "values whose type keeps a generic call signature (a compiled function is one concrete signature)", + status: "unsupported", + }, + SC2006: { + name: "index-signature object types outside the supported shape", + status: "unsupported", + }, + SC2007: { + name: "values of overloaded function type (a compiled function value is one signature)", + status: "unsupported", + }, + SC2008: { name: "intersection types with no resolved lowering", status: "unsupported" }, + SC2009: { + name: "supported container and function shapes over a component type outside its slot", + status: "unsupported", + }, + SC2010: { + name: "runtime JavaScript execution", + status: "unsupported", + }, + SC2011: { name: "'any'-typed values and the operations on them", status: "unsupported" }, + SC2012: { + name: "standard-library forms without native lowering", + status: "unsupported", + }, + SC2013: { + name: "npm package imports and values without native lowering", + status: "unsupported", + }, + SC2020: { + name: "standard-library or @types/node surface with no lowering", + status: "unsupported", + }, + // SC2030 (npm embedding failure) is retired; do not reuse. +}; export function unsupportedDiag( code: keyof typeof UNSUPPORTED & `SC${number}`, @@ -603,21 +596,15 @@ export function strictNullChecksFloorDiag(configFile: string): ScrDiagnostic { } export function unsupportedTypeDiag(typeText: string, loc: SrcLoc): ScrDiagnostic { - // `any` gets its own wording AND its own code: it is not an unsupported - // value type but a construct with a DYNAMIC lowering — under --dynamic, - // any-typed code runs in the embedded engine. This build didn't opt in, - // so each site reports the choice: pay ~620KB, or stay static with - // 'unknown' + a checked cast. The distinct code lets the coverage report - // separate "runs with --dynamic" from "cannot compile". One voice with - // SC2010/SC2012: same message shape, same cost figure, same - // stay-static alternative shape. + // `any` has a distinct diagnostic so coverage can identify operations + // that need a represented type or an explicit checked cast. if (typeText === "any") { return { code: "SC2011", - message: `values of type 'any' run in the embedded dynamic engine, which this build does not include`, + message: `values of type 'any' have no native representation at this site`, loc, milestone: "M4", - hint: "build with --dynamic to run 'any'-typed code in the embedded engine (adds ~620KB to the binary), or stay static with 'unknown' and a checked cast ('x as T')", + hint: "use a supported typed value, or 'unknown' with a checked cast ('x as T')", }; } // The RESIDUAL type fence: the named families (generic signatures — @@ -636,24 +623,6 @@ export function unsupportedTypeDiag(typeText: string, loc: SrcLoc): ScrDiagnosti }; } -/** A type with a DYNAMIC representation but no static one — `any[]`, - * records/functions with `any`-typed members, or a shipped-.d.ts type whose - * values are island handles. The caller PROVED the claim by re-running - * mapType with `dynamic: true` before choosing this wording, so the message - * is a measured fact, not a guess. SC2011 like the bare-`any` arm of - * unsupportedTypeDiag (one dynamic-family code per story: this is the - * "values of this TYPE run in the engine" story), and "runs in" voice like - * SC2012 — the value exists under --dynamic; the build just didn't opt in. */ -export function requiresDynamicTypeDiag(typeText: string, loc: SrcLoc): ScrDiagnostic { - return { - code: "SC2011", - message: `values of type '${typeText}' have no static representation but run in the embedded dynamic engine, which this build does not include`, - loc, - milestone: "M4", - hint: "build with --dynamic to run these values in the embedded engine (adds ~620KB to the binary), or restate the type inside the static surface (https://scriptc.dev/limitations describes the boundary)", - }; -} - /** A value whose type keeps a GENERIC call signature (`let g: (x: T) => * T`, a stored generic function, a call result the checker left * higher-order generic): every compiled function is one concrete @@ -773,13 +742,12 @@ export function noLoweringDiag( }; } -/** A resolved native addon needs Node's embedding ABI, even when the - * caller opts into scriptc's dynamic engine. The migration uses the +/** A resolved native addon needs Node's embedding ABI. The migration uses the * underlying native operation through an ordinary C ABI declaration. */ export function nativeAddonDiag(specifier: string, loc: SrcLoc): ScrDiagnostic { return { code: "SC2020", - message: `native addon '${specifier}' requires Node's addon runtime, which is unavailable in static and --dynamic builds`, + message: `native addon '${specifier}' requires Node's addon runtime, which is unavailable in scriptc`, loc, milestone: "later", hint: "expose the native operation as a plain C ABI function in an object or static archive, then bind a signature-only TypeScript declaration with --ffi; Node-API callbacks themselves require Node (https://scriptc.dev/ffi#replacing-a-node-api-addon)", @@ -849,95 +817,64 @@ export function blockedBindingUseDiag(name: string, loc: SrcLoc): ScrDiagnostic }; } -/** An OPERATION on an `any`-typed value with no static lowering, in a - * static build. The honest static subset of `any` compiles (bindings ride - * the checked-dynamic tree — declarations, assignments, reads, equality, - * typeof, truthiness, templates, calls through boxed functions), but the - * operations that need JS's full coercion/mutation semantics (operators, - * expando writes, computed member names, iteration) execute only in the - * engine. Same code as the `any` type fence (SC2011) so the coverage - * report and the two-tier retry treat both as one dynamic-capable family: - * the island lifts exactly these sites. */ -export function anyOpRequiresDynamicDiag(feature: string, loc: SrcLoc): ScrDiagnostic { +/** Unsupported native operations keep stable diagnostic codes for tooling. */ +export function unsupportedAnyOperationDiag(feature: string, loc: SrcLoc): ScrDiagnostic { return { code: "SC2011", - message: `${feature} on 'any'-typed values runs in the embedded dynamic engine, which this build does not include`, - loc, - milestone: "M4", - hint: "build with --dynamic to run 'any'-typed code in the embedded engine (adds ~620KB to the binary), or stay static with 'unknown' and a checked cast ('x as T')", - }; -} - -/** A construct that needs the embedded dynamic-island engine was used in a - * static build. Static is the default and never silently embeds the engine - * (~620KB); the fix is spelled out in the hint, not applied implicitly. - * "Requires" (vs SC2011/SC2012's "runs in"): the construct is engine-only - * — it has no static form to stay with, so the hint offers no alternative. */ -export function requiresDynamicDiag(feature: string, loc: SrcLoc): ScrDiagnostic { - return { - code: "SC2010", - message: `${feature} requires the embedded dynamic engine, which this build does not include`, - loc, - milestone: "M4", - hint: "build with --dynamic to embed the engine (adds ~620KB to the binary); static builds never include it", - }; -} - -/** An ambient API with an island-backed lowering (Math.*, number/string - * methods beyond the static set, parseFloat, ...) was used in a static - * build. Same contract as SC2010, its own code so the coverage report can - * name the construct: the call RUNS under --dynamic (the engine executes - * it with JS-exact semantics); without the flag each use site reports the - * choice instead of ICEing or failing at link time. */ -export function requiresDynamicApiDiag(feature: string, loc: SrcLoc, hint?: string): ScrDiagnostic { - return { - code: "SC2012", - message: `${feature} runs in the embedded dynamic engine, which this build does not include`, - loc, - milestone: "M4", - hint: - hint ?? - "build with --dynamic to run this call in the embedded engine (adds ~620KB to the binary); static builds never include it", - }; -} - -/** An npm package import in a static build. The package's shipped JS has - * exactly one execution home — the embedded engine — so the import itself - * "requires" (SC2010's voice); its own code so the coverage report can - * attribute sites per package. */ -export function requiresDynamicImportDiag(pkg: string, loc: SrcLoc): ScrDiagnostic { - return { - code: "SC2013", - message: `importing '${pkg}' requires the embedded dynamic engine, which this build does not include — the package's implementation runs there`, - loc, - milestone: "M4", - hint: "build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine", - }; -} - -/** A USE SITE of a value whose type the package's .d.ts declares, in a - * static build. Message names ONLY the package (never the type) so the - * coverage report groups all of a package's sites into one line. */ -export function requiresDynamicPackageDiag(pkg: string, loc: SrcLoc): ScrDiagnostic { - return { - code: "SC2013", - message: `values from the '${pkg}' package run in the embedded dynamic engine, which this build does not include`, - loc, - milestone: "M4", - hint: "build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine", - }; -} - -/** Building the embedded npm runtime graph failed — the package's entry - * or one of its internal modules can't resolve, or it needs a Node builtin - * the island doesn't shim. Named per problem, at the import site. */ -export function npmEmbedFailedDiag(detail: string, loc: SrcLoc): ScrDiagnostic { - return { - code: "SC2030", - message: `cannot embed npm package code: ${detail}`, + message: `${feature} on 'any'-typed values cannot compile statically`, loc, milestone: "later", - hint: "the package's runtime JS is embedded at build time and executed in the island; packages that reach outside the shimmed builtins (events, path, fs, os, process, util, buffer, stream, crypto, zlib, url, assert, and the rest of `scriptc coverage`'s shimmed table — http/https clients and net/tls load too; http2 and worker_threads are the notable absences) do not run yet", + hint: "use a supported typed operation, or 'unknown' with a checked cast ('x as T')", + }; +} + +export function unsupportedNativeExecutionDiag(feature: string, loc: SrcLoc): ScrDiagnostic { + return { + code: "SC2010", + message: `${feature} cannot compile statically`, + loc, + milestone: "later", + hint: "scriptc compiles program code to native instructions; runtime JavaScript evaluation is unsupported", + }; +} + +export function unsupportedNativeApiDiag( + feature: string, + loc: SrcLoc, + hint?: string, +): ScrDiagnostic { + return { + code: "SC2012", + message: `${feature} cannot compile statically`, + loc, + milestone: "later", + hint: hint ?? "use a supported API or rewrite this operation for native compilation", + }; +} + +export function unsupportedPackageImportDiag(pkg: string, loc: SrcLoc): ScrDiagnostic { + return npmStaticRefusalDiag( + pkg, + "its implementation is not part of the compiled module graph", + loc, + ); +} + +export function unsupportedPackageValueDiag(pkg: string, loc: SrcLoc): ScrDiagnostic { + return npmStaticRefusalDiag( + pkg, + "its implementation is not part of the compiled module graph", + loc, + ); +} + +export function npmStaticRefusalDiag(pkg: string, detail: string, loc: SrcLoc): ScrDiagnostic { + return { + code: "SC2013", + message: `cannot compile npm package '${pkg}' statically: ${detail}`, + loc, + milestone: "later", + hint: "use a dependency with supported source, or replace the unsupported operation; scriptc has no interpreter fallback", }; } @@ -1229,19 +1166,13 @@ export function libCallbackDiag(name: string, detail: string, loc: SrcLoc): ScrD "abi.callback_register_symbol before calling any entry that can reach the channel", }; } -/** SC4020 — a bare npm specifier in a library graph naming a package that - * fails the npm-static eligibility bar (own .d.ts, unminified shipped JS, - * no build-transform markers) or whose static compilation the preflight - * had to refuse. Library mode is STATIC-OR-REFUSE by construction: the - * island/dynamic tier the executable lane falls back to does not exist on - * this path (SC4006's ground), so the refusal names the package, the - * specific bar it missed, and the remedy. */ + export function libNpmIneligibleDiag(pkg: string, reason: string, loc: SrcLoc): ScrDiagnostic { return { code: "SC4020", message: `library mode compiles npm packages statically or not at all, and '${pkg}' cannot compile statically: ${reason}`, loc, - hint: "library artifacts have no island/dynamic tier to fall back to — vendor the code you need from the package as project modules, or drop the dependency", + hint: "vendor compilable code from the package as project modules, or drop the dependency", }; } diff --git a/packages/compiler/src/diagnostics/envelope.test.ts b/packages/compiler/src/diagnostics/envelope.test.ts index 963e837a9..535fd5512 100644 --- a/packages/compiler/src/diagnostics/envelope.test.ts +++ b/packages/compiler/src/diagnostics/envelope.test.ts @@ -49,7 +49,7 @@ test("instantiations of one component fence share a root-cause group", () => { test("every diagnostic carries a category and a hint", () => { expect(categoryOf(diag("SC6001", "copy", 0))).toBe("divergence"); - expect(categoryOf(diag("SC2012", "engine", 0))).toBe("dynamic-only"); + expect(categoryOf(diag("SC2012", "api", 0))).toBe("unsupported"); expect(categoryOf(diag("SC0001", "TS error", 0))).toBe("invalid-source"); expect(categoryOf(diag("SC0001", "TS error", 0, { typeWorld: true }))).toBe("environment"); expect(categoryOf(diag("SC9001", "ice", 0))).toBe("internal"); diff --git a/packages/compiler/src/diagnostics/envelope.ts b/packages/compiler/src/diagnostics/envelope.ts index ef4edab3b..39b193dd0 100644 --- a/packages/compiler/src/diagnostics/envelope.ts +++ b/packages/compiler/src/diagnostics/envelope.ts @@ -23,14 +23,12 @@ export const DIAGNOSTICS_SCHEMA_VERSION = 1; /** What kind of problem a diagnostic reports, independent of its code band: * - invalid-source: the program itself is wrong (TypeScript errors, bad JSON modules) * - unsupported: valid TypeScript/JavaScript scriptc cannot compile yet - * - dynamic-only: compiles when the build embeds the dynamic engine (--dynamic) * - divergence: compiles, but the native program behaves differently from Node * - environment: project configuration, scriptc's type world, toolchain or target * - internal: a compiler bug */ export type DiagnosticCategory = | "invalid-source" | "unsupported" - | "dynamic-only" | "divergence" | "environment" | "internal"; @@ -99,6 +97,8 @@ export interface DiagnosticsEnvelope { stats?: { statementsTotal: number; statementsStatic: number; + /** Always 0: every compiled statement is native. Kept so schema + * version 1 consumers keep reading the same fields. */ statementsDynamic: number; statementsFailed: number; functionsSkipped: number; @@ -110,14 +110,6 @@ export interface DiagnosticsEnvelope { diagnostics: LocatedDiagnostic[]; } -/** Codes whose construct RUNS under --dynamic (the embedded engine). */ -export const DYNAMIC_CAPABLE_CODES: ReadonlySet = new Set([ - "SC2010", - "SC2011", - "SC2012", - "SC2013", -]); - /** The divergence band: compiles, but the program can behave differently * from Node. Warnings, never build failures. */ export function isDivergenceCode(code: string): boolean { @@ -127,7 +119,6 @@ export function isDivergenceCode(code: string): boolean { export function categoryOf(diag: ScrDiagnostic): DiagnosticCategory { const code = diag.code; if (isDivergenceCode(code)) return "divergence"; - if (DYNAMIC_CAPABLE_CODES.has(code)) return "dynamic-only"; if (code === "SC0001") return diag.typeWorld === true ? "environment" : "invalid-source"; if (code === "SC0003") return "invalid-source"; if (code === "SC0002" || code === "SC0004") return "environment"; diff --git a/packages/compiler/src/executable/executable-cache.test.ts b/packages/compiler/src/executable/executable-cache.test.ts index a287a7c5a..69b91bb4a 100644 --- a/packages/compiler/src/executable/executable-cache.test.ts +++ b/packages/compiler/src/executable/executable-cache.test.ts @@ -28,13 +28,11 @@ afterEach(async () => { const native: EarlyExecutableNativeFeatures = { backend: "llvm", - dynamic: false, regex: false, copying: false, textDecoderLegacy: false, fileHandle: false, fetch: true, - netIsland: false, zlib: false, assert: false, inspect: false, @@ -90,7 +88,6 @@ async function fixture(): Promise<{ outPath: join(dir, "entry"), emitIr: true, sanitize: false, - dynamic: false, backend: "llvm", npmStatic: null, ffiProfile: null, @@ -214,7 +211,6 @@ test("early executable keys isolate compile modes, paths, implementation, and FF const variants: EarlyExecutableCacheOptions[] = [ { ...f.options, emitIr: false }, { ...f.options, sanitize: true }, - { ...f.options, dynamic: true }, { ...f.options, optimization: "dev" }, { ...f.options, optimization: "speed" }, { ...f.options, detachedExit: true }, diff --git a/packages/compiler/src/executable/executable-cache.ts b/packages/compiler/src/executable/executable-cache.ts index 9542e6fa5..9620463ba 100644 --- a/packages/compiler/src/executable/executable-cache.ts +++ b/packages/compiler/src/executable/executable-cache.ts @@ -48,14 +48,12 @@ export interface EarlyExecutableNativeFeatures { backend: "llvm"; /** Omitted is the historical release posture. */ optimization?: "dev" | "speed"; - dynamic: boolean; workers?: boolean; regex: boolean; copying: boolean; textDecoderLegacy: boolean; fileHandle: boolean; fetch: boolean; - netIsland: boolean; zlib: boolean; assert: boolean; inspect: boolean; @@ -102,7 +100,6 @@ export interface EarlyExecutableCacheOptions { outPath: string; emitIr: boolean; sanitize: boolean; - dynamic: boolean; backend: "llvm"; /** Omitted is the historical release posture and preserves v1 keys. */ optimization?: "dev" | "speed"; @@ -162,13 +159,11 @@ export interface EarlyExecutableCachePublish extends EarlyExecutableCacheHit { } const BOOLEAN_NATIVE_KEYS = [ - "dynamic", "regex", "copying", "textDecoderLegacy", "fileHandle", "fetch", - "netIsland", "zlib", "assert", "inspect", @@ -217,7 +212,7 @@ function cacheKey(options: EarlyExecutableCacheOptions): string { resolve(options.outPath), options.emitIr ? "emit-ir" : "no-ir", options.sanitize ? "sanitize" : "plain", - options.dynamic ? "dynamic" : "static", + "static", options.backend, ...optimizationKeyParts(options.optimization), ...(options.strip ? ["strip"] : []), @@ -254,7 +249,7 @@ function routeKey(options: Omit entry.status === "refused"); + if (refused.length > 0) { + return fail( + refused.map((entry) => + npmStaticRefusalDiag( + entry.package, + entry.detail ?? "its static compilation was refused", + fe.npmImportSites.get(entry.package) ?? { file: entryPath, start: 0, end: 0 }, + ), + ), + ); + } if (fe.preflight.length > 0) return fail(fe.preflight); try { lowered = fe.lower({ - dynamic: opts.dynamic ?? false, targetPlatform: buildPlatform, ...(ffi !== null ? { ffiImports: ffi.functions } : {}), }); diff --git a/packages/compiler/src/frontend/analysis.ts b/packages/compiler/src/frontend/analysis.ts index 39b6b23e4..b38a267fa 100644 --- a/packages/compiler/src/frontend/analysis.ts +++ b/packages/compiler/src/frontend/analysis.ts @@ -1,3 +1,5 @@ +import { packageNameOfSpecifier } from "./workspace-registry.js"; +import { npmStaticRefusalDiag } from "../diagnostics/diagnostic.js"; import type { AnalyzeOptions, AnalyzeResult } from "../compile-types.js"; import { loadFfiProfile, type FfiProfile } from "../ffi/ffi-manifest.js"; import { provenanceSources } from "./provenance-registry.js"; @@ -18,11 +20,10 @@ export function analyzeWithFrontend( return { coverage: { file: entryPath, - dynamic: opts.dynamic ?? false, stats: { statementsTotal: 0, statementsFailed: 0, - statementsIsland: 0, + functionsSkipped: 0, }, diagnostics: loaded.diagnostics, @@ -38,11 +39,28 @@ export function analyzeWithFrontend( const emptyStats = { statementsTotal: 0, statementsFailed: 0, - statementsIsland: 0, + functionsSkipped: 0, }; - const preflight = fe.preflight; + const preflight = [ + ...fe.preflight, + ...fe.npmStatic + .filter( + (entry) => + entry.status === "refused" && + !Object.keys(opts.externalTypes ?? {}).some( + (specifier) => packageNameOfSpecifier(specifier) === entry.package, + ), + ) + .map((entry) => + npmStaticRefusalDiag( + entry.package, + entry.detail ?? "its static compilation was refused", + fe.npmImportSites.get(entry.package) ?? { file: entryPath, start: 0, end: 0 }, + ), + ), + ]; // Import-FORM fences don't stop the analysis: the module graph is still // computable (a fenced import contributes no edges), the imported // bindings poison at their use sites, and the fences join the blockers @@ -51,12 +69,11 @@ export function analyzeWithFrontend( // tsc errors, config incompatibilities, circular imports — still stops // at preflight (no trustworthy program to lower). Builds are unchanged: // compile() fails on every preflight diagnostic exactly as before. - const IMPORT_FENCES = new Set(["SC1010", "SC1012", "SC1013", "SC1014", "SC1015"]); + const IMPORT_FENCES = new Set(["SC1010", "SC1012", "SC1013", "SC1014", "SC1015", "SC2013"]); if (preflight.some((d) => !IMPORT_FENCES.has(d.code))) { return { coverage: { file: entryPath, - dynamic: opts.dynamic ?? false, stats: emptyStats, diagnostics: preflight, ...(fe.npmStatic.length > 0 ? { npmStatic: fe.npmStatic } : {}), @@ -70,7 +87,6 @@ export function analyzeWithFrontend( // (throwaway) so the report covers everything the source declares — with // the unreached share in its own group. const lowered = fe.lower({ - dynamic: opts.dynamic ?? false, coverage: true, targetPlatform: buildPlatform, ...(ffi !== null ? { ffiImports: ffi.functions } : {}), @@ -79,7 +95,6 @@ export function analyzeWithFrontend( return { coverage: { file: entryPath, - dynamic: opts.dynamic ?? false, stats: lowered.stats, // The import fences report as blockers alongside the statement-level // ones (use sites of the fenced bindings emit matching diagnostics, @@ -88,8 +103,6 @@ export function analyzeWithFrontend( ...(lowered.runtimeFences.length > 0 ? { runtimeFences: lowered.runtimeFences } : {}), ...(lowered.divergences !== undefined ? { divergences: lowered.divergences } : {}), ...(lowered.unreached ? { unreached: lowered.unreached } : {}), - ...(lowered.npmBuiltins ? { npmBuiltins: lowered.npmBuiltins } : {}), - ...(lowered.npmLazyTraps ? { npmLazyTraps: lowered.npmLazyTraps } : {}), ...(fe.npmStatic.length > 0 ? { npmStatic: fe.npmStatic } : {}), // --provenance-sources: the per-package attribution inputs (the // report aggregates statsByFile under each package's source dir). diff --git a/packages/compiler/src/frontend/cjs-syntax.ts b/packages/compiler/src/frontend/cjs-syntax.ts index e058508b2..8edd52b09 100644 --- a/packages/compiler/src/frontend/cjs-syntax.ts +++ b/packages/compiler/src/frontend/cjs-syntax.ts @@ -1,92 +1,3 @@ -/* Node's CommonJS named-export DETECTABILITY test — the compile-time - * answer to "which names can `import { x } from './cjs.js'` actually - * link?". Node never executes a CJS module to build its ESM facade: it - * lexes the source with its vendored CJS lexer (Node v24.15.0 vendors - * deps/merve, the native `cjs_lexer` binding that replaced the - * cjs-module-lexer wasm build; the detection patterns are FROZEN by - * upstream policy) and only the names that lexer detects become named - * exports. The checker sees the real export table, so it happily binds - * names the lexer cannot see — `module.exports = { a: 7 }` type-checks a - * named import of `a` that Node refuses at link time with a SyntaxError. - * This module mirrors merve's detection so the compiler can answer - * exactly what Node answers — for the program's own CJS files (program.ts - * gates the ESM instantiate graph) AND for the --dynamic island's embedded - * npm modules (npm.ts synthesizes each CJS facade from this lexer, so an - * embedded named import fails exactly where Node's would). - * - * The syntax pass consumes an owned native TypeScript AST. Detection still - * reads raw source wherever merve's byte quirks demand it; parser semantics - * never replace Node's export-detectability rules. - * - * The port is deliberately quirk-faithful — these all match probed Node - * v24.15.0 behavior, not what a clean reimplementation would choose: - * - `module.exports = { ... }` props scan LEFT TO RIGHT and the scan - * STOPS at the first prop it cannot shape — names added before the - * stop are kept, everything after is invisible. `{ vis: v, lit: 7 }` - * exports `vis` only; `{ lit: 7, vis: v }` exports nothing. - * - A prop VALUE must start with an identifier-ish token (an identifier, - * keyword, `require(...)` call — anything whose first character is - * [A-Za-z_$] or non-ASCII). Literals (`7`, `"s"`, backticks, arrows' - * `(`) stop the scan WITHOUT adding the key. - * - After an accepted value the lexer consumes ONE identifier run and - * requires the very next CHARACTER to be `,` or `}` — `a: b, c: d` - * keeps both, `a: b , c: d` keeps only `a` (the space stops the scan), - * `a: o.x` / `a: f()` keep `a` and stop. - * - A `require('spec')` VALUE adds the key, records the spec as a - * REEXPORT, and stops the scan unconditionally — `{ a: require('x'), - * b: v }` exports `a` plus x's names, never `b`. Trailing tokens on the - * require (`.foo`, `()`, `|| y`) change nothing. - * - `get name() {...}` stops the scan cold (no add); `set name(v) {}` - * adds the literal name "set" and stops; `async name() {}` adds - * "async" and stops; a plain method `name() {}` adds `name` and stops. - * - `exports.NAME = ` / `module.exports.NAME = ` / the ['string'] forms - * match ANYWHERE in the file — nested functions, dead branches — with - * no scope analysis, and nothing ever removes a detected name. - * - `module.exports = require('./x')` records a REEXPORT whenever the - * require call is the LEADING token of the right-hand side — trailers - * (`.foo`, `()`, `|| {}`, `? a : b`) are ignored, but a leading `(` - * breaks the match (`(require('x'))` records nothing). Node resolves - * each reexport and unions the target's detected names when the target - * is itself CommonJS. Every `module.exports =` assignment CLEARS the - * pending reexport list first — including star-pattern reexports - * recorded earlier — so only reexports at or after the last assignment - * count, while detected export NAMES accumulate across everything. - * - `Object.defineProperty(exports, 'n', {...})` adds `n` for the exact - * descriptor shapes merve accepts: optional leading `enumerable: true` - * then `value:` (anything), or a getter whose whole body is `return - * IDENT` / `return IDENT.IDENT` / `return IDENT['str']` and which is - * the descriptor's last property. Unlike cjs-module-lexer 2.2.0, a - * NON-matching defineProperty of the same name elsewhere does NOT - * poison the valid one (probed: Node keeps the export). - * - The transpiler star-reexport patterns ARE detected (tsc/babel output - * all over npm depends on them): - * · `__export(require('x'))` / `__exportStar(require('x'), exports)` - * — callee is the bare identifier or any member chain ending in - * one of those two exact names, at TOP LEVEL (brace depth 0 — an - * unbraced `if (c) __exportStar(...)` still counts, a braced block - * does not), and the source bytes must read `NAME(require` with NO - * whitespace or comment between the name, the `(`, and `require` - * (probed: one space kills the match; spaces anywhere inside the - * require call are fine). - * · The Babel copy loop: a top-level `var/const/let ID = - * [_interopRequireWildcard(]require('x')[)]` (ID the FIRST - * declarator; `_interopRequireWildcard` bare and byte-adjacent to - * `(require` like the star form) linked by ID to a top-level - * `Object.keys(ID).forEach(function (KEY) {...})` whose body is - * byte-for-byte one of merve's copy shapes: the `if (KEY === - * 'default' || KEY === '__esModule') return;` filter (exact order, - * unbraced return) with optional hasOwnProperty / in-exports - * guards, or the single `if (KEY !== 'default' [&& !hasOwn]) copy` - * form; the copy either `EXPORTS[KEY] = ID[KEY]` or the - * enumerable-getter defineProperty. Named callbacks, arrow - * callbacks, braced returns, and reordered filters all miss. - * The reexport's clearing position is the LOOP's, not the var's. - * NOT modeled: cjs-module-lexer 2.2.0's phantom "get" export for an - * identifier-named getter in the table (`{ get a() {} }` exports nothing - * in Node — but `get [k]() {}` / `get "a"() {}` DO export the word "get", - * because the name token stops the lexer after it took `get` as a - * shorthand key). */ - import * as ts from "./ts7/syntax.js"; export interface CjsLexedExports { diff --git a/packages/compiler/src/frontend/dts-paths.ts b/packages/compiler/src/frontend/dts-paths.ts index d3ad02b2a..064cb9b85 100644 --- a/packages/compiler/src/frontend/dts-paths.ts +++ b/packages/compiler/src/frontend/dts-paths.ts @@ -26,7 +26,7 @@ function declarationPath(name: string): string { } /** Path of the shipped ambient declarations — the always-shipped CORE - * (comptime/__island_eval, setTimeout). Part of EVERY program scriptc + * (comptime, setTimeout). Part of EVERY program scriptc * builds, the project-world preflight program included. */ export function ambientDtsPath(): string { return declarationPath("scriptc.d.ts"); diff --git a/packages/compiler/src/frontend/lowering/abstract-equality.ts b/packages/compiler/src/frontend/lowering/abstract-equality.ts index 46fd7079b..6c74b3546 100644 --- a/packages/compiler/src/frontend/lowering/abstract-equality.ts +++ b/packages/compiler/src/frontend/lowering/abstract-equality.ts @@ -59,12 +59,7 @@ function supportsPair(lowerer: Lowerer, left: IrType, right: IrType): boolean { } if (isUnitType(left) || isUnitType(right)) { const other = isUnitType(left) ? right : left; - return ( - other.kind !== "dyn" && - other.kind !== "jsval" && - other.kind !== "caught" && - other.kind !== "void" - ); + return other.kind !== "dyn" && other.kind !== "caught" && other.kind !== "void"; } if (PRIMITIVE_KINDS.has(left.kind) && PRIMITIVE_KINDS.has(right.kind)) return true; diff --git a/packages/compiler/src/frontend/lowering/array-values.ts b/packages/compiler/src/frontend/lowering/array-values.ts index a682e0401..27d25f96c 100644 --- a/packages/compiler/src/frontend/lowering/array-values.ts +++ b/packages/compiler/src/frontend/lowering/array-values.ts @@ -6,7 +6,6 @@ import { type IrExpr, type IrStmt, type IrType, - JSVAL, isIntegerBytesElem, type SrcLoc, UNDEFINED_T, @@ -35,7 +34,7 @@ export function currentArrayIndexPresent(arrType: IrType, loc: SrcLoc): IrExpr { /** The value yielded by a JavaScript array read, independent of its slot's storage type. */ export function arrayValueType(lowerer: Lowerer, elem: IrType): IrType { - if (elem.kind === "jsval" || elem.kind === "dyn") return elem; + if (elem.kind === "dyn") return elem; return elem.kind === "union" ? (lowerer.withUndefinedArmOf(elem) ?? elem) : lowerer.withUndefinedArm(elem); @@ -52,11 +51,7 @@ export function arrayValueRead( const type = arrayValueType(lowerer, elem); const read: IrExpr = { kind: "arrayGet", arr, index, type: elem, loc }; const missing: IrExpr = - type.kind === "jsval" - ? { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc } - : type.kind === "dyn" - ? dynUndefinedExpr(loc) - : lowerer.wrappedUndefined(type, loc)!; + type.kind === "dyn" ? dynUndefinedExpr(loc) : lowerer.wrappedUndefined(type, loc)!; return { kind: "ternary", cond: { @@ -100,13 +95,7 @@ export function unionArrayValueRead( if ( joined.length > 1 && (!unionContainerArmsOk(joined) || - joined.some( - (arm) => - arm.kind === "dyn" || - arm.kind === "jsval" || - arm.kind === "generator" || - arm.kind === "caught", - )) + joined.some((arm) => arm.kind === "dyn" || arm.kind === "generator" || arm.kind === "caught")) ) return null; const type: IrType = diff --git a/packages/compiler/src/frontend/lowering/builtins/arguments.ts b/packages/compiler/src/frontend/lowering/builtins/arguments.ts index 62c72f9ea..3fea2ca99 100644 --- a/packages/compiler/src/frontend/lowering/builtins/arguments.ts +++ b/packages/compiler/src/frontend/lowering/builtins/arguments.ts @@ -156,19 +156,6 @@ export function lowerBuiltinOptionalDefault( } return lowerer.coerceInto(node, value, expected); } -/* ── node:module — createRequire's static erasure ───────────────────── - * The config/version-reading pattern real CLIs ship: - * import { createRequire } from "node:module"; - - * const require = createRequire(import.meta.url); - * const pkg = require("../package.json"); - * A compiled program's module graph is fixed at build time, so the - * indirection ERASES where the required specifier is a static string - * literal naming something the compiler already handles: a builtin (the - * binding is a namespace import in const clothing), a relative .json - * document (the file bakes and parses like JSON.parse of its text), or - * an installed npm package (the island's require-condition entry under - * --dynamic). Dynamic specifiers and other targets fence by name. */ /** Strips the type-only wrappers the require pattern rides in typed * code (`require("node:os") as typeof import("node:os")` — the diff --git a/packages/compiler/src/frontend/lowering/builtins/crypto.ts b/packages/compiler/src/frontend/lowering/builtins/crypto.ts index edafd0d8d..fa1fc91a3 100644 --- a/packages/compiler/src/frontend/lowering/builtins/crypto.ts +++ b/packages/compiler/src/frontend/lowering/builtins/crypto.ts @@ -183,10 +183,6 @@ function cryptoKdfInput(lowerer: Lowerer, node: ts.Expression): IrExpr { ); } -/** The node:crypto utility and introspection statics. Hash/Hmac are real - * native handles; one-shot hashing, constant-time equality, random-fill/ - * integer, and PBKDF2 share the same runtime primitives as the island. - * The name lists remain build-time constants. */ export function lowerCryptoModuleCall( lowerer: Lowerer, expr: ts.CallExpression, diff --git a/packages/compiler/src/frontend/lowering/builtins/json.ts b/packages/compiler/src/frontend/lowering/builtins/json.ts index 0c5c487fe..4f9d757ac 100644 --- a/packages/compiler/src/frontend/lowering/builtins/json.ts +++ b/packages/compiler/src/frontend/lowering/builtins/json.ts @@ -8,7 +8,6 @@ import { BOOL, DYN, type IrExpr, - JSVAL, STRING, type SrcLoc, canBoxFuncIntoDyn, @@ -178,47 +177,7 @@ export function lowerJsonMethodCall( ? { kind: "toString", operand: raw, type: STRING, loc } : { kind: "dynCheck", value: raw, type: lowerer.withUndefinedArm(STRING), loc }; } - // An ISLAND value (`JSON.stringify(err)` on a package handle — the - // island error-inspection idiom): the ENGINE's own JSON.stringify - // runs, so key order, nesting, toJSON, and getters match Node by - // construction, and the result converts to a static string through - // the engine's own ToString — a root the stringify DROPS (undefined, - // a bare function, a symbol) produces the TEXT "undefined" where - // Node produces the undefined VALUE, exactly the dyn-root rule - // (SEMANTICS.md 285: tsc's own lib types the return `string`, so no - // statically-typed consumer can distinguish them). The compile-time- - // resolved indent rides as the engine's own space argument. - if (value.type.kind === "jsval") { - const json: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "JSON", - args: [], - type: JSVAL, - loc, - }; - const args: IrExpr[] = [json, value]; - if (indent !== "") { - args.push( - { kind: "jsOp", op: "nullLit", args: [], type: JSVAL, loc }, - { - kind: "jsMarshal", - value: { kind: "strLit", value: indent, type: STRING, loc }, - type: JSVAL, - loc, - }, - ); - } - const raw: IrExpr = { - kind: "jsOp", - op: "callMethod", - name: "stringify", - args, - type: JSVAL, - loc, - }; - return { kind: "jsOp", op: "toStr", args: [raw], type: STRING, loc }; - } + if (!lowerer.jsonStringifySafe(value.type)) { // Bare undefined-armed unions get their own wording: Node's // stringify of bare undefined is not a string at all — per-type diff --git a/packages/compiler/src/frontend/lowering/builtins/module-resolution.ts b/packages/compiler/src/frontend/lowering/builtins/module-resolution.ts index 60bb80393..f1b36e3c6 100644 --- a/packages/compiler/src/frontend/lowering/builtins/module-resolution.ts +++ b/packages/compiler/src/frontend/lowering/builtins/module-resolution.ts @@ -17,7 +17,7 @@ import { import { invalidJsonModuleDiag, nativeAddonDiag, - requiresDynamicImportDiag, + unsupportedPackageImportDiag, } from "../../../diagnostics/diagnostic.js"; import { NODE_BUILTIN_MODULES_V24 } from "../surfaces.js"; import { @@ -25,7 +25,6 @@ import { DYN, type IrExpr, type IrType, - JSVAL, NULL_T, STRING, type SrcLoc, @@ -81,11 +80,7 @@ export function lowerNodeModuleCall( const argumentNode = expr.arguments[0]!; const argument = lowerer.lowerExpr(argumentNode); if (argument.type.kind !== "string") { - if ( - argument.type.kind === "dyn" || - argument.type.kind === "jsval" || - argument.type.kind === "union" - ) { + if (argument.type.kind === "dyn" || argument.type.kind === "union") { lowerer.noLowering( "module.isBuiltin with a runtime-polymorphic argument", argumentNode, @@ -138,21 +133,6 @@ export function lowerNodeModuleCall( }; } -/** `require("spec")` through a createRequire binding — the erasure per - * target. Builtins are reached here only OUTSIDE the const-namespace- - * binding shape (that declaration erases; member uses resolve through - * the namespace tables) and fence toward it. A relative .json document - * bakes: the file's text validates as JSON at compile time and the - * call lowers to json.parse over the baked literal — JSON.parse's - * checked-dynamic `unknown` stance, and exactly Node's value (require - * of JSON IS JSON.parse of the file; the per-call re-parse forgoes - * Node's module-cache identity, unobservable without mutation). A bare - * specifier NOTHING installed resolves compiles to Node's catchable - * MODULE_NOT_FOUND throw (the optional-dependency try/require - * pattern); an installed package loads through the island's - * require-condition entry under --dynamic (collectCreateRequires - * embedded it) and reports the requires-dynamic diagnostic in a static - * build. Null when the callee is not a createRequire require. */ export function lowerCreateRequireCall( lowerer: Lowerer, call: ts.CallExpression, @@ -260,31 +240,10 @@ export function lowerCreateRequireCall( // pending check's unwind). return nodeThrowExpr(0, "MODULE_NOT_FOUND", refusal.message, DYN, loc); } - if (!lowerer.dynamic) { - lowerer.pushDiag(requiresDynamicImportDiag(pkgName, loc)); + { + lowerer.pushDiag(unsupportedPackageImportDiag(pkgName, loc)); throw new PoisonError(); } - const res = lowerer.createRequireImports.get(`${cr.baseFile.fileName}\u0000${spec}`); - if (res === undefined) { - // Collection never saw the site (a shape this walk and that walk - // disagree on) — fence rather than mis-embed. - lowerer.noLowering(`createRequire's require of '${spec}'`, call, undefined); - } - if (res === "") throw new PoisonError(); // reported at collection - // A CJS facade's default IS module.exports (Node's require answer); - // an ESM-resolved entry answers its namespace (Node's require(esm)). - const exportName = res.format === "esm" ? "*" : "default"; - return { - kind: "libCall", - fn: "island.import", - args: [ - { kind: "strLit", value: res.entryKey, type: STRING, loc }, - { kind: "strLit", value: exportName, type: STRING, loc }, - { kind: "strLit", value: spec, type: STRING, loc }, - ], - type: JSVAL, - loc, - }; } function staticString(node: ts.Expression | undefined): string | null { diff --git a/packages/compiler/src/frontend/lowering/builtins/numbers.ts b/packages/compiler/src/frontend/lowering/builtins/numbers.ts index 42d537e26..c82509834 100644 --- a/packages/compiler/src/frontend/lowering/builtins/numbers.ts +++ b/packages/compiler/src/frontend/lowering/builtins/numbers.ts @@ -2,7 +2,7 @@ import * as ts from "../../ts7/adapter.js"; import { type Lowerer, own } from "../lowerer.js"; import { lowerCheckedPredicateValue } from "../lower-builtin-values.js"; import { locOf } from "../../program.js"; -import { BOOL, F64, type IrExpr, type IrLibFn, JSVAL } from "../../../ir/ir.js"; +import { BOOL, F64, type IrExpr, type IrLibFn } from "../../../ir/ir.js"; import { lowerBuiltinValuePreservingUndefined, lowerOptionalNumberPredicate } from "./arguments.js"; import { tryLowerExpression } from "../expressions/try-lower-expression.js"; import { lowerStaticNumberGlobal } from "../lower-calls.js"; @@ -43,12 +43,6 @@ const NUMBER_CONSTANTS: Record = { NEGATIVE_INFINITY: -Infinity, }; -/** Method calls on THE `Number` global: the predicate statics lower to - * plain C over f64 arguments; `Number.parseFloat`/`Number.parseInt` ARE - * the global parsers (the spec aliases them), so they get the same - * island lowering — engine execution under --dynamic, per-site SC2012 - * without it (parseInt takes an explicit radix, like the global). Null - * for non-Number receivers. */ export function lowerNumberStaticCall( lowerer: Lowerer, call: ts.CallExpression, @@ -65,31 +59,7 @@ export function lowerNumberStaticCall( } const argNode = call.arguments[0]!; const arg = lowerBuiltinValuePreservingUndefined(lowerer, argNode); - // An ISLAND ('any'-typed) argument evaluates the predicate in the - // engine — the statics never coerce, so the engine's answer over the - // real value is JS-exact where a static fence would refuse the - // editorconfig `(value) => Number.isSafeInteger(value)` shape; the - // boolean exits validated like every island boolean. - if (arg.type.kind === "jsval") { - lowerer.requireDynamicApi(`'Number.${member}'`, call); - const numberGlobal: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "Number", - args: [], - type: JSVAL, - loc, - }; - const raw: IrExpr = { - kind: "jsOp", - op: "callMethod", - name: member, - args: [numberGlobal, arg], - type: JSVAL, - loc, - }; - return { kind: "jsExit", value: raw, type: BOOL, loc }; - } + const optional = lowerOptionalNumberPredicate(lowerer, arg, fn, loc); if (optional) return optional; if (arg.type.kind !== "f64") { @@ -112,40 +82,21 @@ export function lowerNumberStaticCall( } // Number.parseFloat/Number.parseInt ARE the global parsers: over a // string argument they lower to the same static parse (parseInt with - // its explicit radix); only the coercing argument shapes need the - // engine. + // its explicit radix); only the coercing argument shapes are refused. const probed = tryLowerExpression(lowerer, call.arguments[0]!); if (probed !== null && isStringLike(lowerer, probed.type)) { const parsed = lowerStaticNumberGlobal(lowerer, member, call, call.arguments, loc); if (parsed !== null) return parsed; } - const argText = lowerer.dynamic - ? "" - : probed !== null + const argText = + probed !== null ? lowerer.fmt(probed.type) : lowerer.checker.typeToString(lowerer.checker.getTypeAtLocation(call.arguments[0]!)); - lowerer.requireDynamicApi( - `'Number.${member}' with a '${argText}' argument (only a string argument compiles statically)`, + lowerer.refuseUnsupportedApi( + `'Number.${member}' with a '${argText}' argument`, call, - "convert the argument explicitly first (for example String(x), or narrow the union), or build with --dynamic to run the coercing call in the embedded engine (adds ~620KB to the binary)", + "only a string argument compiles statically: convert the argument explicitly first (for example String(x), or narrow the union)", ); - const callee: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: member, - args: [], - type: JSVAL, - loc, - }; - const args = call.arguments.map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a)); - const result: IrExpr = { - kind: "jsOp", - op: "callFn", - args: [callee, ...args], - type: JSVAL, - loc, - }; - return { kind: "jsExit", value: result, type: F64, loc }; } return null; // other Number statics land on the member fence } diff --git a/packages/compiler/src/frontend/lowering/builtins/promises.ts b/packages/compiler/src/frontend/lowering/builtins/promises.ts index 028527b3a..9689fa1ec 100644 --- a/packages/compiler/src/frontend/lowering/builtins/promises.ts +++ b/packages/compiler/src/frontend/lowering/builtins/promises.ts @@ -1,6 +1,6 @@ import { checkedPromiseAll } from "../checked-promise-all.js"; import * as ts from "../../ts7/adapter.js"; -import { type Lowerer, PoisonError } from "../lowerer.js"; +import { type Lowerer } from "../lowerer.js"; import { isJsSourceFile, locOf } from "../../program.js"; import { DYN, @@ -8,7 +8,6 @@ import { type IrFunction, type IrStmt, type IrType, - JSVAL, VOID, arrayOf, isUnitType, @@ -138,41 +137,8 @@ export function lowerPromiseStaticCall( }; return { kind: "intrinsic", name: "promise.all", args: [entriesArr], type: resultT, loc }; } - // MIXED entries where some entry is already an ISLAND value (the - // withPlugins shape: Promise.all([loadBuiltinPlugins(), - // loadPlugins(plugins)]) with an 'any'-typed loader): the - // ENGINE's own Promise.all runs — island entries pass through, - // STATIC promises cross as real engine thenables (the reverse - // bridge, payload-domain gated), plain values marshal per the - // boundary — and the combined result stays an island value - // (awaiting it rides the island→static promise bridge; element - // reads are the routed keyed ops). All-static tuples keep the - // typed fence hint below. --dynamic only by construction: jsval - // entries exist only there. - if (lowerer.dynamic && elems.some((e) => e.type.kind === "jsval" || e.type.kind === "dyn")) { - const diagsBefore = lowerer.diags.length; - try { - const marshaled = argNode.elements.map((el, i) => lowerer.jsvalIn(elems[i]!, el)); - return { - kind: "jsOp", - op: "callMethod", - name: "all", - args: [ - { kind: "jsOp", op: "globalGet", name: "Promise", args: [], type: JSVAL, loc }, - { kind: "jsOp", op: "arrLit", args: marshaled, type: JSVAL, loc }, - ], - type: JSVAL, - loc, - }; - } catch (err) { - // An entry outside every crossing domain: drop the boundary - // diagnostics and let the shape fence below name the fix. - if (!(err instanceof PoisonError)) throw err; - lowerer.diags.splice(diagsBefore); - } - } + if ( - !lowerer.dynamic && isJsSourceFile(call.getSourceFile()) && elems.every((entry) => lowerer.dynConvertible(entry.type)) ) { @@ -194,38 +160,13 @@ export function lowerPromiseStaticCall( ); } const entries = lowerer.lowerExpr(argNode); - if (!lowerer.dynamic && isJsSourceFile(call.getSourceFile()) && entries.type.kind === "dyn") + if (isJsSourceFile(call.getSourceFile()) && entries.type.kind === "dyn") return checkedPromiseAll(lowerer, entries, loc); - // A NON-literal island argument (`Promise.all(plugins.map((p) => + // loadPlugin(p)))` — the loadPlugins shape, where the checker // spells `any[]`): the ENGINE's own Promise.all runs over the // marshaled array (an 'any' value passes through; an `any[]` value - // lifts per element by reference), the result staying an island - // value the static side awaits through the island→static bridge. - if ( - entries.type.kind === "jsval" || - (lowerer.dynamic && entries.type.kind === "dyn") || - (entries.type.kind === "array" && entries.type.elem.kind === "jsval") - ) { - const diagsBefore = lowerer.diags.length; - try { - const arg = lowerer.jsvalIn(entries, argNode); - return { - kind: "jsOp", - op: "callMethod", - name: "all", - args: [ - { kind: "jsOp", op: "globalGet", name: "Promise", args: [], type: JSVAL, loc }, - arg, - ], - type: JSVAL, - loc, - }; - } catch (err) { - if (!(err instanceof PoisonError)) throw err; - lowerer.diags.splice(diagsBefore); - } - } + if (entries.type.kind !== "array" || entries.type.elem.kind !== "promise") { // The heterogeneous-literal case: the checker's tuple overload // types the literal as a TUPLE of promises (a tuple-flagged record diff --git a/packages/compiler/src/frontend/lowering/builtins/workers.ts b/packages/compiler/src/frontend/lowering/builtins/workers.ts index 162b3ab9f..e2f22bfcc 100644 --- a/packages/compiler/src/frontend/lowering/builtins/workers.ts +++ b/packages/compiler/src/frontend/lowering/builtins/workers.ts @@ -56,7 +56,7 @@ export function lowerWorkerNew(lowerer: Lowerer, expression: ts.NewExpression): "the worker entry must resolve to a statically compiled source file", ); } - if (lowerer.dynamic || lowerer.targetPlatform === "wasi") { + if (lowerer.targetPlatform === "wasi") { lowerer.noLowering( "Worker execution in this target", expression, diff --git a/packages/compiler/src/frontend/lowering/call-arguments.ts b/packages/compiler/src/frontend/lowering/call-arguments.ts index 09a259228..fe1336cab 100644 --- a/packages/compiler/src/frontend/lowering/call-arguments.ts +++ b/packages/compiler/src/frontend/lowering/call-arguments.ts @@ -9,7 +9,6 @@ import { type IrExpr, type IrStmt, type IrType, - JSVAL, STRING, type SrcLoc, UNDEFINED_T, @@ -43,14 +42,6 @@ function fixedTupleSpreadInfo( }; } -/** CALL-SITE COMPLETION — the frontend half of the one-signature contract - * (docs/ir.md): typed calls lower to the callee's full ABI parameter - * list, so backends and the validator stay count-exact. Dynamic and island - * calls retain their runtime arity handling. Omitted trailing args for omittable - * params become the interned undefined arm (which is also what an - * explicitly-passed `undefined` wraps to — both trigger a default, JS- - * exact); a rest param packs the surplus args (possibly zero) into one - * array literal, evaluated in source order at the call site. */ export function completeArgs( lowerer: Lowerer, argNodes: readonly ts.Expression[], @@ -245,11 +236,7 @@ export function completeArgs( }); } const restAt = shapes.findIndex( - (s) => - s.mode === "rest" || - s.mode === "dynRest" || - s.mode === "islandRest" || - s.mode === "arguments", + (s) => s.mode === "rest" || s.mode === "dynRest" || s.mode === "arguments", ); const positional = restAt >= 0 ? shapes.slice(0, restAt) : [...shapes]; if (restAt >= 0 && shapes[restAt]!.mode === "arguments") { @@ -337,19 +324,7 @@ export function completeArgs( if (shape.callDefault) return shape.callDefault; return lowerer.undefinedArgFor(shape.type, loc, blame); }); - if (restAt >= 0 && shapes[restAt]!.mode === "islandRest") { - // The ISLAND variadic pack: surplus arguments marshal into one - // fresh ENGINE array — exactly what the REST host-call adapter - // hands the closure for indirect calls. - const elems = sources.slice(restAt).map((a): IrExpr => { - if (isIr(a)) return lowerer.coerceInto(blame, a.ir, JSVAL); - if (ts.isSpreadElement(a)) { - lowerer.unsupported("SC1090", a, "spread arguments into an island rest parameter"); - } - return lowerer.lowerExprExpecting(a, JSVAL); - }); - out.push({ kind: "jsOp", op: "arrLit", args: elems, type: JSVAL, loc }); - } else if (restAt >= 0 && shapes[restAt]!.mode === "dynRest") { + if (restAt >= 0 && shapes[restAt]!.mode === "dynRest") { // The VARIADIC dyn pack (a JS `...args` with no static element // type, or the synthetic `arguments` slot): surplus arguments // convert through the dyn boundary into one fresh dyn array — @@ -501,14 +476,10 @@ export function wrappedUndefined(lowerer: Lowerer, type: IrType, loc: SrcLoc): I /** The synthesized argument for an omitted omittable param: the interned * undefined arm of the param's `T | undefined` ABI union, or the checked-dynamic tree * undefined for a checked-dynamic param (`bar?: any`). */ -/** The "absent argument" value for a param SLOT type, or null when the - * slot cannot hold one: the interned undefined arm for undefined-armed - * unions, the dyn undefined for checked-dynamic slots, the engine's own - * undefined for island slots. Shared by every call-completion loop - * (direct calls and calls through func-typed values). */ + export function omittedArgFor(lowerer: Lowerer, type: IrType, loc: SrcLoc): IrExpr | null { if (type.kind === "dyn") return dynUndefinedExpr(loc); - if (type.kind === "jsval") return { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc }; + return lowerer.wrappedUndefined(type, loc); } @@ -559,9 +530,7 @@ export function undefinedArgFor( blame: ts.Node, ): IrExpr { if (type.kind === "dyn") return dynUndefinedExpr(loc); - // An omitted argument for an ISLAND-typed omittable param (`f()` where - // f's `x = a` default is jsval-shaped): the engine's own undefined. - if (type.kind === "jsval") return { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc }; + const wrapped = lowerer.wrappedUndefined(type, loc); if (!wrapped) { // Omittable params always carry an undefined-armed union (paramShape @@ -571,29 +540,6 @@ export function undefinedArgFor( return wrapped; } -/** The RUNTIME-ARITY spread call — `f(...args)`, the rest-forwarding idiom - * (`const f = (...args) => from(...args)`): a spread whose length is a - * runtime fact has no home in the compile-time completion, so the call - * rides a dynamic boundary instead. Two lanes, picked by the spread - * source's tier: - * - * - CHECKED-DYNAMIC (dyn spread sources — a JS rest binding, a dyn - * value): box the callee (dynFrom; a dyn callee is already boxed), - * convert every argument into dyn, and emit the spread-marked dynCall - * — the emitters build one fresh dyn argument array (spreads flatten - * left-to-right, non-iterables throw V8's TypeError) and apply through - * it; the boxed thunk delivers JS arity exactly. Result dyn, checked - * per use like every any-origin value. - * - ISLAND (a jsval spread source — the --dynamic rest binding is the - * engine's own arguments array): marshal the callee in and emit jsOp - * callSpread — the prelude helper's REAL `f(...pre, ...s)`, so - * iterator protocols and the not-iterable TypeError are the engine's - * own. One trailing spread after the fixed arguments is the modeled - * shape (exactly the forwarding idiom). - * - * Answers null when neither lane fits (typed .ts spreads keep - * completeArgs' rest packing and its fences). JS sources only — the - * same guard as the over-arity dynCall precedent. */ export function lowerSpreadArgsCall( lowerer: Lowerer, expr: ts.CallExpression, @@ -602,8 +548,7 @@ export function lowerSpreadArgsCall( ): IrExpr | null { if (!isJsSourceFile(expr.getSourceFile())) return null; if (!expr.arguments.some((a) => ts.isSpreadElement(a))) return null; - if (callee.type.kind !== "dyn" && callee.type.kind !== "func" && callee.type.kind !== "jsval") - return null; + if (callee.type.kind !== "dyn" && callee.type.kind !== "func") return null; const calleeName = ts.isPropertyAccessExpression(expr.expression) || ts.isElementAccessExpression(expr.expression) ? expr.expression.getText() @@ -620,7 +565,7 @@ export function lowerSpreadArgsCall( const spreadParts = parts.filter((p) => p.spreadOf !== null); const getR = (id: string) => lowerer.shapes.get(id); const getU = (id: string) => lowerer.unions.get(id); - const anyJsvalSpread = spreadParts.some((p) => p.v.type.kind === "jsval"); + const anyJsvalSpread = spreadParts.some((_p) => false); if ( !anyJsvalSpread && (callee.type.kind === "dyn" || @@ -643,37 +588,8 @@ export function lowerSpreadArgsCall( callee.type.kind === "dyn" ? callee : lowerer.coerceInto(expr.expression, callee, DYN); return { kind: "dynCall", callee: boxed, calleeName, args, spreads, type: DYN, loc }; } - if ( - spreadParts.length > 0 && - (spreadParts.every((p) => p.v.type.kind === "jsval") || - (callee.type.kind === "func" && callee.type.restAbi === "jsval")) && - (callee.type.kind === "jsval" || callee.type.kind === "func") - ) { - if (spreadParts.length !== 1 || parts[parts.length - 1]!.spreadOf === null) { - lowerer.unsupported( - "SC1090", - expr, - "spread arguments before positional arguments in island calls (one trailing spread after the fixed arguments is the supported form)", - ); - } - const f = lowerer.coerceInto(expr.expression, callee, JSVAL); - const pre: IrExpr[] = parts.slice(0, -1).map((p) => lowerer.coerceInto(p.node!, p.v, JSVAL)); - const preArr: IrExpr = { kind: "jsOp", op: "arrLit", args: pre, type: JSVAL, loc }; - const last = parts[parts.length - 1]!; - // The spelling rides in `name` for V8's nullish spread-call - // TypeError ("v is not iterable (cannot read property ...)"). - return { - kind: "jsOp", - op: "callSpread", - name: last.spreadOf!.getText(), - args: [f, preArr, lowerer.coerceInto(last.spreadOf!, last.v, JSVAL)], - type: JSVAL, - loc, - }; - } - // No lane fits (a spread source outside both tiers, a callee neither - // boxable nor marshalable, mixed dyn/jsval spreads): fence HERE — the - // arguments are already lowered, and falling back to the historical + // No native spread-call form fits. Arguments are already lowered, so + // falling back to the historical // per-site fences would lower them a second time (duplicate lambda // lifts, duplicated diagnostics). lowerer.unsupported("SC1090", expr, "spread arguments"); @@ -681,7 +597,7 @@ export function lowerSpreadArgsCall( /** True when a spread argument lands where the compile-time completion * cannot take it — a FIXED parameter position, or a dynamic rest slot - * (dynRest/islandRest, whose packs are built per-argument): the shapes + * (dynRest, whose packs are built per-argument): the shapes * the runtime-arity lane (lowerSpreadArgsCall) serves. Typed `rest` * slots keep completeArgs' same-element spread packing. */ export function spreadNeedsRuntimeArity( @@ -689,9 +605,7 @@ export function spreadNeedsRuntimeArity( shapes: readonly ParamShape[], argNodes: readonly ts.Expression[], ): boolean { - const restAt = shapes.findIndex( - (s) => s.mode === "rest" || s.mode === "dynRest" || s.mode === "islandRest", - ); + const restAt = shapes.findIndex((s) => s.mode === "rest" || s.mode === "dynRest"); let position = 0; for (const arg of argNodes) { if (ts.isSpreadElement(arg)) { @@ -764,7 +678,7 @@ function typedRestAfterSpreads( function canReadHolesInto(lowerer: Lowerer, from: IrType, to: IrType): boolean { if (from.kind !== "array" || to.kind !== "array" || typeEquals(from, to)) return false; const elem = from.elem; - if (elem.kind === "dyn" || elem.kind === "jsval") return false; + if (elem.kind === "dyn") return false; return typeEquals(arrayValueType(lowerer, elem), to.elem); } @@ -810,7 +724,6 @@ function canCompleteRuntimeSpread(lowerer: Lowerer, shapes: readonly ParamShape[ shapes.length > 0 && shapes.every( (shape) => - shape.mode !== "islandRest" && shape.callDefault === undefined && canDynCheckTo( shape.type, diff --git a/packages/compiler/src/frontend/lowering/call-signatures.ts b/packages/compiler/src/frontend/lowering/call-signatures.ts index db4b2212b..800e2279d 100644 --- a/packages/compiler/src/frontend/lowering/call-signatures.ts +++ b/packages/compiler/src/frontend/lowering/call-signatures.ts @@ -7,10 +7,8 @@ import { type IrExpr, type IrFunction, type IrType, - JSVAL, UNDEFINED_T, VOID, - canMarshalTypedFuncIntoIsland, isUnitType, typeEquals, } from "../../ir/ir.js"; @@ -33,7 +31,7 @@ import { implicitMonoFile, implicitAnyParamSymbolsOf } from "./generic-functions * `rest` (always last) receives the surplus arguments packed into one array * literal at each call site. `arguments` is a hidden slot containing every * actual argument, including those bound to named parameters. */ -export type ParamMode = "required" | "omittable" | "rest" | "dynRest" | "islandRest" | "arguments"; +export type ParamMode = "required" | "omittable" | "rest" | "dynRest" | "arguments"; /** One parameter of a signature, as call sites and callee prologues see it. * `type` is the ABI type — what the emitted LLVM parameter carries: the @@ -64,11 +62,6 @@ export interface FnSig { generator?: { yieldT: IrType; nextT: IrType; resultType: IrType & { kind: "record" } }; } -/** The one func-type projection of completed parameter shapes. Typed rest - * parameters keep their packed array as the trailing native ABI slot and - * mark the value variadic so indirect call sites run completeArgs before - * callValue. Dynamic rest remains the historical hidden ScrDyn slot, while - * island rest spells its engine-array slot directly. */ export function funcTypeFromParamShapes( shapes: readonly ParamShape[], ret: IrType, @@ -76,18 +69,15 @@ export function funcTypeFromParamShapes( const typedRest = shapes.some((shape) => shape.mode === "rest"); const dynRest = shapes.some((shape) => shape.mode === "dynRest"); const argumentsAll = shapes.some((shape) => shape.mode === "arguments"); - const islandRest = shapes.some((shape) => shape.mode === "islandRest"); return { kind: "func", params: shapes .filter((shape) => shape.mode !== "dynRest" && shape.mode !== "arguments") .map((shape) => shape.type), ret, - ...(typedRest || dynRest || islandRest || argumentsAll ? { rest: true as const } : {}), + ...(typedRest || dynRest || argumentsAll ? { rest: true as const } : {}), ...(argumentsAll ? { argumentsAll: true as const } : {}), - ...(typedRest || islandRest - ? { restAbi: typedRest ? ("typed" as const) : ("jsval" as const) } - : {}), + ...(typedRest ? { restAbi: "typed" as const } : {}), }; } @@ -221,12 +211,6 @@ export function paramShape(lowerer: Lowerer, param: ts.ParameterDeclaration): Pa if (moduleNs !== undefined) { return { type: moduleNs, mode: param.questionToken ? "omittable" : "required" }; } - // Island-handle params (a then-handler receiving a dynamic import's - // namespace handle — markJsvalHandlerParams): jsval, whatever the - // contextual type spelled. - if (ts.isIdentifier(param.name) && lowerer.jsvalParamOverrides.has(param)) { - return { type: JSVAL, mode: param.questionToken ? "omittable" : "required" }; - } if (!ts.isIdentifier(param.name)) { // A destructuring pattern parameter — `([label, value]) => ...`, // `({ x }) => ...`. The ABI slot carries the SOURCE value (the @@ -273,15 +257,8 @@ export function paramShape(lowerer: Lowerer, param: ts.ParameterDeclaration): Pa // `rest`, and the value only ever calls through the boxed thunk). if (isJsSourceFile(param.getSourceFile())) { const restMapped = lowerer.mapTypeOf(lowerer.typeOf(param.name)); - // `any[]` under --dynamic maps to an island-element array — that - // is inference residue, not element information; the binding is - // the ENGINE's own arguments array (an island handle) and the - // value crosses as a REST host function (the withPlugins - // `async (...args) =>` shape). Static builds keep the variadic - // dyn form for every unmappable JS rest. - if (restMapped?.kind === "array" && restMapped.elem.kind === "jsval" && lowerer.dynamic) { - return { type: JSVAL, mode: "islandRest" }; - } + + // Unmapped JS rest parameters use the native variadic checked-value ABI. if (restMapped?.kind !== "array") { return { type: DYN, mode: "dynRest" }; } @@ -310,12 +287,7 @@ export function paramShape(lowerer: Lowerer, param: ts.ParameterDeclaration): Pa } let type = lowerer.runtimeOptionalBindingType(param.name, lowerer.irTypeOf(param.name)); const body = param.parent?.body; - if ( - isJsSourceFile(param.getSourceFile()) && - body && - type.kind !== "dyn" && - type.kind !== "jsval" - ) { + if (isJsSourceFile(param.getSourceFile()) && body && type.kind !== "dyn") { const symbol = lowerer.checker.getSymbolAtLocation(param.name); let acceptsUndefined = false; ts.walkPreorder(body, (node) => { @@ -344,19 +316,9 @@ export function paramShape(lowerer: Lowerer, param: ts.ParameterDeclaration): Pa if (type.kind === "void") { return { type: DYN, mode: param.questionToken ? "omittable" : "required" }; } - if ( - param.questionToken && - !lowerer.bareUndefinedArmedUnion(type) && - type.kind !== "dyn" && - type.kind !== "jsval" - ) { - // `x?: unknown` where unknown came from an annotation: undefined is - // absorbed into the hole type, so no undefined ARM exists — but a - // checked-dynamic slot holds the dyn undefined directly (`bar?: any` - // — an omitted call passes it, undefinedArgFor), and an island slot - // the engine's own undefined likewise (`options?: [string?]` — an - // optional-tuple param, jsval-mapped), so dyn and jsval params stay - // omittable. + if (param.questionToken && !lowerer.bareUndefinedArmedUnion(type) && type.kind !== "dyn") { + // An omitted argument requires an undefined union arm or a native + // checked-value slot that can hold undefined directly. lowerer.unsupported("SC1090", param, `optional parameters of type '${lowerer.fmt(type)}'`); } return { type, mode: param.questionToken ? "omittable" : "required" }; @@ -424,7 +386,7 @@ function defaultParameterShape( param: ts.ParameterDeclaration, raw: IrType, ): ParamShape { - if (raw.kind === "dyn" || raw.kind === "jsval") { + if (raw.kind === "dyn") { return { type: raw, mode: "omittable", bodyType: raw }; } if (lowerer.bareUndefinedArmedUnion(raw) && param.initializer) { @@ -461,7 +423,6 @@ export function checkDefaultParamBodyType( bodyType.kind === "regex" || bodyType.kind === "date" || bodyType.kind === "dyn" || - bodyType.kind === "jsval" || isUnitType(bodyType) ) { lowerer.unsupported( @@ -487,19 +448,18 @@ export function requireExactArityValue( ): void { // dynRest params ride the boxed thunk (JS arity — no completed-ABI // spelling exists or is needed); they don't gate the value form. - // Dynamic-tier omittable params (`{} = a` with `a: any` — jsval/dyn - // slots) don't either: their ABI slot IS the declared param type (no + + // Omittable checked-value slots also keep their declared param type (no // synthesized union), so every func-type spelling of the signature // already matches and short calls through the value complete with the - // tier's undefined (omittedArgFor). + // native undefined value (omittedArgFor). if ( shapes.every( (s) => s.mode === "required" || s.mode === "dynRest" || s.mode === "arguments" || - s.mode === "islandRest" || - (s.mode === "omittable" && (s.type.kind === "dyn" || s.type.kind === "jsval")), + (s.mode === "omittable" && s.type.kind === "dyn"), ) ) { return; @@ -569,32 +529,15 @@ export function requireExactArityValue( ) { return; } - // An 'any'-typed slot is the ISLAND boundary: the host-function - // trampoline already implements JS call semantics over the completed - // signature — a missing engine argument arrives as undefined and takes - // the omittable param's undefined arm (which is what triggers the - // default), surplus arguments drop. So a function with optional/ - // defaulted params may flow into a package API whenever the completed - // signature can cross at all (jsvalIn re-checks and speaks otherwise) — - // commander's `.option(flags, desc, collector, [])` pattern. - if ( - mapped?.kind === "jsval" && - canMarshalTypedFuncIntoIsland( - funcType, - (id) => lowerer.shapes.get(id), - (id) => lowerer.unions.get(id), - ) - ) { - return; - } + lowerer.unsupported( "SC1090", blame, "functions with optional or defaulted parameters as values, except where the " + "target type spells the completed signature with required parameters " + "(a '(x?: T) => R' function flows into a '(x: T | undefined) => R' slot, " + - "and a package/'any' slot takes any signature that can cross the island " + - "boundary; otherwise call the function directly)", + "and a package/'any' slot takes any natively representable signature; " + + "otherwise call the function directly)", ); } @@ -714,7 +657,7 @@ function appendArgumentsParameter( mode: "arguments" | "dynRest", ): void { if ( - shapes.some((s) => s.mode === "rest" || s.mode === "dynRest" || s.mode === "islandRest") || + shapes.some((s) => s.mode === "rest" || s.mode === "dynRest") || !( ts.isFunctionExpression(node) || ts.isFunctionDeclaration(node) || @@ -844,8 +787,7 @@ export function lambdaSignature( // ASYNC lambdas adopt through the promise: an inferred Promise // against a Promise slot returns the union promise (the fiber's // returns coerce; the spawn-wrapper ABI still returns a promise). - // jsval-returning bodies stay out (adoption would force validated - // exits the writer never asked for). + // Array and record returns also need the destination during literal // construction: a callback building IrStmt[] must wrap each element at // that recursive layout instead of first inferring narrower arrays. @@ -855,11 +797,10 @@ export function lambdaSignature( const innerRet = isAsyncLike && ret.kind === "promise" ? ret.inner : ret; // Union-inferred returns adopt too (a mixed-return body inferring a // SUB-union of the slot's union — adopting is a no-op when the two - // already agree); only jsval stays out. + if ( (ts.isArrowFunction(node) || ts.isFunctionExpression(node)) && - (!isAsyncLike || ret.kind === "promise") && - innerRet.kind !== "jsval" + (!isAsyncLike || ret.kind === "promise") ) { // The slot's signature: the contextual type stripped of its nullish // parts (an OPTIONAL callback field's context is the whole diff --git a/packages/compiler/src/frontend/lowering/class-method-mutations.ts b/packages/compiler/src/frontend/lowering/class-method-mutations.ts index e421f9f62..b56d27262 100644 --- a/packages/compiler/src/frontend/lowering/class-method-mutations.ts +++ b/packages/compiler/src/frontend/lowering/class-method-mutations.ts @@ -279,7 +279,6 @@ export function collectClassMethodMutations( }; for (const file of files) ts.walkPreorder(file, (node) => { - if (lowerer.dynamic) unknownKey = file; if ( (ts.isPropertyDeclaration(node) || ts.isPropertyAssignment(node) || diff --git a/packages/compiler/src/frontend/lowering/class-protocols.ts b/packages/compiler/src/frontend/lowering/class-protocols.ts index 543c68b52..e8bc7cfb4 100644 --- a/packages/compiler/src/frontend/lowering/class-protocols.ts +++ b/packages/compiler/src/frontend/lowering/class-protocols.ts @@ -64,7 +64,7 @@ export class ClassProtocols { ) { // Receiver-dependent methods and accessors need a live object even // without a class implementation. Receiver-free methods keep their - // native callable fields, including async callbacks crossing islands. + // native callable fields, including async callbacks. add(this.checker.getTypeAtLocation(node)); const contextual = this.checker.getContextualType(node); if (contextual) add(contextual); diff --git a/packages/compiler/src/frontend/lowering/coercions/function-adapters.ts b/packages/compiler/src/frontend/lowering/coercions/function-adapters.ts index 3a59d0895..f60fc32b8 100644 --- a/packages/compiler/src/frontend/lowering/coercions/function-adapters.ts +++ b/packages/compiler/src/frontend/lowering/coercions/function-adapters.ts @@ -4,11 +4,9 @@ import { InternalCompilerError } from "../../../errors.js"; import type { IrExpr, IrParam, IrStmt, IrType, SrcLoc } from "../../../ir/ir.js"; import { canAdaptDynFuncTo, - canMarshalTypedFuncIntoIsland, DYN, F64, isUnitType, - JSVAL, STRING, typeEquals, UNDEFINED_T, @@ -78,28 +76,7 @@ export function coercibleValue(lowerer: Lowerer, src: IrType, dst: IrType): bool if (typeEquals(src, dst)) return true; if (src.kind === "object" && dst.kind === "object") return lowerer.isSubclassOf(src.className, dst.className); - // The island boundary joins the mechanical set: values that MARSHAL - // in (units, the checked-dynamic deep copy, JSON-safe data, liftable - // composites, marshalable closures — coerceToExpected's jsval-IN - // block) and island handles whose exits VALIDATE (boundaryExitSafe) — - // the `defaultFallback(cfg) { return { login, id, scopes } }` shape, - // whose slot returns a package ('any') type. - if (dst.kind === "jsval") { - return ( - src.kind !== "jsval" && - (isUnitType(src) || - src.kind === "dyn" || - lowerer.boundarySafe(src) || - lowerer.jsvalLiftable(src) || - (src.kind === "func" && - canMarshalTypedFuncIntoIsland( - src, - (id) => lowerer.shapes.get(id), - (id) => lowerer.unions.get(id), - ))) - ); - } - if (src.kind === "jsval") return lowerer.boundaryExitSafe(dst); + if (dst.kind === "dyn") return src.kind !== "dyn" && lowerer.dynConvertible(src); if (src.kind === "dyn") { // The checked-dynamic function boundary's OUT direction joins the @@ -139,9 +116,9 @@ export function cleanFuncAdaptable( for (let i = 0; i < src.params.length; i++) { if (!lowerer.coercibleValue(dst.params[i]!, src.params[i]!)) return false; } - if (dst.ret.kind === "void") return src.ret.kind !== "jsval"; + if (dst.ret.kind === "void") return true; if (lowerer.coercibleValue(src.ret, dst.ret)) return true; - return src.ret.kind === "void" && (dst.ret.kind === "dyn" || dst.ret.kind === "jsval"); + return src.ret.kind === "void" && dst.ret.kind === "dyn"; } /** Adapt a function value to a destination signature, forwarding and @@ -163,8 +140,8 @@ export function funcCoerceAdapter( // compiles, INVOKING the slot throws the stranded TypeError (a // never-called mismatched callback is exact; divergence 38's stance // extended to calls). - // - voidRet "dyn"/"jsval": calling yields JS's undefined — the exact - // undefined dyn/engine value after the call's effects. + + // - voidRet "dyn": return native undefined after the call's effects. // - voidRet "strand": a void result where the slot promises a typed // value — the call runs (a `never` thrower never comes back, so the // trap is unreachable there), then the stranded TypeError. @@ -211,7 +188,7 @@ export function funcCoerceAdapter( } strandParams = true; } - let voidRet: "dyn" | "jsval" | "strand" | null = null; + let voidRet: "dyn" | "strand" | null = null; let strandRet = false; if (toT.ret.kind !== "void" && !lowerer.coercibleValue(fromT.ret, toT.ret)) { if (fromT.ret.kind !== "void") { @@ -222,10 +199,9 @@ export function funcCoerceAdapter( // throws the stranded TypeError where its result would convert. strandRet = true; } else { - voidRet = toT.ret.kind === "dyn" ? "dyn" : toT.ret.kind === "jsval" ? "jsval" : "strand"; + voidRet = toT.ret.kind === "dyn" ? "dyn" : "strand"; } } - if (toT.ret.kind === "void" && fromT.ret.kind === "jsval") return null; const key = `fnadapt:${typeKey(fromT)}:${typeKey(toT)}`; const existing = lowerer.coercions.retags.get(key); if (existing) return existing; @@ -311,15 +287,6 @@ export function funcCoerceAdapter( { kind: "exprStmt", expr: call, loc }, { kind: "return", value: dynUndefinedExpr(loc), loc }, ]; - } else if (voidRet === "jsval") { - body = [ - { kind: "exprStmt", expr: call, loc }, - { - kind: "return", - value: { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc }, - loc, - }, - ]; } else if (voidRet === "strand") { body = [ { kind: "exprStmt", expr: call, loc }, diff --git a/packages/compiler/src/frontend/lowering/coercions/island.ts b/packages/compiler/src/frontend/lowering/coercions/island.ts deleted file mode 100644 index 1ad41b537..000000000 --- a/packages/compiler/src/frontend/lowering/coercions/island.ts +++ /dev/null @@ -1,395 +0,0 @@ -import { buildArrayConversion } from "./builders.js"; -import { InternalCompilerError } from "../../../errors.js"; -import type { IrExpr, IrStmt, IrType, SrcLoc } from "../../../ir/ir.js"; -import { - arrayOf, - BOOL, - F64, - canMarshalTypedFuncIntoIsland, - isUnitType, - JSVAL, - STRING, - VOID, -} from "../../../ir/ir.js"; -import { typeKey } from "../../type-mapper.js"; -import { numLit, varRef } from "../../../ir/build.js"; -import type { Lowerer } from "../lowerer.js"; - -/** Whether a static value can become one island value. JSON-safe values - * use deep marshaling; composites containing island handles are constructed - * field by field. Recursive shapes outside the JSON-safe path are refused. */ -export function jsvalLiftable( - lowerer: Lowerer, - t: IrType, - visiting: Set = new Set(), -): boolean { - if (t.kind === "jsval") return true; - if (lowerer.boundarySafe(t)) return true; - // Typed arrays and URLs marshal IN without joining the round-trip - // (JSON) set: an engine typed-array copy / an engine URL from href. - if (t.kind === "bytes" || t.kind === "url") return true; - // Checked-dynamic values deep-copy in (scr_jsval_from_dyn — data - // kinds; a boxed function/handle/promise throws at runtime). - if (t.kind === "dyn") return true; - // Marshalable CLOSURES cross as host functions — a record carrying - // methods (the service-registry entry: `{ label, load: () => - // Promise, defaultFallback: (cfg) => any }`) lifts field by - // field like any other. - if (t.kind === "func") { - return canMarshalTypedFuncIntoIsland( - t, - (id) => lowerer.shapes.get(id), - (id) => lowerer.unions.get(id), - ); - } - if (t.kind === "record") { - const shape = lowerer.shapes.get(t.shapeId); - if (!shape || shape.tuple) return false; - // Recursive shapes reaching here answer FALSE: this branch is the - // per-field island lift (jsval/bytes-bearing composites — the - // JSON-safe ones already answered true through boundarySafe, where - // a cyclic value throws the circular TypeError at the marshal), and - // the lift helpers walk values with no circular guard — fencing the - // TYPE is the honest answer. - if (visiting.has(t.shapeId)) return false; - visiting.add(t.shapeId); - // An INDEX-SIGNATURE record lifts when its value slot does (dyn - // included): declared fields write first, then the overflow keys. - if (shape.indexValue && !lowerer.jsvalLiftable(shape.indexValue, visiting)) return false; - return shape.fields.every( - (f) => !f.name.startsWith("%") && lowerer.jsvalLiftable(f.type, visiting), - ); - } - if (t.kind === "array") return lowerer.jsvalLiftable(t.elem, visiting); - // A union crossing IN lifts arm by arm (a runtime tag switch — see - // unionToJsvalHelper) when every arm does: unit arms become the - // engine's own undefined/null (which is why bare undefined-armed - // unions lift here despite being JSON-unsafe), the rest lift as - // themselves. Arms never nest unions, so this terminates (recursive - // knots pass through records, guarded above). - if (t.kind === "union") { - const def = lowerer.unions.get(t.unionId); - return !!def && def.arms.every((a) => isUnitType(a) || lowerer.jsvalLiftable(a, visiting)); - } - return false; -} - -/** A jsval-typed expression carrying `e`'s value into the island — - * jsvalLiftable's constructive side. Primitives and JSON-safe composites - * keep the jsMarshal deep copy; jsval-bearing records and arrays go - * through interned per-type builder helpers (%jsin.*), so the operand is - * always evaluated exactly once (as the helper's argument). */ -export function jsvalLiftExpr(lowerer: Lowerer, e: IrExpr, loc: SrcLoc): IrExpr { - if (e.type.kind === "jsval") return e; - if (lowerer.boundarySafe(e.type)) { - return { kind: "jsMarshal", value: e, type: JSVAL, loc }; - } - if (e.type.kind === "bytes" || e.type.kind === "url") { - return { kind: "jsMarshal", value: e, type: JSVAL, loc }; - } - if (e.type.kind === "record") { - const helper = lowerer.recordToJsvalHelper(e.type.shapeId, loc); - return { kind: "call", callee: helper, args: [e], type: JSVAL, loc }; - } - if (e.type.kind === "array") { - const helper = lowerer.arrayToJsvalHelper(e.type.elem, loc); - return { kind: "call", callee: helper, args: [e], type: JSVAL, loc }; - } - if (e.type.kind === "union") { - const helper = lowerer.unionToJsvalHelper(e.type.unionId, loc); - return { kind: "call", callee: helper, args: [e], type: JSVAL, loc }; - } - // Checked-dynamic values and marshalable closures ride jsMarshal - // directly (the checked-dynamic tree deep copy / the host-function wrap). - if (e.type.kind === "dyn" || e.type.kind === "func") { - return { kind: "jsMarshal", value: e, type: JSVAL, loc }; - } - throw new InternalCompilerError(`lowerer bug: jsvalLiftExpr of unliftable ${e.type.kind}`); -} - -/** Interned `%jsin.union.(u)` — the runtime tag switch marshaling a - * union value INTO the island: unit arms become the engine's own - * undefined/null (JS-exact — `{ instructions: undefined }` crossing in - * has the property present and undefined, exactly what the source - * spells), every other arm narrows and lifts as itself (strings by - * value, JSON-safe composites as deep copies, typed arrays as engine - * typed-array copies, URLs as engine URL instances). Caller must have - * checked jsvalLiftable. */ -export function unionToJsvalHelper(lowerer: Lowerer, unionId: string, loc: SrcLoc): string { - const key = `union:${unionId}`; - const existing = lowerer.coercions.islandInputs.get(key); - if (existing) return existing; - const def = lowerer.unions.get(unionId); - if (!def) throw new InternalCompilerError(`lowerer bug: jsval lift of unknown union ${unionId}`); - const name = `%jsin.union.${lowerer.coercions.islandInputs.size}`; - lowerer.coercions.islandInputs.set(key, name); - const fromT: IrType = { kind: "union", unionId }; - const u: IrExpr = { kind: "varRef", localId: "u.0", type: fromT, loc }; - const body: IrStmt[] = []; - def.arms.forEach((arm, i) => { - const cond: IrExpr = { - kind: "unionIsTag", - unionId, - tag: i, - negated: false, - value: u, - type: BOOL, - loc, - }; - const value: IrExpr = isUnitType(arm) - ? { - kind: "jsOp", - op: arm.kind === "undefinedT" ? "undefLit" : "nullLit", - args: [], - type: JSVAL, - loc, - } - : lowerer.jsvalLiftExpr( - { kind: "unionNarrow", unionId, tag: i, value: u, type: arm, loc }, - loc, - ); - body.push({ kind: "if", cond, then: [{ kind: "return", value, loc }], else_: null, loc }); - }); - // Unreachable when tags are exhaustive (they are, by construction); - // satisfies the all-paths-return rule and keeps a corrupted tag loud. - body.push({ - kind: "throw", - value: { - kind: "strLit", - value: "scriptc: internal error: invalid union tag", - type: STRING, - loc, - }, - loc, - }); - lowerer.liftedFns.push({ - name, - params: [{ localId: "u.0", name: "u", type: fromT }], - returnType: JSVAL, - locals: [{ id: "u.0", name: "u", type: fromT, mutable: true }], - body, - loc, - }); - return name; -} - -/** Interned `%jsin.rec.(r)` — builds an island OBJECT from a - * jsval-bearing record: marshaled key strings, each field lifted through - * jsvalLiftExpr (jsval fields pass as handles, JSON-safe fields deep-copy, - * nested composites recurse through their own helpers). Caller must have - * checked jsvalLiftable. */ -export function recordToJsvalHelper(lowerer: Lowerer, shapeId: string, loc: SrcLoc): string { - const key = `rec:${shapeId}`; - const existing = lowerer.coercions.islandInputs.get(key); - if (existing) return existing; - const shape = lowerer.shapes.get(shapeId); - if (!shape) - throw new InternalCompilerError(`lowerer bug: jsval lift of unknown shape ${shapeId}`); - const name = `%jsin.rec.${lowerer.coercions.islandInputs.size}`; - lowerer.coercions.islandInputs.set(key, name); - const recT: IrType = { kind: "record", shapeId }; - const r: IrExpr = { kind: "varRef", localId: "r.0", type: recT, loc }; - const args: IrExpr[] = []; - for (const f of shape.fields) { - args.push({ - kind: "jsMarshal", - value: { kind: "strLit", value: f.name, type: STRING, loc }, - type: JSVAL, - loc, - }); - args.push( - lowerer.jsvalLiftExpr( - { kind: "recordGet", obj: r, shapeId, field: f.name, type: f.type, loc }, - loc, - ), - ); - } - const lit: IrExpr = { kind: "jsOp", op: "objLit", args, type: JSVAL, loc }; - if (!shape.indexValue) { - lowerer.liftedFns.push({ - name, - params: [{ localId: "r.0", name: "r", type: recT }], - returnType: JSVAL, - locals: [{ id: "r.0", name: "r", type: recT, mutable: true }], - body: [{ kind: "return", value: lit, loc }], - loc, - }); - return name; - } - // An INDEX-SIGNATURE shape: the declared pairs build the object, then - // the overflow map's live keys append in JS own-key order (setIdx — - // runtime keys have no property-name literal). - const iv = shape.indexValue; - const f64: IrType = { kind: "f64" }; - const ksT = arrayOf(STRING); - - const kRef = varRef("k.0", STRING, loc); - lowerer.liftedFns.push({ - name, - params: [{ localId: "r.0", name: "r", type: recT }], - returnType: JSVAL, - locals: [ - { id: "r.0", name: "r", type: recT, mutable: true }, - { id: "out.0", name: "out", type: JSVAL, mutable: false }, - { id: "ks.0", name: "ks", type: ksT, mutable: false }, - { id: "i.0", name: "i", type: f64, mutable: true }, - { id: "k.0", name: "k", type: STRING, mutable: false }, - ], - body: [ - { kind: "varDecl", localId: "out.0", init: lit, loc }, - { - kind: "varDecl", - localId: "ks.0", - init: { kind: "recordOvfKeys", obj: r, shapeId, type: ksT, loc }, - loc, - }, - { - kind: "for", - init: { kind: "varDecl", localId: "i.0", init: numLit(0, loc), loc }, - cond: { - kind: "bin", - op: "<", - left: varRef("i.0", f64, loc), - right: { - kind: "arrIntrinsic", - method: "length", - receiver: varRef("ks.0", ksT, loc), - args: [], - type: f64, - loc, - }, - type: BOOL, - loc, - }, - update: { - kind: "assign", - localId: "i.0", - value: { - kind: "bin", - op: "+", - left: varRef("i.0", f64, loc), - right: numLit(1, loc), - type: f64, - loc, - }, - loc, - }, - body: [ - { - kind: "varDecl", - localId: "k.0", - init: { - kind: "arrayGet", - arr: varRef("ks.0", ksT, loc), - index: varRef("i.0", f64, loc), - type: STRING, - loc, - }, - loc, - }, - { - kind: "exprStmt", - expr: { - kind: "jsOp", - op: "setIdx", - args: [ - varRef("out.0", JSVAL, loc), - { kind: "jsMarshal", value: kRef, type: JSVAL, loc }, - lowerer.jsvalLiftExpr( - { - kind: "recordKeyGet", - obj: r, - shapeId, - key: kRef, - overflowOnly: true, - type: iv, - loc, - }, - loc, - ), - ], - type: VOID, - loc, - }, - loc, - }, - ], - loc, - }, - { kind: "return", value: varRef("out.0", JSVAL, loc), loc }, - ], - loc, - }); - return name; -} - -/** Interned `%jsin.arr.(a)` — builds ONE island ARRAY from a native - * array whose elements lift: out = []; for (...) out[i] = lift(a[i]); - * return out. The index marshals by value like any number. Caller must - * have checked jsvalLiftable of the element. */ -export function arrayToJsvalHelper(lowerer: Lowerer, elem: IrType, loc: SrcLoc): string { - const key = `arr:${typeKey(elem)}`; - const existing = lowerer.coercions.islandInputs.get(key); - if (existing) return existing; - const name = `%jsin.arr.${lowerer.coercions.islandInputs.size}`; - lowerer.coercions.islandInputs.set(key, name); - const arrT: IrType = { kind: "array", elem }; - - lowerer.liftedFns.push( - buildArrayConversion( - name, - arrT, - { kind: "jsOp", op: "arrLit", args: [], type: JSVAL, loc }, - (element, index, result) => ({ - kind: "jsOp", - op: "setIdx", - args: [ - result, - { kind: "jsMarshal", value: index, type: JSVAL, loc }, - lowerer.jsvalLiftExpr(element, loc), - ], - type: VOID, - loc, - }), - loc, - ), - ); - return name; -} - -/** Interned `%jsin.elems.(a)` — a NATIVE array of island handles from - * a native array whose elements lift: the `any[]`-slot coercion (each - * element becomes one island value; the array stays static). Null when - * the element doesn't lift. */ -export function arrayToJsvalArrayHelper( - lowerer: Lowerer, - fromElem: IrType, - loc: SrcLoc, -): string | null { - if (fromElem.kind === "jsval" || !lowerer.jsvalLiftable(fromElem)) return null; - const key = `elems:${typeKey(fromElem)}`; - const existing = lowerer.coercions.islandInputs.get(key); - if (existing) return existing; - const name = `%jsin.elems.${lowerer.coercions.islandInputs.size}`; - lowerer.coercions.islandInputs.set(key, name); - const arrT: IrType = { kind: "array", elem: fromElem }; - const outT: IrType = { kind: "array", elem: JSVAL }; - - lowerer.liftedFns.push( - buildArrayConversion( - name, - arrT, - { kind: "arrayLit", elems: [], type: outT, loc }, - (element, _index, result) => ({ - kind: "arrIntrinsic", - method: "push", - receiver: result, - args: [lowerer.jsvalLiftExpr(element, loc)], - type: F64, - loc, - }), - loc, - ), - ); - return name; -} diff --git a/packages/compiler/src/frontend/lowering/coercions/state.ts b/packages/compiler/src/frontend/lowering/coercions/state.ts index 9b1f07537..ad1d7c6ea 100644 --- a/packages/compiler/src/frontend/lowering/coercions/state.ts +++ b/packages/compiler/src/frontend/lowering/coercions/state.ts @@ -15,5 +15,4 @@ export class CoercionState { readonly checkedNarrowArms = new Map(); readonly retags = new Map(); readonly narrows = new Map(); - readonly islandInputs = new Map(); } diff --git a/packages/compiler/src/frontend/lowering/coercions/structural-plans.ts b/packages/compiler/src/frontend/lowering/coercions/structural-plans.ts index 77a8ec0b8..0912ec2d2 100644 --- a/packages/compiler/src/frontend/lowering/coercions/structural-plans.ts +++ b/packages/compiler/src/frontend/lowering/coercions/structural-plans.ts @@ -154,11 +154,7 @@ export function widthLiftPlan(lowerer: Lowerer, src: IrType, dst: IrType): Width // such a slot honestly holds in the width family is EMPTY, so the // lift is a fresh empty array of the target type, guarded by a // runtime non-empty trap (the checked-extraction stance). - if ( - lowerer.unitOnlyElem(src.elem) && - dst.elem.kind !== "jsval" && - !lowerer.unitOnlyElem(dst.elem) - ) { + if (lowerer.unitOnlyElem(src.elem) && !lowerer.unitOnlyElem(dst.elem)) { return { how: "emptyArr" }; } return null; @@ -166,7 +162,7 @@ export function widthLiftPlan(lowerer: Lowerer, src: IrType, dst: IrType): Width // A TUPLE flowing into an array FIELD/ELEMENT (`aliases: ["ls"]` into // an `aliases: string[]` slot): per-position lifts, the top-level // tuple-into-array coercion applied recursively. - if (dst.kind === "array" && src.kind === "record" && dst.elem.kind !== "jsval") { + if (dst.kind === "array" && src.kind === "record") { const from = lowerer.shapes.get(src.shapeId); if (from?.tuple && from.fields.every((f) => lowerer.widthLiftPlan(f.type, dst.elem) !== null)) { return { how: "tupleArr" }; diff --git a/packages/compiler/src/frontend/lowering/coercions/structural.ts b/packages/compiler/src/frontend/lowering/coercions/structural.ts index c7c8aa008..3464bfffe 100644 --- a/packages/compiler/src/frontend/lowering/coercions/structural.ts +++ b/packages/compiler/src/frontend/lowering/coercions/structural.ts @@ -51,7 +51,7 @@ export function widthCoerce(lowerer: Lowerer, expr: IrExpr, expected: IrType): I if (expected.kind === "record" && expr.type.kind === "classval" && expr.kind === "classRef") { return lowerer.classStaticsProjection(expr.type.className, expected.shapeId, expr.loc); } - if (expected.kind === "array" && expr.type.kind === "array" && expected.elem.kind !== "jsval") { + if (expected.kind === "array" && expr.type.kind === "array") { const helper = lowerer.arrayWidthHelper(expr.type, expected, expr.loc); if (helper) return { kind: "call", callee: helper, args: [expr], type: expected, loc: expr.loc }; @@ -67,23 +67,13 @@ export function widthCoerce(lowerer: Lowerer, expr: IrExpr, expected: IrType): I // the arity for free; the monomorphic tuple REBUILDS as a fresh array, // each position's value lifted into the element type (the same copy // stance as every width coercion — later mutations don't alias). - if (expected.kind === "array" && expr.type.kind === "record" && expected.elem.kind !== "jsval") { + if (expected.kind === "array" && expr.type.kind === "record") { const helper = lowerer.tupleArrayWidthHelper(expr.type.shapeId, expected, expr.loc); if (!helper) return null; return { kind: "call", callee: helper, args: [expr], type: expected, loc: expr.loc }; } - // An `any[]` slot: any liftable element becomes one island handle per + // element (the messages-array pattern — records holding `any` content). - if ( - expected.kind === "array" && - expected.elem.kind === "jsval" && - expr.type.kind === "array" && - expr.type.elem.kind !== "jsval" - ) { - const helper = lowerer.arrayToJsvalArrayHelper(expr.type.elem, expr.loc); - if (!helper) return null; - return { kind: "call", callee: helper, args: [expr], type: expected, loc: expr.loc }; - } return null; } diff --git a/packages/compiler/src/frontend/lowering/coercions/unions.ts b/packages/compiler/src/frontend/lowering/coercions/unions.ts index 40edb3a70..ca7495dd7 100644 --- a/packages/compiler/src/frontend/lowering/coercions/unions.ts +++ b/packages/compiler/src/frontend/lowering/coercions/unions.ts @@ -96,7 +96,6 @@ export function strandedUnitTrap( expected.kind === "union" || expected.kind === "void" || expected.kind === "dyn" || - expected.kind === "jsval" || isUnitType(expected) ) { return null; diff --git a/packages/compiler/src/frontend/lowering/containers/array-callbacks.ts b/packages/compiler/src/frontend/lowering/containers/array-callbacks.ts index 4aff3621f..630880fbc 100644 --- a/packages/compiler/src/frontend/lowering/containers/array-callbacks.ts +++ b/packages/compiler/src/frontend/lowering/containers/array-callbacks.ts @@ -80,12 +80,7 @@ export function lowerArrayHofCall( const valueT = callbackValueType(lowerer, elem, present); if (booleanFilter) { if (valueT.kind === "union") lowerer.requireTruthyUnion(valueT.unionId, argNode); - if ( - valueT.kind === "dyn" || - valueT.kind === "jsval" || - valueT.kind === "void" || - isUnitType(valueT) - ) { + if (valueT.kind === "dyn" || valueT.kind === "void" || isUnitType(valueT)) { lowerer.badType(argNode, lowerer.typeOf(argNode)); } } @@ -102,10 +97,8 @@ export function lowerArrayHofCall( } if (method === "map") requireProducedArrayElement(lowerer, call, "'.map()'", fnRet); // JS applies ToBoolean to whatever the predicate answers, so a non-bool - // result is not an error — the filter loop wraps the call in the same - // toBool an `if` statement would apply. The island/dyn shapes, whose - // truthiness needs the engine, and void, whose real answer the ABI has - // already discarded, keep the fence. No separate + // result is not an error when its truthiness is represented. Void, + // whose real answer the ABI has already discarded, keeps the fence. No separate // requireTruthyUnion call belongs here: its check (no dyn/caught arm) // IS filterPredicateOk's union branch, so it could never speak. if (method === "filter" && !filterPredicateOk(lowerer, fnRet)) { @@ -260,11 +253,6 @@ function truthyFilterCallback( return { kind: "closure", fnName: name, captures: [], type: fnT, loc }; } -/** The predicate result kinds `.filter()` accepts. JS applies ToBoolean to - * whatever the callback answers, so a bool is not required: the scalars and - * the reference kinds have constant or by-value answers, checked-dynamic - * values ask their runtime kind, and a union is fine when every arm does. - * void/jsval/caught stay out — see below. */ function filterPredicateOk(lowerer: Lowerer, ret: IrType): boolean { if (ret.kind === "bool") return true; // VOID is a TYPE erasure, not a runtime value: TS lets a value-returning @@ -274,10 +262,10 @@ function filterPredicateOk(lowerer: Lowerer, ret: IrType): boolean { // falsy would silently answer [] where Node answers [1]. Fenced until // the returned value can be preserved through the void ABI. // A checked-dynamic value retains its runtime kind, so scr_dyn_truthy can - // apply JavaScript ToBoolean exactly. Island and caught values stay out. + if (ret.kind === "void") return false; if (ret.kind === "dyn") return true; - if (ret.kind === "jsval" || ret.kind === "caught") return false; + if (ret.kind === "caught") return false; if (ret.kind === "union") { const def = lowerer.unions.get(ret.unionId); return def !== undefined && def.arms.every((a) => a.kind !== "dyn" && a.kind !== "caught"); @@ -340,7 +328,6 @@ function lowerFastCallback( typeEquals(valueT, elem) || elem.kind === "union" || elem.kind === "dyn" || - elem.kind === "jsval" || isUnitType(elem) ) return null; @@ -493,7 +480,6 @@ function presentElements(lowerer: Lowerer, call: ts.CallExpression, elem: IrType return ( lowerer.presentElementCalls.has(call) && elem.kind !== "dyn" && - elem.kind !== "jsval" && elem.kind !== "void" && !isUnitType(elem) ); @@ -575,13 +561,7 @@ export function lowerArrayUnionHofCall( const arrays = def.arms as (IrType & { kind: "array" })[]; const valueArms: IrType[] = []; const addValueArm = (type: IrType): boolean => { - if ( - type.kind === "dyn" || - type.kind === "jsval" || - type.kind === "caught" || - type.kind === "void" - ) - return false; + if (type.kind === "dyn" || type.kind === "caught" || type.kind === "void") return false; if (type.kind === "union") { const inner = lowerer.unions.get(type.unionId); if (!inner) return false; @@ -1060,7 +1040,7 @@ export function lowerArrayFindLikeCall( fnRet.kind === "dyn" || (fnRet.kind === "union" && (lowerer.unions.get(fnRet.unionId)?.arms ?? []).every( - (a) => a.kind !== "dyn" && a.kind !== "caught" && a.kind !== "jsval", + (a) => a.kind !== "dyn" && a.kind !== "caught", )); if (!truthyRet) lowerer.badType(argNode, lowerer.typeOf(argNode)); const last = method === "findLast" || method === "findLastIndex"; @@ -1469,7 +1449,6 @@ export function lowerArrayFlatMapCall( const fnRet = fnArg.type.ret; if ( fnRet.kind === "dyn" || - fnRet.kind === "jsval" || (fnRet.kind === "record" && lowerer.shapes.get(fnRet.shapeId)?.tuple) ) { return { @@ -2190,12 +2169,10 @@ export function lowerDynArrayFlatMapCall( // A DYNAMIC-returning callback (`plugins.flatMap((plugin) => // plugin.languages ?? [])` — the getSupportInfo shape, where the // callback's members ride the checked-dynamic tree): the call dispatches on the - // RECEIVER's runtime kind (dynInvoke) with the callback boxed — - // a wrapped ISLAND receiver runs the ENGINE's own JS-exact - // Array.prototype.flatMap (the routed-ops lane), a native dyn - // array runs the runtime's flatMap, and non-arrays throw Node's + // RECEIVER's runtime kind (dynInvoke) with the callback boxed. A native + // dyn array runs the runtime's flatMap, and non-arrays throw Node's // TypeError. The result stays dyn, checked per use. - if (ret.kind === "dyn" || ret.kind === "jsval") { + if (ret.kind === "dyn") { const boxed: IrExpr = { kind: "dynFrom", value: fnArg, type: DYN, loc }; return { kind: "dynInvoke", diff --git a/packages/compiler/src/frontend/lowering/containers/array-construction.ts b/packages/compiler/src/frontend/lowering/containers/array-construction.ts index 62ffdb5ce..7bb25015b 100644 --- a/packages/compiler/src/frontend/lowering/containers/array-construction.ts +++ b/packages/compiler/src/frontend/lowering/containers/array-construction.ts @@ -279,7 +279,6 @@ export function lowerArrayConstructor( // reference. Known element forms retain native arrays, including their // existing sparse storage and indexed property contracts. if ( - !lowerer.dynamic && isJsSourceFile(expr.getSourceFile()) && (result?.kind !== "array" || result.elem.kind === "dyn") ) { @@ -346,7 +345,7 @@ export function lowerArrayConstructor( loc, }; } - if (argType?.kind === "dyn" || argType?.kind === "jsval") { + if (argType?.kind === "dyn") { lowerer.noLowering("Array constructor with a dynamically typed sole argument", args[0]!); } if ( diff --git a/packages/compiler/src/frontend/lowering/containers/array-methods.ts b/packages/compiler/src/frontend/lowering/containers/array-methods.ts index 3b8fdff70..e32c826bb 100644 --- a/packages/compiler/src/frontend/lowering/containers/array-methods.ts +++ b/packages/compiler/src/frontend/lowering/containers/array-methods.ts @@ -12,7 +12,6 @@ import { type IrExpr, type IrStmt, type IrType, - JSVAL, STRING, type SrcLoc, UNDEFINED_T, @@ -25,7 +24,7 @@ import { ARRAY_METHODS } from "../surfaces.js"; import { tryLowerExpression } from "../expressions/try-lower-expression.js"; import { isSafeToRepeat } from "../expressions/evaluation-safety.js"; import { isJsSourceFile, locOf } from "../../program.js"; -import { islandPrimitiveExit, lowerDynDispatchMethodCall } from "../lower-calls.js"; +import { lowerDynDispatchMethodCall } from "../lower-calls.js"; import { arrayIndexPresent, arrayValueRead, @@ -268,7 +267,7 @@ function lowerArrayJoinSeparator( }; } } - if (value.type.kind === "dyn" || value.type.kind === "jsval") { + if (value.type.kind === "dyn") { lowerer.noLowering(".join separator with a runtime-dependent undefined value", node); } return lowerer.ensureString(value, node); @@ -343,21 +342,14 @@ export function lowerArrayMethodCall( const type = lowerer.mapTypeOf(lowerer.typeOf(call)); const receiver = lowerer.lowerExpr(access.expression); // Only a static array resolves to a generator here; other lowered - // receivers (island arrays, narrowed unions, checked dynamic values) - // continue to their dedicated handling below. + // values continue to their dedicated handling below. if (receiver.type.kind === "array") { const value = type ? lowerArrayIteratorValue(lowerer, receiver, name, type, loc) : null; if (value) return value; lowerer.unsupported("SC1090", call, `'${name}()' iterators over this array element type`); } } - // An island handle behind an array-typed .d.ts surface - // (`parts().join("-")` — arrays never exit eagerly, so the value - // stays jsval): the ENGINE's own Array.prototype method runs on the - // engine array — every declared call form (fromIndex, comparators - // and HOF callbacks as marshaled host functions), Node-exact by - // construction, with the declared-primitive result exit. Never a - // static arrIntrinsic over a jsval (the validator ICE). + { const receiver = lowerer.lowerExpr(access.expression); if (receiver.type.kind === "union") { @@ -381,30 +373,7 @@ export function lowerArrayMethodCall( if (receiver.type.kind === "record" && lowerer.shapes.get(receiver.type.shapeId)?.tuple) { return lowerTupleReadMethodCall(lowerer, call, access, receiver); } - if (receiver.type.kind === "jsval") { - const loweredArgs = call.arguments.map((a) => lowerer.lowerExpr(a)); - if ( - name === "filter" && - loweredArgs[0]?.type.kind === "func" && - loweredArgs[0].type.ret.kind === "void" - ) { - lowerer.unsupported( - "SC1090", - call.arguments[0]!, - "'.filter()' with a void-returning predicate (the callback return value is erased before its truthiness can be tested)", - ); - } - const args = loweredArgs.map((arg, i) => lowerer.jsvalIn(arg, call.arguments[i]!)); - const result: IrExpr = { - kind: "jsOp", - op: "callMethod", - name, - args: [receiver, ...args], - type: JSVAL, - loc, - }; - return islandPrimitiveExit(lowerer, call, result); - } + // An array-mapped CHECKER type whose VALUE lives in the checked-dynamic tree // (`Object.keys(dynObj).sort()` — the key-walk answers a dyn array): // the record family's array sibling. Methods with a runtime @@ -467,7 +436,7 @@ export function lowerArrayMethodCall( const value = call.arguments[0] ? lowerer.lowerExpr(call.arguments[0]) : null; if ( value && - (value.type.kind === "dyn" || value.type.kind === "jsval") && + value.type.kind === "dyn" && isRefCounted(elem) && elem.kind !== "string" && !typeEquals(value.type, elem) @@ -907,20 +876,6 @@ export function lowerArrayMethodCall( args.push(arg); continue; } - // A handle-element receiver given an argument whose CHECKER type - // spells evolved elements while its VALUE is a jsval-element - // array (`fns.concat(tail)` — both sides of the evolving-`any` - // adoption): the value's array-ness decides, exactly JS's - // IsArray — spread it. Non-array values fall through to the - // element push (the jsvalIn coercion). - if (elem.kind === "jsval") { - const arg = lowerer.lowerExpr(argNode); - if (arg.type.kind === "array" && arg.type.elem.kind === "jsval") { - shape.push(arg.type.elem); - args.push(arg); - continue; - } - } // An element value — union elements wrap exactly like a push. shape.push(null); args.push(lowerer.lowerExprExpecting(argNode, elem)); @@ -1255,12 +1210,11 @@ function lowerArrayFlatCall( } const elemCouldNest = (elem: IrType): boolean => elem.kind === "array" || - elem.kind === "jsval" || elem.kind === "dyn" || (elem.kind === "union" && (lowerer.unions .get(elem.unionId) - ?.arms.some((arm) => arm.kind === "array" || arm.kind === "jsval" || arm.kind === "dyn") ?? + ?.arms.some((arm) => arm.kind === "array" || arm.kind === "dyn") ?? true)); if (!elemCouldNest(receiverType.elem) && call.arguments[0]) { const receiver = lowerer.lowerExpr(access.expression); @@ -1396,12 +1350,12 @@ function lowerArraySearchValues( } let valueT = arrayValueType(lowerer, elem); - // jsval/dyn arrays have a single engine value representation rather than a - // static undefined arm. Keep their existing runtime path and its explicit - // type fence; typed static arrays take the state-aware helper below. + + // Checked-value elements have no separate undefined union arm. Keep + // their runtime path; typed arrays take the state-aware helper below. if (valueT.kind !== "union") { if (method === "lastIndexOf") - lowerer.noLowering(".lastIndexOf on an array of engine values", call); + lowerer.noLowering(".lastIndexOf on an array of checked values", call); if (call.arguments.length > 1) lowerer.noLowering(`.${method} with fromIndex on '${lowerer.fmt(elem)}' elements`, call); if (!typeEquals(needle.type, elem)) lowerer.badType(argNode, lowerer.typeOf(argNode)); @@ -2058,9 +2012,7 @@ export function lowerTupleReadMethodCall( if (ret.kind === "void" || ret.kind === "func") lowerer.badType(call, lowerer.typeOf(call)); if ( method === "flatMap" && - (ret.kind === "dyn" || - ret.kind === "jsval" || - (ret.kind === "record" && lowerer.shapes.get(ret.shapeId)?.tuple)) + (ret.kind === "dyn" || (ret.kind === "record" && lowerer.shapes.get(ret.shapeId)?.tuple)) ) { return { kind: "dynInvoke", diff --git a/packages/compiler/src/frontend/lowering/containers/bytes.ts b/packages/compiler/src/frontend/lowering/containers/bytes.ts index 255165530..0cb8f40db 100644 --- a/packages/compiler/src/frontend/lowering/containers/bytes.ts +++ b/packages/compiler/src/frontend/lowering/containers/bytes.ts @@ -957,7 +957,7 @@ function lowerBufferInstanceMethod( // The checked-dynamic crossing for a compare/equals argument slot: dyn // passes through, convertible statics (the invalid-input probes' // literals) wrap in dynFrom, `undefined` literals ride the same wrap. - // Fences (never returns) when the value cannot cross — an island jsval. + const chkArg = (i: number): IrExpr => { // Object literals take the dyn literal path directly (method members // box as dyn functions — the typed record fence never applies). diff --git a/packages/compiler/src/frontend/lowering/containers/callback-arguments.ts b/packages/compiler/src/frontend/lowering/containers/callback-arguments.ts index de25fda90..96147cbe5 100644 --- a/packages/compiler/src/frontend/lowering/containers/callback-arguments.ts +++ b/packages/compiler/src/frontend/lowering/containers/callback-arguments.ts @@ -65,17 +65,14 @@ export function lowerArrayCallback( } } } - // A JSVAL-element receiver behind an EVOLVED contextual type (the - // evolving-`any` array under --dynamic — lowerArrayMethodCall adopted + // the value's handle element while tsc's evolving analysis types the // callback's params by the pushed elements): the lead params BIND the // handles the loop passes, whatever the contextual type spelled — - // paramShape's island-handle early-out, the then-handler rule. + if (ts.isArrowFunction(argNode) || ts.isFunctionExpression(argNode)) { - argNode.parameters.forEach((p, i) => { - if (i >= lead.length || lead[i]!.kind !== "jsval") return; - if (!ts.isIdentifier(p.name) || p.type || p.initializer || p.dotDotDotToken) return; - lowerer.jsvalParamOverrides.add(p); + argNode.parameters.forEach((_p, _i) => { + return; }); } // An untyped or flow-refined array can contextually type an inline @@ -93,7 +90,6 @@ export function lowerArrayCallback( if ( expected === undefined || expected.kind === "dyn" || - expected.kind === "jsval" || !ts.isIdentifier(param.name) || param.type || param.initializer || diff --git a/packages/compiler/src/frontend/lowering/containers/collection-methods.ts b/packages/compiler/src/frontend/lowering/containers/collection-methods.ts index 06890193a..878663239 100644 --- a/packages/compiler/src/frontend/lowering/containers/collection-methods.ts +++ b/packages/compiler/src/frontend/lowering/containers/collection-methods.ts @@ -929,11 +929,7 @@ export function lowerSetSeedNew( !scalar && (declared?.kind === "array" || declared?.kind === "record") ? lowerer.lowerCollectionKey(node, declared) : lowerer.lowerExpr(node); - if ( - declared?.kind === "string" && - setT.elem.kind === "string" && - (source.type.kind === "dyn" || source.type.kind === "jsval") - ) { + if (declared?.kind === "string" && setT.elem.kind === "string" && source.type.kind === "dyn") { source = lowerer.coerceInto(node, source, STRING); } if (setT.elem.kind === "dyn" && lowerer.dynConvertible(source.type)) { @@ -953,9 +949,7 @@ export function lowerSetSeedNew( if (declared?.kind === "array" && typeEquals(declared.elem, setT.elem)) { // Preserve the existing checked scalar-iterable bridge. Reference // elements must retain identity and cannot enter via a copying exit. - if (source.type.kind === "jsval" && lowerer.boundaryExitSafe(arrayOf(setT.elem))) { - source = { kind: "jsExit", value: source, type: arrayOf(setT.elem), loc }; - } + if (source.type.kind === "dyn" && scalar) { source = lowerer.coerceInto( node, diff --git a/packages/compiler/src/frontend/lowering/containers/indexed-objects.ts b/packages/compiler/src/frontend/lowering/containers/indexed-objects.ts index fc2d50614..85bdf1053 100644 --- a/packages/compiler/src/frontend/lowering/containers/indexed-objects.ts +++ b/packages/compiler/src/frontend/lowering/containers/indexed-objects.ts @@ -444,7 +444,7 @@ export function lowerObjectFromEntriesCall( ts.isSpreadElement(call.arguments[0]!) ) return null; - if (lowerer.dynamic) return null; + return { kind: "libCall", fn: "dyn.fromEntries", diff --git a/packages/compiler/src/frontend/lowering/containers/string-and-regexp.ts b/packages/compiler/src/frontend/lowering/containers/string-and-regexp.ts index fe8552f43..608c0ed29 100644 --- a/packages/compiler/src/frontend/lowering/containers/string-and-regexp.ts +++ b/packages/compiler/src/frontend/lowering/containers/string-and-regexp.ts @@ -709,12 +709,6 @@ export function lowerStringPaddingCall( return { kind: "call", callee: helper, args: values, type: STRING, loc }; } -/** Regex method calls, both directions: `re.test(s)` on a regex receiver, - * and `s.replace(re, tpl)` / `s.replaceAll(re, tpl)` / `s.split(re)` on a - * string receiver whose FIRST ARGUMENT is a regex (the string-pattern - * overloads keep their island lowering — the argument's mapped type is - * what routes here, before lowerIslandMethodCall can claim the name). - * Null when neither shape matches. */ export function lowerRegexMethodCall( lowerer: Lowerer, call: ts.CallExpression, @@ -1096,10 +1090,7 @@ export function lowerStringMethodCall( ? { kind: "bin", op: "/", left: numLit(1, loc), right: numLit(0, loc), type: F64, loc } : numLit(0, loc); const position = lowerPositionArgument(lowerer, argumentNodes[1], defaultPosition); - if ( - needle.type.kind === "string" && - (position.type.kind === "f64" || position.type.kind === "jsval") - ) { + if (needle.type.kind === "string" && position.type.kind === "f64") { return { kind: "strIntrinsic", method: entry.method, @@ -1197,8 +1188,8 @@ export function lowerStringMethodCall( ); const subject = entry.method === "repeat" ? "string repeat count" : "string position"; // Keep ordinary numeric calls on the direct intrinsic path, including the - // existing boundary validation for island values in numeric slots. - if (args.every((arg) => arg.type.kind === "f64" || arg.type.kind === "jsval")) { + + if (args.every((arg) => arg.type.kind === "f64")) { return { kind: "strIntrinsic", method: entry.method, diff --git a/packages/compiler/src/frontend/lowering/expressions/evaluation-safety.ts b/packages/compiler/src/frontend/lowering/expressions/evaluation-safety.ts index d24f75b57..791df1340 100644 --- a/packages/compiler/src/frontend/lowering/expressions/evaluation-safety.ts +++ b/packages/compiler/src/frontend/lowering/expressions/evaluation-safety.ts @@ -74,8 +74,5 @@ export function isSafeToMoveConditionEarlier(expr: IrExpr): boolean { if (expr.kind === "logical") { return isSafeToMoveConditionEarlier(expr.left) && isSafeToMoveConditionEarlier(expr.right); } - if (expr.kind === "jsOp" && (expr.op === "truthy" || expr.op === "not")) { - return expr.args.every(isSafeToRepeat); - } return isSafeToRepeat(expr); } diff --git a/packages/compiler/src/frontend/lowering/expressions/native-proxy.ts b/packages/compiler/src/frontend/lowering/expressions/native-proxy.ts index 8e0732b49..2d09efa1a 100644 --- a/packages/compiler/src/frontend/lowering/expressions/native-proxy.ts +++ b/packages/compiler/src/frontend/lowering/expressions/native-proxy.ts @@ -9,7 +9,7 @@ export function isNativeProxyInitializer( lowerer: Lowerer, expression: ts.Expression | undefined, ): boolean { - if (lowerer.dynamic || !expression) return false; + if (!expression) return false; while (ts.isParenthesizedExpression(expression)) expression = expression.expression; return ( ts.isNewExpression(expression) && diff --git a/packages/compiler/src/frontend/lowering/expressions/nullish-assignment.ts b/packages/compiler/src/frontend/lowering/expressions/nullish-assignment.ts index 6f431a512..4d6ad5247 100644 --- a/packages/compiler/src/frontend/lowering/expressions/nullish-assignment.ts +++ b/packages/compiler/src/frontend/lowering/expressions/nullish-assignment.ts @@ -164,7 +164,6 @@ export function lowerShortCircuitAssignment(lowerer: Lowerer, expr: ts.BinaryExp nullish && !isUnitType(read.type) && read.type.kind !== "dyn" && - read.type.kind !== "jsval" && (read.type.kind !== "union" || !lowerer.unions.get(read.type.unionId)?.arms.some(isUnitType)) ) { return finish(read); diff --git a/packages/compiler/src/frontend/lowering/expressions/object-literals.ts b/packages/compiler/src/frontend/lowering/expressions/object-literals.ts index 4e1f3b991..239069ad2 100644 --- a/packages/compiler/src/frontend/lowering/expressions/object-literals.ts +++ b/packages/compiler/src/frontend/lowering/expressions/object-literals.ts @@ -6,7 +6,6 @@ import { BOOL, DYN, F64, - JSVAL, STRING, UNDEFINED_T, VOID, @@ -446,12 +445,9 @@ export function lowerDynObjectLiteral( `holding '${lowerer.fmt(v.type)}' values in a runtime-keyed (computed-key) object literal`, ); } catch (err) { - // A member value the checked-dynamic tree cannot hold — a func whose signature - // cannot box, an island ('any') handle, a record carrying func - // fields (the export aggregate's typed utilities and npm-handle - // members): the same call-time fence deferral as an unlowerable - // member — the slot takes a boxed fence closure; only USING it - // stops the run. Probe mode and ICEs keep the poison. + // An unrepresentable member gets the same call-time fence as an + // unlowerable member: a boxed closure fails only when called. + // Probe mode and ICEs keep the poison. if (!(err instanceof PoisonError)) throw err; const fence = lowerer.deferToRuntimeFence(convDiagsBefore, prop, { kind: "closure", @@ -1013,10 +1009,7 @@ export function lowerObjectLiteral( // the slot's width coercion constructs through the trivial // parameter-property constructor (recordToClassPlan), or fences with // the record-shape story. - // A jsval-mapped context reaches here only when lowerExpr's island - // gate DECLINED it (a project-declared typedef that absorbed to the - // island through checker-`any` field residue): the literal builds at - // its own type like every unmappable context. + // An index-signature literal can inherit a callable contextual type for // a prototype-named DATA property (notably `toString`). Object literals // have no call signature; construct their own data shape and let the @@ -1026,7 +1019,6 @@ export function lowerObjectLiteral( mapped.kind === "union" || mapped.kind === "dyn" || mapped.kind === "object" || - mapped.kind === "jsval" || mapped.kind === "func" ) { const ctxUnion = mapped?.kind === "union" ? mapped : null; @@ -1115,8 +1107,7 @@ export function lowerObjectLiteral( } else if (ts.isPropertyAssignment(prop)) { v = tryLowerExpression(lowerer, prop.initializer); } - if (!v || v.type.kind === "void" || v.type.kind === "caught" || v.type.kind === "jsval") - continue; + if (!v || v.type.kind === "void" || v.type.kind === "caught") continue; if (isUnitType(v.type)) continue; fields.push({ name, value: v }); } @@ -2325,10 +2316,8 @@ export function lowerObjectLiteral( if (at >= 0) fields.splice(at, 1); fields.push({ name, value }); } - // Optional fields may be omitted: the field holds its ABSENT state (it - // reads as undefined but is not an own property) or, for an island - // handle slot, the engine's undefined cell. tsc rejects omission of - // required fields before lowering. + // Optional fields may be omitted: the field holds its absent state. + // tsc rejects omission of required fields before lowering. // A REQUIRED missing field keeps the shape-mismatch rejection (possible // through `as`: the cast smuggles a narrower literal past freshness). if (droppedNames.size > 0) { @@ -2345,18 +2334,7 @@ export function lowerObjectLiteral( const provided = new Set(fields.filter((f) => !f.overflow).map((f) => f.name)); for (const f of shape.fields) { if (provided.has(f.name)) continue; - // 'unknown' fields complete with the dyn undefined — the absent - // property reads as undefined in Node, and a dyn slot holds - // exactly that (the options-record call shape against - // `{ plugins: unknown, ... }` — a JS caller the checker admits). - const optional = - ((lowerer.checker.getPropertyOfType(tsType, f.name)?.flags ?? 0) & - ts.SymbolFlags.Optional) !== - 0; - const absentHandle: IrExpr | null = - f.type.kind === "jsval" && optional - ? { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc } - : null; + const absentHandle: IrExpr | null = null; const absent = lowerer.absentFieldValue(f.type, loc) ?? (f.type.kind === "dyn" ? dynUndefinedExpr(loc) : null) ?? @@ -2562,14 +2540,6 @@ export type CondSpreadProp = (ts.PropertyAssignment | ts.ShorthandPropertyAssign name: ts.Identifier | ts.StringLiteral; }; -/** Parses the conditional-spread idiom `...(c ? { k: v, ... } : {})` - * (either orientation). Returns the condition, the non-empty arm's - * properties, and which arm carries them; "unsupported" for conditional - * sources OUTSIDE the idiom (both arms non-empty, computed/method - * members); null when the spread source isn't a conditional at all. - * Callers slice their own honest subset (the static record path takes - * exactly one property; the island literal takes any number; spawn's - * options walk takes a `detached` boolean literal). */ export function conditionalSpreadOf( expr: ts.Expression, ): { cond: ts.Expression; props: CondSpreadProp[]; whenTrue: boolean } | "unsupported" | null { diff --git a/packages/compiler/src/frontend/lowering/expressions/optional-chains.ts b/packages/compiler/src/frontend/lowering/expressions/optional-chains.ts index b86a9c728..7da847062 100644 --- a/packages/compiler/src/frontend/lowering/expressions/optional-chains.ts +++ b/packages/compiler/src/frontend/lowering/expressions/optional-chains.ts @@ -1,6 +1,6 @@ import { dynUndefinedExpr } from "../../../ir/build.js"; import * as ts from "../../ts7/adapter.js"; -import { DYN, JSVAL, STRING, UNDEFINED_T, VOID, isUnitType, typeEquals } from "../../../ir/ir.js"; +import { DYN, STRING, UNDEFINED_T, VOID, isUnitType, typeEquals } from "../../../ir/ir.js"; import type { IrExpr, IrStmt, SrcLoc } from "../../../ir/ir.js"; import { isNodeEsmFile, locOf } from "../../program.js"; import type { Lowerer } from "../lowerer.js"; @@ -86,15 +86,11 @@ export function isRequireMainFilename(lowerer: Lowerer, expr: ts.Expression): bo return !isNodeEsmFile(expr.getSourceFile(), lowerer.program); } -/** True when `expr` is the tail of an optional chain that must short-circuit - * whole: an unhandled deeper `?.` guarded by a unit-armed union or an island - * value. Dynamic tails need the guard because an ordinary read of the - * short-circuited undefined would throw; never-nullish receivers fold at the token. */ export function isOptionalChainTail(lowerer: Lowerer, expr: ts.Expression): boolean { const tail = chainTailDot(lowerer, expr); if (!tail) return false; const recvT = lowerer.mapTypeOf(lowerer.typeOf(tail.expression)); - if (recvT?.kind === "jsval" || recvT?.kind === "dyn") return true; + if (recvT?.kind === "dyn") return true; if (recvT?.kind !== "union") return false; const def = lowerer.unions.get(recvT.unionId); return !!def && def.arms.some(isUnitType); @@ -314,66 +310,7 @@ export function lowerOptionalChain( lowerer.chainHandled.delete(dotNode); } } - // An 'any' (island-handle) receiver: the nullish test asks the ENGINE - // value at runtime — null/undefined short-circuit to the engine's - // undefined (JS: null receivers yield undefined too), anything else - // proceeds as the plain island operation with the receiver evaluated - // once (argument side effects stay lazy, like every optChain). The - // result is an island value again ('any' in, 'any' out). - if (receiver.type.kind === "jsval") { - const id = `chain.${lowerer.chainCounter++}`; - const recvRef: IrExpr = { kind: "chainRecv", id, type: JSVAL, loc: locOf(recvNode) }; - if (dotNode === expr && ts.isCallExpression(expr)) { - // `a.b?.(...)` — a MEMBER callee: JS calls it with `this` bound to - // `a` and short-circuits a nullish member — exactly the engine's - // own `o.name?.()` (optCallMethod: the RECEIVER is `a`, evaluated - // once through the chain; a nullish `a` itself short-circuits - // earlier like any optional chain). Computed members keep a fence. - if (ts.isPropertyAccessExpression(recvNode) || ts.isElementAccessExpression(recvNode)) { - if (ts.isPropertyAccessExpression(recvNode) && !recvNode.questionDotToken) { - const obj = lowerer.lowerExpr(recvNode.expression); - if (obj.type.kind !== "jsval") - lowerer.badType(recvNode.expression, lowerer.typeOf(recvNode.expression)); - const args = expr.arguments.map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a)); - return { - kind: "jsOp", - op: "optCallMethod", - name: recvNode.name.text, - args: [obj, ...args], - type: JSVAL, - loc, - }; - } - lowerer.unsupported( - "SC1090", - expr, - "optional calls of computed 'any' member values (a[k]?.() — bind the member to a const first)", - ); - } - const args = expr.arguments.map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a)); - const body: IrExpr = { - kind: "jsOp", - op: "callFn", - args: [recvRef, ...args], - type: JSVAL, - loc, - }; - return { kind: "optChain", id, receiver, body, type: JSVAL, loc }; - } - // Member forms (`x?.y`, `x?.y(...)`, `x?.[i]`): re-dispatch the plain - // island lowering with the receiver node bound to the chain. - lowerer.chainRecvByNode.set(recvNode, recvRef); - lowerer.chainHandled.add(dotNode); - let body: IrExpr; - try { - body = lowerer.lowerExpr(expr); - } finally { - lowerer.chainRecvByNode.delete(recvNode); - lowerer.chainHandled.delete(dotNode); - } - if (body.type.kind !== "jsval") lowerer.badType(expr, lowerer.typeOf(expr)); - return { kind: "optChain", id, receiver, body, type: JSVAL, loc }; - } + const def = receiver.type.kind === "union" ? lowerer.unions.get(receiver.type.unionId) : undefined; if (!def || !def.arms.some(isUnitType)) { @@ -516,8 +453,7 @@ export function finishOptionalChain( (type.kind !== "union" || lowerer.armTag(type.unionId, UNDEFINED_T) < 0) && receiver.type.kind === "union" && (lowerer.unions.get(receiver.type.unionId)?.arms.some(isUnitType) ?? false) && - body.type.kind !== "generator" && - body.type.kind !== "jsval" + body.type.kind !== "generator" ? lowerer.withUndefinedArmOf(body.type) : null; if (hiddenOptionalResult) type = hiddenOptionalResult; diff --git a/packages/compiler/src/frontend/lowering/function-context.ts b/packages/compiler/src/frontend/lowering/function-context.ts index 06ddeb7ad..e31e194c5 100644 --- a/packages/compiler/src/frontend/lowering/function-context.ts +++ b/packages/compiler/src/frontend/lowering/function-context.ts @@ -157,7 +157,7 @@ export function captureContextBinding( for (let depth = stack.length - 2; depth >= 0; depth--) { const origin = bindingInContext(stack[depth]!, symbol); if (origin === null) continue; - // dyn/jsval retain their existing untraced box contract. Typed + // references use the backends' box tracing for capture cycles. origin.boxed = true; let parentEntry = origin; diff --git a/packages/compiler/src/frontend/lowering/generic-functions.ts b/packages/compiler/src/frontend/lowering/generic-functions.ts index 9363593b0..2560f47c4 100644 --- a/packages/compiler/src/frontend/lowering/generic-functions.ts +++ b/packages/compiler/src/frontend/lowering/generic-functions.ts @@ -1317,7 +1317,6 @@ function bindableImplicitIr(t: IrType | null): t is IrType { t !== null && t.kind !== "void" && t.kind !== "dyn" && - t.kind !== "jsval" && t.kind !== "caught" && t.kind !== "undefinedT" && t.kind !== "nullT" diff --git a/packages/compiler/src/frontend/lowering/lib-boundary.ts b/packages/compiler/src/frontend/lowering/lib-boundary.ts index e625d09bf..5be10e997 100644 --- a/packages/compiler/src/frontend/lowering/lib-boundary.ts +++ b/packages/compiler/src/frontend/lowering/lib-boundary.ts @@ -46,13 +46,11 @@ import type { Lowerer } from "./lowerer.js"; import { PoisonError } from "./lowerer.js"; import { canAdaptDynFuncTo, - canMarshalTypedFuncIntoIsland, DYN, DYN_HANDLE_KINDS, type IrExpr, type IrStmt, type IrType, - JSVAL, type SrcLoc, STRING, isDynTypedRefType, @@ -101,29 +99,9 @@ function dynCheckable(lowerer: Lowerer, want: IrType): boolean { * statement takes the runtime-fence path in JS sources. */ function coerceSlot(lowerer: Lowerer, arg: IrExpr, want: IrType, what: string): IrExpr { if (typeEquals(arg.type, want)) return arg; - // An ISLAND value in a typed intrinsic slot (`/x/.test(anyText)`, - // `" ".repeat(anyN)` — checker-`any` arguments the surface signatures - // accept): the VALIDATED island exit, exactly the dynCheck stance one - // branch down — strict for primitives, JSON round-trip for composites, - // a lying handle throws the catchable TypeError. Targets outside the - // exit set keep the named fence. - if (arg.type.kind === "jsval" && want.kind !== "jsval") { - // A jsval into a dyn slot: the by-reference jsval→dyn wrap — the same - // edge coerceToExpected converts (dyn slots accept engine values; - // world unification's engine-handle kind). - if (want.kind === "dyn") { - return { kind: "dynFromJsval", value: arg, type: DYN, loc: arg.loc }; - } - if (lowerer.boundaryExitSafe(want)) { - return { kind: "jsExit", value: arg, type: want, loc: arg.loc }; - } - fence( - lowerer, - "SC1100", - arg.loc, - `passing 'any'-typed values where '${lowerer.fmt(want)}' is expected (${what})`, - ); - } + + // Checked-value arguments validate against supported native slot types. + // A mismatch throws a catchable TypeError; unsupported targets refuse. if (arg.type.kind === "dyn" && want.kind !== "dyn") { if (dynCheckable(lowerer, want)) { return { kind: "dynCheck", value: arg, type: want, loc: arg.loc }; @@ -216,17 +194,10 @@ function enforceExprBoundary(lowerer: Lowerer, node: IrExpr): void { } if (kind === "arrIntrinsic") { const e = node; - if ( - e.receiver.type.kind === "dyn" || - e.receiver.type.kind === "jsval" || - isUnitType(e.receiver.type) - ) { - // No element type exists to validate a dyn receiver against — the - // honest answer is the operations-on-unknown fence. An island - // (jsval) receiver fences too: the exit would COPY the engine - // array, so a static intrinsic over it silently mutates the copy — - // the producing sites route jsval receivers through the engine's - // own methods instead. Other non-array receivers stay the + if (e.receiver.type.kind === "dyn" || isUnitType(e.receiver.type)) { + // No element type exists to validate a checked-value receiver against. + // Copying it would redirect mutations, so use its native checked-value + // methods instead. Other non-array receivers stay the // validator's ICE (frontend breakage, not a checked-dynamic // escape). fence( @@ -240,11 +211,7 @@ function enforceExprBoundary(lowerer: Lowerer, node: IrExpr): void { } if (kind === "callValue") { const e = node; - if ( - e.callee.type.kind === "dyn" || - e.callee.type.kind === "jsval" || - isUnitType(e.callee.type) - ) { + if (e.callee.type.kind === "dyn" || isUnitType(e.callee.type)) { fence(lowerer, "SC1100", e.loc, `calling '${lowerer.fmt(e.callee.type)}' values`); } if (e.callee.type.kind !== "func") return; // validator's ICE otherwise @@ -263,61 +230,9 @@ function enforceExprBoundary(lowerer: Lowerer, node: IrExpr): void { }); return; } - if (kind === "jsOp") { - // Engine-op arguments must be jsval. The producing sites marshal with - // jsvalIn, but a checker-`any` expression can LOWER to another world - // (dyn.this, the checked-dynamic tree WeakSet placeholder, JS rest-args) — re-apply - // jsvalIn's rules here: units become the engine's own units, typed - // values with an island representation marshal in, and dyn values (no - // dyn→engine bridge that preserves handles/functions) fence with - // jsvalIn's own message. - const e = node; - e.args.forEach((a, i) => { - if (a.type.kind === "jsval") return; - if (isUnitType(a.type)) { - e.args[i] = { - kind: "jsOp", - op: a.type.kind === "undefinedT" ? "undefLit" : "nullLit", - args: [], - type: JSVAL, - loc: a.loc, - }; - return; - } - if (a.type.kind === "dyn") { - fence( - lowerer, - "SC1100", - a.loc, - "passing 'unknown' values into dynamically-executed ('any'-typed) code (validate with 'as ' first)", - ); - } - if ( - lowerer.boundarySafe(a.type) || - (a.type.kind === "func" && - canMarshalTypedFuncIntoIsland( - a.type, - (id) => lowerer.shapes.get(id), - (id) => lowerer.unions.get(id), - )) - ) { - e.args[i] = { kind: "jsMarshal", value: a, type: JSVAL, loc: a.loc }; - return; - } - fence( - lowerer, - "SC1090", - a.loc, - `'${lowerer.fmt(a.type)}' values crossing into dynamically-executed ('any'-typed) code`, - ); - }); - return; - } if (kind === "dynCall" || kind === "dynInvoke") { - // Checked-dynamic call arguments must be dyn. Convertible typed values - // take the ordinary dynFrom crossing; island values have NO bridge - // into the checked-dynamic tree (a jsval handle cannot ride the deep-copy), so they - // fence — named, catchable at runtime in JS sources, never an ICE. + // Checked-value call arguments must be dyn. Convert supported typed + // values and refuse the rest with a named diagnostic. const e = node; if (kind === "dynInvoke") { const inv = e as Extract; @@ -332,13 +247,7 @@ function enforceExprBoundary(lowerer: Lowerer, node: IrExpr): void { } e.args.forEach((a, i) => { if (a.type.kind === "dyn") return; - if (a.type.kind === "jsval") { - // An island value in a checked-dynamic argument slot: the - // jsval→dyn crossing (by-reference wrap, scalars normalized) — - // the routed call converts it back by reference at the boundary. - e.args[i] = { kind: "dynFromJsval", value: a, type: DYN, loc: a.loc }; - return; - } + if (a.kind === "unitLit" || lowerer.dynConvertible(a.type)) { e.args[i] = { kind: "dynFrom", value: a, type: DYN, loc: a.loc }; return; diff --git a/packages/compiler/src/frontend/lowering/lower-array-sort.test.ts b/packages/compiler/src/frontend/lowering/lower-array-sort.test.ts index 9c1fd0b3b..6e65e55f9 100644 --- a/packages/compiler/src/frontend/lowering/lower-array-sort.test.ts +++ b/packages/compiler/src/frontend/lowering/lower-array-sort.test.ts @@ -1,5 +1,5 @@ import { expect, test } from "vitest"; -import { F64, JSVAL, type IrExpr, type IrFunction, type IrStmt } from "../../ir/ir.js"; +import { F64, DYN, type IrExpr, type IrFunction, type IrStmt } from "../../ir/ir.js"; import { everyStmtList } from "../../ir/traverse.js"; import { buildArraySortFn, buildBytesSortFn } from "./lower-array-sort.js"; @@ -22,7 +22,7 @@ test("sort helpers give every IR site its own node", () => { const helpers = [ buildArraySortFn("%arr.sort.0", F64, 2, false, null, loc), buildArraySortFn("%arr.toSorted.1", F64, 1, true, null, loc), - buildArraySortFn("%arr.sort.2", JSVAL, 2, false, null, loc), + buildArraySortFn("%arr.sort.2", DYN, 2, false, null, loc), buildArraySortFn("%arr.sort.3", union, 2, true, 1, loc), buildBytesSortFn("%bytes.sort.4", 2, true, loc), buildBytesSortFn("%bytes.sort.5", 0, false, loc), diff --git a/packages/compiler/src/frontend/lowering/lower-array-sort.ts b/packages/compiler/src/frontend/lowering/lower-array-sort.ts index a7a755f6d..fe12d027e 100644 --- a/packages/compiler/src/frontend/lowering/lower-array-sort.ts +++ b/packages/compiler/src/frontend/lowering/lower-array-sort.ts @@ -7,7 +7,6 @@ import { type IrLocal, type IrStmt, type IrType, - JSVAL, VOID, type SrcLoc, arrayOf, @@ -330,15 +329,7 @@ export function buildArraySortFn( loc, }; } - if (elem.kind === "jsval") { - return { - kind: "jsOp", - op: "eq", - args: [value, { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc }], - type: BOOL, - loc, - }; - } + return null; }; const greater: Greater = (left, right) => { diff --git a/packages/compiler/src/frontend/lowering/lower-assert.ts b/packages/compiler/src/frontend/lowering/lower-assert.ts index ecf26ff74..71e564b68 100644 --- a/packages/compiler/src/frontend/lowering/lower-assert.ts +++ b/packages/compiler/src/frontend/lowering/lower-assert.ts @@ -395,9 +395,8 @@ function lowerAssertEqual( // compares are therefore honest reference equality (a trace // context's stamped .error, a caught dyn, and the static error's // own boxing are the same node exactly when Node's objects are the - // same), and the deep walk compares the encoding's name/message/ - // code — Node's deepStrictEqual over Errors. Island round trips - // re-encode and lose the identity (SEMANTICS.md). + // same). The deep walk compares the retained error data without + // re-encoding and losing identity (SEMANTICS.md). (k === "object" && e.type.kind === "object" && e.type.className === "%Error") || (deep && k !== "bytes" && k !== "object" && lowerer.dynConvertible(e.type)); if (!ok) { diff --git a/packages/compiler/src/frontend/lowering/lower-async-iteration.ts b/packages/compiler/src/frontend/lowering/lower-async-iteration.ts index 9294270f5..79fb0db0c 100644 --- a/packages/compiler/src/frontend/lowering/lower-async-iteration.ts +++ b/packages/compiler/src/frontend/lowering/lower-async-iteration.ts @@ -11,7 +11,7 @@ import { BOOL, DYN, type IrExpr, type IrStmt, type IrType, VOID } from "../../ir import { locOf } from "../program.js"; import { extractIteratorValue } from "./lower-generators.js"; import { streamSidesOf } from "./lower-stream.js"; -import { staticReadableStreamElementType } from "./lower-island.js"; +import { staticReadableStreamElementType } from "./lower-stdlib.js"; import { genResultRecord } from "../type-mapper.js"; import { sideEffectFreeOptionValue } from "./surfaces.js"; diff --git a/packages/compiler/src/frontend/lowering/lower-calls.ts b/packages/compiler/src/frontend/lowering/lower-calls.ts index 2a972b8ea..869e51a22 100644 --- a/packages/compiler/src/frontend/lowering/lower-calls.ts +++ b/packages/compiler/src/frontend/lowering/lower-calls.ts @@ -32,7 +32,6 @@ import { type IrParam, type IrStmt, type IrType, - JSVAL, NULL_T, STRING, SYMBOL_T, @@ -51,16 +50,8 @@ import { } from "../../ir/ir.js"; import { isJsSourceFile, locOf, requireSpecOf } from "../program.js"; import { isGenericCallableMemberType, typeKey } from "../type-mapper.js"; -import { - PoisonError, - dynFallbackType, - importCallHandleType, - jsFuncNameOf, - newFnCtx, - staticImportNamespaceType, -} from "./lowerer.js"; +import { dynFallbackType, jsFuncNameOf, newFnCtx, staticImportNamespaceType } from "./lowerer.js"; import { NARROW_FIRST, STRING_INDEX_METHODS, STR_METHODS, stdlibGlobalNameOf } from "./surfaces.js"; -import { requiresDynamicDiag } from "../../diagnostics/diagnostic.js"; import { dynStringReceiver } from "./containers/dynamic-receivers.js"; import { lowerArrayConstructor, @@ -172,7 +163,6 @@ import { spreadNeedsRuntimeArity, completeFuncValueArgs, lowerSpreadArgsCall, - omittedArgFor, completeArgs, } from "./call-arguments.js"; import { isThisParameter, type ParamShape } from "./call-signatures.js"; @@ -184,30 +174,6 @@ import { genericCallInstance, } from "./generic-functions.js"; -/** An island call result the .d.ts DECLARES as a primitive exits eagerly - * to that static type — the member-read rule's call sibling (see the - * getProp lowering in lower-exprs.ts): primitives copy by value, every - * static consumer works on the result, and a lying declaration throws the - * catchable TypeError. Chain-handled forms stay jsval (the optChain's - * unit path is the engine's undefined). */ -export function islandPrimitiveExit( - lowerer: Lowerer, - call: ts.CallExpression, - result: IrExpr, -): IrExpr { - if (call.questionDotToken) return result; - if (ts.isPropertyAccessExpression(call.expression) && call.expression.questionDotToken) - return result; - const declared = lowerer.mapTypeOf(lowerer.typeOf(call)); - if ( - declared && - (declared.kind === "f64" || declared.kind === "bool" || declared.kind === "string") - ) { - return { kind: "jsExit", value: result, type: declared, loc: result.loc }; - } - return result; -} - export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { const loc = locOf(expr); @@ -448,16 +414,7 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { } const args = expr.arguments.map((a) => { const lowered = lowerer.lowerExpr(a); - if (lowered.type.kind === "jsval") { - // Node prints objects with util.inspect formatting, which - // String() cannot match — silent divergence is banned. Templates - // are ToString (Node-exact), casts are validated: both honest. - lowerer.unsupported( - "SC1090", - a, - `${surface} of 'any' values (wrap it: ${surface}(\`\${v}\`), or validate with 'as ' first)`, - ); - } + // Checked-dynamic values carry their own shape, so the runtime // renders them exactly like Node's console formatter renders a // non-format argument: strings VERBATIM, everything else through @@ -800,23 +757,6 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { if (name === "String") return lowerer.ensureString(arg, argNode); } - // __island_eval: the internal island testing hook (eval in the embedded - // engine, String(result) back). Provenance-checked like setTimeout. - // Only meaningful when the engine is linked: without --dynamic it is a - // clean requires-dynamic diagnostic, never an ICE or a link error. - if ( - ts.isIdentifier(expr.expression) && - expr.expression.text === "__island_eval" && - lowerer.isStdlibSymbol(lowerer.resolveValueSymbol(expr.expression) ?? undefined) - ) { - if (!lowerer.dynamic) { - lowerer.pushDiag(requiresDynamicDiag("'__island_eval'", loc)); - throw new PoisonError(); - } - const code = lowerer.lowerExprExpecting(expr.arguments[0]!, STRING); - return { kind: "libCall", fn: "island.eval", args: [code], type: STRING, loc }; - } - // Computed calls preserve their evaluated receiver just like dotted // calls, including when the property is keyed by a native symbol. if ( @@ -872,140 +812,6 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { } } - // Island calls. A property-access callee whose receiver is an 'any' - // value is an engine method call (this = receiver, JS-exact); any other - // 'any'-typed callee is an engine function call. Arguments marshal in; - // results stay island values. - // A questionDotToken here is always chain-handled (the gate at the top - // of lowerCall routed unhandled ones to the chain lowering), so - // `x?.y(...)` re-dispatches into this same method-call form with the - // receiver reading back as the chain's bound handle. - if ( - ts.isPropertyAccessExpression(expr.expression) && - lowerer.isIslandExpr(expr.expression.expression) - ) { - // Typed fetch/Web Streams handles map to island values under - // --dynamic, but their inventory still owns which methods exist. - // Reject unsupported rows before the universal jsval method path. - lowerer.fenceStaticResponseMember(expr.expression, "call"); - lowerer.fenceStaticHeadersMember(expr.expression, "call"); - lowerer.fenceStaticReadableStreamMember(expr.expression, "call"); - const receiver = lowerer.lowerExpr(expr.expression.expression); - // A checker-`any` receiver whose VALUE lives in the checked-dynamic tree (a - // checked-dynamic local behind the any-typed spelling — the JS - // WeakSet placeholder, rest-args arrays): the checked-dynamic - // method machinery owns it — receiver-kind dispatch, stored-member - // calls, honest fences — never an engine op over a dyn value. - if (receiver.type.kind === "dyn") { - const served = lowerDynReceiverMethodCall(lowerer, expr, expr.expression); - if (served) return served; - lowerer.unsupported( - "SC1100", - expr, - `'.${expr.expression.name.text}()' calls through 'unknown'-valued receivers in dynamically-executed positions`, - ); - } - const args = expr.arguments.map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a)); - const result: IrExpr = { - kind: "jsOp", - op: "callMethod", - name: expr.expression.name.text, - args: [receiver, ...args], - type: JSVAL, - loc, - }; - return islandPrimitiveExit(lowerer, expr, result); - } - if (lowerer.isIslandExpr(expr.expression)) { - // `o.m(...)` where o LOWERS checked-dynamic and the checker types - // `o.m` 'any' (a member read behind an 'object'/'unknown'-typed - // bag): METHOD-CALL semantics — receiver-kind dispatch (dynInvoke), - // so `this` binds and a WRAPPED island receiver runs the ENGINE's - // own method (the routed-ops lane). A stored-member dynCall would - // call engine prototype methods receiverless — the this-less - // `list.slice()` ToObject TypeError. Spread arguments keep the - // stored-member path below (the runtime-arity lane owns them). - if ( - ts.isPropertyAccessExpression(expr.expression) && - !expr.expression.questionDotToken && - !expr.questionDotToken && - !expr.arguments.some((a) => ts.isSpreadElement(a)) - ) { - const recvProbe = tryLowerExpression(lowerer, expr.expression.expression); - if (recvProbe?.type.kind === "dyn") { - const args = expr.arguments.map((a) => lowerer.lowerExprExpecting(a, DYN)); - return { - kind: "dynInvoke", - recv: recvProbe, - method: expr.expression.name.text, - calleeName: expr.expression.getText(), - args, - type: DYN, - loc, - }; - } - } - const callee = lowerer.lowerExpr(expr.expression); - // A checker-`any` callee that LOWERED checked-dynamic (a dyn member - // chain's stored function): the checked-dynamic tree's own call — dynCall reads and - // calls the stored member with Node's is-not-a-function TypeError - // on refusal. - if (callee.type.kind === "dyn") { - const args = expr.arguments.map((a) => lowerer.lowerExprExpecting(a, DYN)); - const calleeName = ts.isPropertyAccessExpression(expr.expression) - ? expr.expression.getText() - : ts.isIdentifier(expr.expression) - ? expr.expression.text - : "value"; - return { kind: "dynCall", callee, calleeName, args, type: DYN, loc }; - } - // `fn(...args)` — a TRAILING spread into an island call: the - // engine's own apply (`fn.apply(undefined, argsArray)`); leading - // plain arguments prepend through `[l1, l2].concat(argsArray)` - // (concat flattens the array argument one level — exactly the - // spread). Other spread shapes keep the syntax fence. - if ( - expr.arguments.length > 0 && - ts.isSpreadElement(expr.arguments[expr.arguments.length - 1]!) && - expr.arguments.slice(0, -1).every((a) => !ts.isSpreadElement(a)) - ) { - const spread = expr.arguments[expr.arguments.length - 1] as ts.SpreadElement; - const spreadV = lowerer.jsvalIn(lowerer.lowerExpr(spread.expression), spread.expression); - const leading = expr.arguments - .slice(0, -1) - .map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a)); - const argsArr: IrExpr = - leading.length === 0 - ? spreadV - : { - kind: "jsOp", - op: "callMethod", - name: "concat", - args: [{ kind: "jsOp", op: "arrLit", args: leading, type: JSVAL, loc }, spreadV], - type: JSVAL, - loc, - }; - const result: IrExpr = { - kind: "jsOp", - op: "callMethod", - name: "apply", - args: [callee, { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc }, argsArr], - type: JSVAL, - loc, - }; - return islandPrimitiveExit(lowerer, expr, result); - } - const args = expr.arguments.map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a)); - const result: IrExpr = { - kind: "jsOp", - op: "callFn", - args: [callee, ...args], - type: JSVAL, - loc, - }; - return islandPrimitiveExit(lowerer, expr, result); - } - // Builtin-module functions (fs, path, os, ...): named imports whose // binding resolves to a supported builtin specifier lower to `libCall`. // A user local shadowing an import has a different symbol and never @@ -1106,9 +912,8 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { } // STATIC parseInt/parseFloat/isNaN/isFinite (num.parseInt / // num.parseFloat / num.isNaN / number.isFinite — scr_string.c, - // scr_lib.c; ECMA-exact, Node is the oracle). Provenance like the - // island globals: a user function shadowing the name has a - // different, non-stdlib symbol. parseInt's omitted radix completes + // scr_lib.c; ECMA-exact, Node is the oracle). Declaration provenance + // excludes shadowed names. parseInt's omitted radix completes // to 0 — the spec's "undefined" (base 10 with the 0x hex escape); // parseFloat lowers the STRING form only (Node would ToString other // values — no static story); isNaN/isFinite's arguments are @@ -1203,10 +1008,7 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { let data: IrExpr; if (v.type.kind === "dyn") { data = v; - } else if ( - v.kind === "unitLit" || - (v.type.kind !== "jsval" && lowerer.dynConvertible(v.type)) - ) { + } else if (v.kind === "unitLit" || lowerer.dynConvertible(v.type)) { data = { kind: "dynFrom", value: v, type: DYN, loc }; } else { lowerer.noLowering( @@ -1223,11 +1025,11 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { loc, }; } - // Island-backed globals (parseFloat, isFinite): the engine's own + // global function executes — callFn(globalGet(name)) — and the // result exits to the declared static type. A user function // shadowing the name has a different, non-stdlib symbol. - const islFn = lowerer.islandGlobalFnOf(expr.expression); + const islFn = lowerer.stdlibGlobalFnOf(expr.expression); if (islFn && expr.arguments.length !== islFn.args.length) { const name = expr.expression.text; lowerer.noLowering( @@ -1238,35 +1040,18 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { if (islFn && expr.arguments.length === islFn.args.length) { // The static forms above already took the exactly-typed argument // (a string for parseFloat, a number for isFinite): name the - // argument type that sent this call to the engine, so the message - // states the condition rather than reading as if the global itself - // were unsupported. - const argText = lowerer.dynamic ? "" : loweredArgumentText(lowerer, expr.arguments[0]!); + // argument type that refused the call, so the message states the + // condition rather than reading as if the global itself were + // unsupported. + const argText = loweredArgumentText(lowerer, expr.arguments[0]!); const exact = expr.expression.text === "isFinite" ? "number" : "string"; - lowerer.requireDynamicApi( - `'${expr.expression.text}' with a '${argText}' argument (only a ${exact} argument compiles statically)`, + lowerer.refuseUnsupportedApi( + `'${expr.expression.text}' with a '${argText}' argument`, expr, exact === "string" - ? "convert the argument explicitly first (for example String(x), or narrow the union), or build with --dynamic to run the coercing call in the embedded engine (adds ~620KB to the binary)" - : "narrow the argument to a number first (isFinite over a number compiles statically), or build with --dynamic to run the coercing call in the embedded engine (adds ~620KB to the binary)", + ? "only a string argument compiles statically: convert the argument explicitly first (for example String(x), or narrow the union)" + : "only a number argument compiles statically: narrow the argument to a number first", ); - const callee: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: expr.expression.text, - args: [], - type: JSVAL, - loc, - }; - const args = expr.arguments.map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a)); - const result: IrExpr = { - kind: "jsOp", - op: "callFn", - args: [callee, ...args], - type: JSVAL, - loc, - }; - return { kind: "jsExit", value: result, type: islFn.ret, loc }; } } @@ -1538,8 +1323,6 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { lowerPromiseAllTupleCall(lowerer, expr, expr.expression) ?? lowerer.lowerPromiseStaticCall(expr, expr.expression) ?? lowerPromiseRejectCall(lowerer, expr, expr.expression) ?? - // Before the island path: regex-argument replace/replaceAll/split - // lower STATICALLY; only the string-pattern overloads are island. lowerRegexMethodCallWithOptionalArg(lowerer, expr, expr.expression) ?? lowerUrlStaticCall(lowerer, expr, expr.expression) ?? lowerer.lowerUrlMethodCall(expr, expr.expression) ?? @@ -1588,7 +1371,7 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { lowerStringPrototypeCall(lowerer, expr, expr.expression) ?? lowerStringMethodCallWithOptionalArgs(lowerer, expr, expr.expression) ?? // Typed-array/Buffer receivers and the Buffer statics — before the - // island path (bytes never cross the boundary). + lowerer.lowerBytesMethodCall(expr, expr.expression) ?? lowerBytesStaticCall(lowerer, expr, expr.expression) ?? lowerBufferStaticCallWithNarrowedArg(lowerer, expr, expr.expression) ?? @@ -1596,7 +1379,7 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { // stdlib chokepoint claims the member). lowerStreamStaticCall(lowerer, expr, expr.expression) ?? // Primitive toString calls, including numeric radices, use the - // native formatters before the island method path. + lowerNumberToStringCall(lowerer, expr, expr.expression) ?? // Union receivers whose every arm has a text — the ngrok // `(chunk: Buffer | string) => chunk.toString()` idiom. @@ -1605,9 +1388,7 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { // override-free program classes — "[object Object]", folded. lowerDefaultToStringCall(lowerer, expr, expr.expression) ?? // The remaining primitive prototype statics — toExponential(), - // both toFixed() forms, hasOwnProperty over literal keys. Before - // the island path. Optional-chain spellings first enter the chain - // machinery above, then re-enter here with a narrowed chainRecv. + // both toFixed() forms, hasOwnProperty over literal keys. lowerPrimitiveProtoCall( lowerer, expr, @@ -1619,23 +1400,18 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { // compile-time-known, so a literal key folds to a constant. lowerClassHasOwnPropertyCall(lowerer, expr, expr.expression) ?? lowerObjectOwnMethodCall(lowerer, expr, expr.expression) ?? - // Response constructor-object operations are unsupported in both - // tiers. Keep their SC2020 inventory contract ahead of the island - // and generic-call fallbacks (Response.json otherwise reports the - // generic SC1090 fence). + // Refuse Response constructor operations before generic-call + // fallbacks can report an unrelated SC1090 diagnostic. lowerer.fenceUnsupportedFetchConstructorMember(expr.expression) ?? // Static fetch responses are checked-dynamic handles, but the // adopted undici declaration exposes a wider API than that handle. - // Fence unimplemented members before either the island or generic - // dyn receiver path can compile them into a runtime missing-method - // failure. Dynamic-only rows pass through these checks unchanged. + // Refuse unsupported members before generic checked-value dispatch. lowerer.fenceStaticResponseMember(expr.expression, "call") ?? lowerer.fenceStaticHeadersMember(expr.expression, "call") ?? lowerer.fenceStaticReadableStreamMember(expr.expression, "call") ?? - lowerer.lowerIslandMethodCall(expr, expr.expression) ?? + lowerer.lowerStdlibMethodCall(expr, expr.expression) ?? // Dyn receivers (JSON.parse-derived `unknown`/`any` values) — - // validated-extract, then the static machinery. After the island - // path (jsval receivers belong there), before the fences. + lowerDynReceiverMethodCall(lowerer, expr, expr.expression) ?? // Narrowing filters (inferred predicates, filter(Boolean)) claim // their calls before the generic array HOF path types the result @@ -1773,8 +1549,6 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { if (ts.isElementAccessExpression(expr.expression)) { const symbolMethod = lowerClassSymbolMethodCall(lowerer, expr); if (symbolMethod) return symbolMethod; - const headersIterator = lowerer.lowerDynamicHeadersIteratorCall(expr, expr.expression); - if (headersIterator) return headersIterator; lowerer.fenceUnsupportedFetchConstructorMember(expr.expression); lowerer.fenceStaticResponseMember(expr.expression, "call"); lowerer.fenceStaticHeadersMember(expr.expression, "call"); @@ -1980,39 +1754,7 @@ export function lowerCall(lowerer: Lowerer, expr: ts.CallExpression): IrExpr { const spreadServed = lowerSpreadArgsCall(lowerer, expr, callee, loc); if (spreadServed) return spreadServed; } - // An ISLAND-REST func value called directly (`f(1, 2)` where f is the - // --dynamic `(...args) =>` lambda): the type SPELLS its trailing - // engine-array param — complete the call exactly like completeArgs' - // island pack (fixed slots positionally, missing ones with the - // engine's undefined, the surplus marshaled into one fresh engine - // array). JS arity, no runtime machinery. - if ( - callee.type.rest === true && - callee.type.restAbi === "jsval" && - callee.type.params.length >= 1 && - callee.type.params[callee.type.params.length - 1]!.kind === "jsval" && - !expr.arguments.some((a) => ts.isSpreadElement(a)) - ) { - const fixed = callee.type.params.slice(0, -1); - const args: IrExpr[] = fixed.map((p, i) => { - const a = expr.arguments[i]; - if (a) return lowerer.lowerExprExpecting(a, p); - const absent = omittedArgFor(lowerer, p, loc); - if (!absent) { - lowerer.unsupported( - "SC1090", - expr, - "calls omitting a non-optional parameter of the callee's type", - ); - } - return absent; - }); - const restArgs = expr.arguments - .slice(fixed.length) - .map((a) => lowerer.lowerExprExpecting(a, JSVAL)); - args.push({ kind: "jsOp", op: "arrLit", args: restArgs, type: JSVAL, loc }); - return { kind: "callValue", callee, args, type: callee.type.ret, loc }; - } + // A JS call with MORE arguments than the callee's lowered signature // (`cb(1, 'x')` where the mustCall wrapper's inferred type declared // fewer params — tsc's JS world doesn't police arity): ride the @@ -2613,7 +2355,6 @@ function lowerArrayPrototypeBorrowCall( access: ts.PropertyAccessExpression, ): IrExpr | null { if ( - lowerer.dynamic || !isJsSourceFile(call.getSourceFile()) || call.questionDotToken || access.questionDotToken || @@ -2656,12 +2397,7 @@ function lowerObjectOwnPrototypeCall( call: ts.CallExpression, access: ts.PropertyAccessExpression, ): IrExpr | null { - if ( - lowerer.dynamic || - access.name.text !== "call" || - !ts.isPropertyAccessExpression(access.expression) - ) - return null; + if (access.name.text !== "call" || !ts.isPropertyAccessExpression(access.expression)) return null; const method = access.expression; const enumerable = method.name.text === "propertyIsEnumerable"; if (method.name.text !== "hasOwnProperty" && !enumerable) return null; @@ -2691,7 +2427,6 @@ function lowerObjectOwnMethodCall( ): IrExpr | null { const method = access.name.text; if ( - lowerer.dynamic || call.questionDotToken || access.questionDotToken || (method !== "hasOwnProperty" && method !== "propertyIsEnumerable") || @@ -2936,12 +2671,7 @@ function lowerObjectPrototypeCall( call: ts.CallExpression, access: ts.PropertyAccessExpression, ): IrExpr | null { - if ( - lowerer.dynamic || - access.name.text !== "call" || - !ts.isPropertyAccessExpression(access.expression) - ) - return null; + if (access.name.text !== "call" || !ts.isPropertyAccessExpression(access.expression)) return null; const method = access.expression; const prototype = method.expression; if ( @@ -4189,13 +3919,11 @@ function lowerArrayIsArrayCall( // (`Array.isArray(tlds)` on `string | readonly string[]` — the // narrowing test tsc's control flow then builds on); several array // arms OR their tag tests, and zero arms fold to false — both only - // over side-effect-free reads (the operand re-evaluates/drops, the - // `in`-operator fold discipline). dyn/caught/jsval arms have no - // static tag answer and keep the narrow-first fence. + // over side-effect-free reads. Opaque arms have no static tag answer + // and keep the narrow-first fence. const unionId = arg.type.unionId; const def = lowerer.unions.get(unionId); - const opaque = - !def || def.arms.some((a) => a.kind === "dyn" || a.kind === "caught" || a.kind === "jsval"); + const opaque = !def || def.arms.some((a) => a.kind === "dyn" || a.kind === "caught"); const arrayTags = lowerer.arrayValueTags(arg.type.unionId); const freeRead = arg.kind === "varRef" || arg.kind === "recordGet" || arg.kind === "fieldGet"; if (!opaque && arrayTags.length === 1) { @@ -4231,7 +3959,7 @@ function lowerArrayIsArrayCall( `Array.isArray on '${lowerer.fmt(arg.type)}' values (narrow first: check a discriminant field, or compare with '!== undefined'/'!== null' for unit arms)`, ); } - if (arg.type.kind === "jsval" || arg.type.kind === "caught") return null; + if (arg.type.kind === "caught") return null; if (arg.kind === "varRef" || arg.kind === "recordGet" || arg.kind === "fieldGet") { return { kind: "boolLit", value: lowerer.isArrayValueType(arg.type), type: BOOL, loc }; } @@ -4806,23 +4534,14 @@ function reconcileOverloadReturn( // site's own mapping (and that site's honest fences). Unit narrowing // follows maybeNarrow's stance — a unit arm has no payload to extract. if (!rt || rt.kind === "void" || isUnitType(rt) || typeEquals(rt, call.type)) return call; - // An ISLAND-valued implementation return (`any` under --dynamic): the + // resolved overload's return type is a claim tsc never checked against // the body — extracting it HERE would throw the boundary TypeError // where Node just lets the value flow (functionOverloads35: the // implementation returns its object argument under a number-returning // overload signature; Node exits clean). The checker-trust trap keeps // governing edges the checker actually vouches for; this edge it never - // did. The handle stays the value's only story: bindings store it - // (uncheckedOverloadHandleCall's rule at the declaration sites), and - // uses dispatch to engine ops like any island value. - if (call.type.kind === "jsval") return call; - // The CHECKED-DYNAMIC twin of the island rule: an `any`-returning - // implementation under a typed overload signature is the same - // never-vouched-for edge (functionOverloads35's shape without - // --dynamic) — extracting the resolved type HERE would throw the - // boundary TypeError where Node lets the value flow. Uses stay - // checked per read like every any-origin value. + // did. The checked value stays in bindings and is validated per use. if (call.type.kind === "dyn") return call; if (call.type.kind === "union" && rt.kind !== "union") { const helper = lowerer.narrowedArmHelper(call.type.unionId, rt, call.loc); @@ -4870,24 +4589,6 @@ function templateEscapesValid(raw: string): boolean { return true; } -/** Tagged templates `tag\`a${x}b\`` — ES's call: tag(strings, ...values). - * The strings object is a per-SITE lazily initialized hidden array global, - * so the spec's identity contract holds — the same site evaluated twice - * hands the tag the SAME array; two sites never share. TemplateStringsArray - * maps to string[] (type-mapper.ts), so the array rides the ordinary - * slot-directed coercion into whatever the tag's first parameter wants - * — string[] exactly, an `any` slot through the dyn boundary, a rest - * pack's first element. Checked tags receive frozen cooked and raw - * arrays with the standard nonenumerable `.raw` descriptor. Typed direct - * tags retain the string-array representation. - * - * Tag forms: a top-level declared function (the direct-call fast path — - * overload sets reconcile through the resolved signature exactly like - * plain calls), an island value under --dynamic (engine method/function - * call with the engine's cooked/raw template object), and - * a checked-dynamic value (the dynCall boundary — a non-function tag - * throws Node's catchable TypeError). Everything else — generic tags, - * method tags, function-value bindings — fences by name. */ export function lowerTaggedTemplate(lowerer: Lowerer, expr: ts.TaggedTemplateExpression): IrExpr { const loc = locOf(expr); const pieces = ts.isNoSubstitutionTemplateLiteral(expr.template) @@ -4912,53 +4613,6 @@ export function lowerTaggedTemplate(lowerer: Lowerer, expr: ts.TaggedTemplateExp const values: readonly ts.Expression[] = ts.isNoSubstitutionTemplateLiteral(expr.template) ? [] : expr.template.templateSpans.map((s) => s.expression); - - // Island tags (--dynamic): the engine call forms, mirroring lowerCall's - // island paths — a property-access tag is a method call (this = the - // receiver, JS-exact), any other island tag a function call. The - // strings argument builds ENGINE-NATIVE with its `.raw` property (the - // tplStrings op): a JSON marshal would drop `.raw`, and tags dispatch - // on it (the outdent idiom treats a raw-less argument as its OPTIONS - // form and answers a function). A fresh array per evaluation — tags - // caching by strings identity re-compute per call (SEMANTICS.md). - const islandStrings = (): IrExpr => ({ - kind: "jsOp", - op: "tplStrings", - args: [ - ...pieces.map((p): IrExpr => ({ - kind: "jsMarshal", - value: { kind: "strLit", value: p.text, type: STRING, loc }, - type: JSVAL, - loc, - })), - ...pieces.map((p): IrExpr => ({ - kind: "jsMarshal", - value: { kind: "strLit", value: templateRawTextOf(p), type: STRING, loc }, - type: JSVAL, - loc, - })), - ], - type: JSVAL, - loc, - }); - if (ts.isPropertyAccessExpression(expr.tag) && lowerer.isIslandExpr(expr.tag.expression)) { - const receiver = lowerer.lowerExpr(expr.tag.expression); - const args = [islandStrings(), ...values.map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a))]; - return { - kind: "jsOp", - op: "callMethod", - name: expr.tag.name.text, - args: [receiver, ...args], - type: JSVAL, - loc, - }; - } - if (lowerer.isIslandExpr(expr.tag)) { - const callee = lowerer.lowerExpr(expr.tag); - const args = [islandStrings(), ...values.map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a))]; - return { kind: "jsOp", op: "callFn", args: [callee, ...args], type: JSVAL, loc }; - } - // Direct call of a top-level declared function — the plain-call fast // path with the strings array as the leading completed argument. if (ts.isIdentifier(expr.tag) && !lowerer.isSelfReference(expr.tag)) { @@ -5178,48 +4832,21 @@ function loweredTemplateStrings( * wrapper's await re-throws it), and a handler throw rejects the * result — the spec's onFulfilled rules by construction. Null for * non-promise receivers and other members. */ -/** The storage type behind a promise-valued expression whose CHECKER type - * has no mapping — the dynamic-import receiver rule (--dynamic): a direct - * `import("...")` call is the island promise itself; an identifier bound - * to a promise-of-jsval local or module global answers the binding's - * type. Null everywhere else. */ -function islandPromiseStorageTypeOf(lowerer: Lowerer, e: ts.Expression): IrType | null { - const direct = lowerer.dynamic ? importCallHandleType(e) : staticImportNamespaceType(lowerer, e); + +function modulePromiseStorageTypeOf(lowerer: Lowerer, e: ts.Expression): IrType | null { + const direct = staticImportNamespaceType(lowerer, e); if (direct?.kind === "promise") return direct; if (!ts.isIdentifier(e)) return null; const local = lowerer.resolveLocal(e); - if ( - local?.type.kind === "promise" && - (local.type.inner.kind === "jsval" || local.type.inner.kind === "moduleNs") - ) - return local.type; + if (local?.type.kind === "promise" && local.type.inner.kind === "moduleNs") return local.type; if (local) return null; let sym = lowerer.checker.getSymbolAtLocation(e); if (sym && sym.flags & ts.SymbolFlags.Alias) sym = lowerer.checker.getAliasedSymbol(sym); const g = sym ? lowerer.globalsBySymbol.get(sym) : undefined; - if ( - g?.type.kind === "promise" && - (g.type.inner.kind === "jsval" || g.type.inner.kind === "moduleNs") - ) - return g.type; + if (g?.type.kind === "promise" && g.type.inner.kind === "moduleNs") return g.type; return null; } -/** Marks an INLINE then-handler's unannotated identifier parameters for - * the island-handle (jsval) binding type — paramShape's early-out. Only - * the inline arrow/function forms qualify: a handler VALUE keeps its own - * declared signature (and the settled-type equality check below). */ -function markJsvalHandlerParams(lowerer: Lowerer, handler: ts.Expression): void { - let e = handler; - while (ts.isParenthesizedExpression(e)) e = e.expression; - if (!ts.isArrowFunction(e) && !ts.isFunctionExpression(e)) return; - for (const p of e.parameters) { - if (ts.isIdentifier(p.name) && p.type === undefined && !p.dotDotDotToken && !p.initializer) { - lowerer.jsvalParamOverrides.add(p); - } - } -} - function markModuleNsHandlerParams( lowerer: Lowerer, handler: ts.Expression, @@ -5247,12 +4874,9 @@ export function lowerPromiseMethodCall( lowerer.mapTypeOf(lowerer.typeOf(access.expression)) ?? dynFallbackType(lowerer, access.expression, lowerer.typeOf(access.expression)); // A dynamic-import promise under an unmappable checker type - // (`Promise` — module-namespace types have no - // static mapping): the BINDING holds the island promise - // (importCallHandleType / the island-HANDLE var rules), so the storage - // type is the receiver's truth. Direct `import("./m").then(...)` - // spells the same promise with no binding at all. - if (!recvT) recvT = islandPromiseStorageTypeOf(lowerer, access.expression); + // (`Promise`) uses the module promise's native + // storage type. Direct `import("./m").then(...)` needs no binding. + if (!recvT) recvT = modulePromiseStorageTypeOf(lowerer, access.expression); if (recvT?.kind !== "promise") return null; if (!lowerer.isStdlibMember(access)) return null; const loc = locOf(call); @@ -5291,20 +4915,7 @@ export function lowerPromiseMethodCall( } // The receiver evaluates FIRST, in the enclosing function, like JS. let receiver = lowerer.lowerExpr(access.expression); - // A PACKAGE-returned promise lowers as an island value (jsval): the - // promise lives in the engine, so bridge it — a static promise the - // engine promise settles (fulfillment = the retained handle or void, - // rejection = the bridged reason) — and desugar over the BRIDGE - // exactly like a native receiver. This is the classic CLI entry line, - // `program.parseAsync(process.argv).catch(handler)`. - if (receiver.type.kind === "jsval") { - receiver = { - kind: "jsBridgePromise", - value: receiver, - type: { kind: "promise", inner: recvT.inner.kind === "void" ? VOID : JSVAL }, - loc, - }; - } + if (receiver.type.kind === "dyn" && lowerer.dynConvertible(recvT)) receiver = lowerer.coerceInto(access.expression, receiver, recvT); if (receiver.type.kind !== "promise") { @@ -5312,9 +4923,8 @@ export function lowerPromiseMethodCall( // a lowering gap, named rather than ICEd on. lowerer.unsupported("SC1090", call, `'.${member}' on this receiver`); } - // The wrapper types follow the RECEIVER's promise type (the bridge's - // promise-of-jsval for package receivers, the mapped type otherwise); - // typed uses of the settled value exit through coerceInto below. + // Wrapper types follow the receiver's promise type; typed uses of the + // settled value convert through coerceInto below. const promT = receiver.type; const inner = promT.inner; @@ -5385,8 +4995,6 @@ export function lowerPromiseMethodCall( ); } const R = resultT.inner; - if (!fulfilledAbsent && inner.kind === "jsval") - markJsvalHandlerParams(lowerer, fulfilledNode); if (!fulfilledAbsent && inner.kind === "moduleNs") markModuleNsHandlerParams(lowerer, fulfilledNode, inner); const boxHandler = ( @@ -5588,11 +5196,10 @@ export function lowerPromiseMethodCall( lowerer.fnStack.pop(); } } - // The settled value is an island HANDLE: an inline handler's - // unannotated parameter binds it as jsval, whatever the checker's + // contextual type spelled (a module-namespace type has no mapping — // the handle is the value's only story, isIslandExpr's local rule). - if (inner.kind === "jsval") markJsvalHandlerParams(lowerer, call.arguments[0]!); + if (inner.kind === "moduleNs") markModuleNsHandlerParams(lowerer, call.arguments[0]!, inner); let cb = lowerer.lowerExpr(call.arguments[0]!); // A TYPED handler on a DYN-settling promise (the tracePromise @@ -6152,17 +5759,6 @@ export function lowerPromiseMethodCall( // chained into .catch): falling off the handler's end resolves // with the dyn undefined. catchBody.push({ kind: "return", value: dynUndefinedExpr(loc), loc }); - } else if (R.kind === "jsval") { - // A package-typed result (Promise — the parseAsync().catch - // entry line): falling off the handler's end resolves with - // undefined, which on the island side is the engine's own - // undefined. Also what makes a never-returning handler (ending in - // process.exit) satisfy the always-returns analysis. - catchBody.push({ - kind: "return", - value: { kind: "jsOp", op: "globalGet", name: "undefined", args: [], type: JSVAL, loc }, - loc, - }); } const ctx = lowerer.ctx; const lifted: IrFunction = { @@ -6266,7 +5862,7 @@ export function lowerFilterNarrowCall( if (isBooleanArg) { // ToBoolean must be answerable per element (dyn/caught arms are not). if (elem.kind === "union") lowerer.requireTruthyUnion(elem.unionId, argNode); - if (elem.kind === "dyn" || elem.kind === "jsval" || elem.kind === "void" || isUnitType(elem)) { + if (elem.kind === "dyn" || elem.kind === "void" || isUnitType(elem)) { lowerer.badType(argNode, lowerer.typeOf(argNode)); } const receiver = lowerer.lowerExpr(access.expression); @@ -6907,8 +6503,7 @@ function lowerObjectStaticCall( member === "getOwnPropertySymbols" || member === "getOwnPropertyDescriptors") && call.arguments.length === 1 && - !call.arguments.some(ts.isSpreadElement) && - !lowerer.dynamic + !call.arguments.some(ts.isSpreadElement) ) { let object = lowerer.lowerExpr(call.arguments[0]!); if ( @@ -6935,8 +6530,7 @@ function lowerObjectStaticCall( if ( (member === "getPrototypeOf" || member === "setPrototypeOf") && call.arguments.length === (member === "getPrototypeOf" ? 1 : 2) && - !call.arguments.some(ts.isSpreadElement) && - !lowerer.dynamic + !call.arguments.some(ts.isSpreadElement) ) { let object = lowerer.lowerExpr(call.arguments[0]!); if (object.type.kind === "func") { @@ -7029,7 +6623,7 @@ function lowerObjectStaticCall( // identity. Statically DISJOINT kind pairs answer the constant false // with the operands still evaluated (tsc admits any pair — Object.is // is (any, any) — and JS evaluates the arguments either way). - // dyn/jsval operands keep strict equality's stance: validate first. + if (member === "is") { if (call.arguments.length !== 2 || call.arguments.some((a) => ts.isSpreadElement(a))) { lowerer.noLowering( @@ -7056,7 +6650,7 @@ function lowerObjectStaticCall( } const unitTest = lowerer.lowerUnitComparison(left, right, false, loc); if (unitTest) return unitTest; - if (lk === "dyn" || rk === "dyn" || lk === "jsval" || rk === "jsval") { + if (lk === "dyn" || rk === "dyn") { return { kind: "libCall", fn: "dyn.sameValue", @@ -7164,8 +6758,7 @@ function lowerObjectStaticCall( ); } // Native checked objects retain a live prototype and can install an - // own-property descriptor table during creation. Engine-held values - // use the engine's Object.create path below. + // own-property descriptor table during creation. if (member === "create") { if (call.arguments.some((a) => ts.isSpreadElement(a))) { lowerer.noLowering("Object.create with spread arguments", call); @@ -7177,54 +6770,7 @@ function lowerObjectStaticCall( let protoNode: ts.Expression = call.arguments[0]!; while (ts.isParenthesizedExpression(protoNode)) protoNode = protoNode.expression; const nullProto = protoNode.kind === ts.SyntaxKind.NullKeyword; - if (lowerer.dynamic) { - if (call.arguments.length === 2) - lowerer.noLowering("Object.create with properties under --dynamic", call); - // The checker types the result `any` — an ENGINE value under - // --dynamic — and the engine's own Object.create answers with - // REAL prototype semantics: reads delegate LIVE, writes shadow, - // and inspect renders Node's exact shapes ("[Object: null - // prototype]" included). null and engine-held (jsval) prototypes - // route; checked-dynamic (dyn) prototypes keep the named fence — - // their marshal into the engine is a DEEP COPY, so a later - // prototype mutation would be invisible through the created - // object where Node delegates live. - const objectGlobal = (): IrExpr => ({ - kind: "jsOp", - op: "globalGet", - name: "Object", - args: [], - type: JSVAL, - loc, - }); - if (nullProto) { - const nullIn: IrExpr = { kind: "jsOp", op: "nullLit", args: [], type: JSVAL, loc }; - return { - kind: "jsOp", - op: "callMethod", - name: "create", - args: [objectGlobal(), nullIn], - type: JSVAL, - loc, - }; - } - const proto = lowerer.lowerExpr(protoNode); - if (proto.type.kind === "jsval") { - return { - kind: "jsOp", - op: "callMethod", - name: "create", - args: [objectGlobal(), proto], - type: JSVAL, - loc, - }; - } - lowerer.noLowering( - `Object.create over '${lowerer.fmt(proto.type)}' prototypes`, - call, - "prototype reads delegate LIVE in Node (mutating the prototype shows through the created object), which the boundary's deep copy cannot honor — only null and engine-held ('any') prototypes lower", - ); - } + if (nullProto && call.arguments.length === 1) { return { kind: "libCall", fn: "dyn.objCreateNullProto", args: [], type: DYN, loc }; } @@ -7918,7 +7464,7 @@ function lowerObjectStaticCall( } // unknown[] uses the checked-dynamic array representation. Enumerate // a live view of the record so values retain their identities and the - // result never pretends to be a native vector or an island array. + const enumerationType = lowerer.mapTypeOf(lowerer.typeOf(call)); if ( (member === "values" || member === "entries") && @@ -8698,7 +8244,6 @@ function lowerObjLitGenericMethodCall( thisT !== null && thisT.kind !== "searchParams" && thisT.kind !== "dyn" && - thisT.kind !== "jsval" && (!thisArg || ts.isIdentifier(thisArg) || ts.isLiteralExpression(thisArg) || @@ -9516,8 +9061,8 @@ function loweredArgumentText(lowerer: Lowerer, arg: ts.Expression): string { /** The static global number parsers (parseInt/parseFloat/isNaN/isFinite), * shared by the globals and their Number.* aliases. `call` blames arity - * fences; null when the argument shape needs the engine (the caller keeps - * its island path or SC2012 fence). */ + * fences; null when the argument shape has no static form (the caller + * reports the SC2012 refusal). */ export function lowerStaticNumberGlobal( lowerer: Lowerer, name: string, @@ -9631,10 +9176,9 @@ export function lowerStaticNumberGlobal( // parseInt's siblings (num.parseFloat is ECMA 19.2.4's decimal- // literal prefix parse in scr_string.c; a number-typed isFinite IS // Number.isFinite — the global's ToNumber coercion is the identity - // there, ms's `isFinite(val)` guard). Other argument types fall - // through to today's island path (--dynamic) or its SC2012 fence: - // the ToNumber/ToString coercions on arbitrary values stay engine - // territory. The probe never emits — lowering is IR construction. + // there, ms's `isFinite(val)` guard). Other argument types retain + // their native coercion checks or the SC2012 refusal. The probe never + // emits — lowering is IR construction. if ((name === "parseFloat" || name === "isFinite") && args.length === 1) { if (name === "parseFloat") { const optional = optionalCallValue(lowerer, args[0]!); diff --git a/packages/compiler/src/frontend/lowering/lower-classes.ts b/packages/compiler/src/frontend/lowering/lower-classes.ts index 96fd382de..8451f0abc 100644 --- a/packages/compiler/src/frontend/lowering/lower-classes.ts +++ b/packages/compiler/src/frontend/lowering/lower-classes.ts @@ -21,7 +21,6 @@ import { type IrParam, type IrStmt, type IrType, - JSVAL, RUNTIME_EMITTER_CLASS, RUNTIME_ERROR_CLASSES, RUNTIME_STREAM_CLASSES, @@ -76,7 +75,7 @@ import { lowerSearchParamsNew } from "./builtins/url.js"; import { lowerTextCodecNew } from "./builtins/text-codecs.js"; import { lowerWorkerNew } from "./builtins/workers.js"; import { - requiresDynamicPackageDiag, + unsupportedPackageValueDiag, unsupportedDiag, type ScrDiagnostic, } from "../../diagnostics/diagnostic.js"; @@ -1227,13 +1226,7 @@ function undefArmedFieldType(lowerer: Lowerer, p: ts.Symbol): IrType | null { const arms = mapped.kind === "union" ? (lowerer.unions.get(mapped.unionId)?.arms ?? []) : [mapped]; for (const a of arms) { - if ( - a.kind === "map" || - a.kind === "regex" || - a.kind === "date" || - a.kind === "jsval" || - a.kind === "generator" - ) { + if (a.kind === "map" || a.kind === "regex" || a.kind === "date" || a.kind === "generator") { return null; } byKey.set(typeKey(a), a); @@ -1512,13 +1505,7 @@ function inferredEmptyCollectionFieldType( const mappedArgument = (argument: ts.Expression): IrType | null => { const type = lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(argument)); const mapped = lowerer.mapTypeOf(type); - if ( - !mapped || - mapped.kind === "dyn" || - mapped.kind === "jsval" || - mapped.kind === "void" || - isUnitType(mapped) - ) + if (!mapped || mapped.kind === "dyn" || mapped.kind === "void" || isUnitType(mapped)) return null; return mapped; }; @@ -2766,7 +2753,6 @@ export function collectClassShapeInner( (type.kind === "union" && (lowerer.unions.get(type.unionId)?.arms.some((a) => a.kind === "undefinedT") ?? false)) || - type.kind === "jsval" || type.kind === "dyn"; if (!member.initializer && !admitsUndefined) { const opts = lowerer.program.getCompilerOptions(); @@ -3470,7 +3456,6 @@ export function collectClassShapeInner( declared !== undefined && !isUnitType(declared) && declared.kind !== "union" && - declared.kind !== "jsval" && declared.kind !== "dyn" && declared.kind !== "map" && declared.kind !== "date" && @@ -3848,9 +3833,7 @@ export function collectClassShapeInner( ctor && !mixinForwarding && isJsSourceFile(ctor.getSourceFile()) && - !ctorParams.some( - (shape) => shape.mode === "rest" || shape.mode === "dynRest" || shape.mode === "islandRest", - ) && + !ctorParams.some((shape) => shape.mode === "rest" || shape.mode === "dynRest") && bodyReadsArguments(ctor) ) { ctorParams.push({ type: DYN, mode: "arguments" }); @@ -7387,10 +7370,7 @@ export function lowerDerivedCtorBody( forward === undefined && !base.builtinError && !base.builtinEmitter && - !base.ctorParams.some( - (param) => - param.mode === "rest" || param.mode === "dynRest" || param.mode === "islandRest", - ) && + !base.ctorParams.some((param) => param.mode === "rest" || param.mode === "dynRest") && !superCall.arguments.some(ts.isSpreadElement) && superCall.arguments.length > base.ctorParams.length; let args = surplusSpread @@ -8113,28 +8093,18 @@ export function lowerNew(lowerer: Lowerer, expr: ts.NewExpression): IrExpr { if (consoleCtor?.module === "console" && consoleCtor.member === "Console") { lowerer.noLowering("new console.Console", expr, builtinFenceHintOf("console", "Console")); } - // `new X(...)` where X is a package-declared class, in a static build: - // the per-package requires-dynamic diagnostic (the constructor runs in - // the embedded engine). Under --dynamic, X is jsval-typed and lowers - // to the construct op below. - if (!lowerer.dynamic) { + // A package declaration without a compiled constructor cannot provide + // a runtime value. Report the package at the construction site. + { const pkg = ts.isIdentifier(expr.expression) ? lowerer.npmPackageOfSymbol(lowerer.resolveValueSymbol(expr.expression) ?? undefined) : null; if (pkg) { - lowerer.pushDiag(requiresDynamicPackageDiag(pkg, loc)); + lowerer.pushDiag(unsupportedPackageValueDiag(pkg, loc)); throw new PoisonError(); } } - // Island construction: a jsval-typed callee (a package-declared class, - // or any 'any'-typed constructor value) runs JS_CallConstructor — - // `new Command()` is the npm entry point. Arguments marshal in; the - // instance stays an island handle. - if (lowerer.isIslandExpr(expr.expression)) { - const callee = lowerer.lowerExpr(expr.expression); - const args = (expr.arguments ?? []).map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a)); - return { kind: "jsOp", op: "construct", args: [callee, ...args], type: JSVAL, loc }; - } + // `new events.EventEmitter()` — the namespace-member (and CJS // `require('events').EventEmitter`) construction form: the property's // symbol resolves to the same ambient class as the named import. @@ -8310,7 +8280,7 @@ export function lowerNew(lowerer: Lowerer, expr: ts.NewExpression): IrExpr { if (!a) return dynUndefinedExpr(loc); const v = lowerer.lowerExpr(a); if (v.type.kind === "dyn") return v; - if (v.kind === "unitLit" || (v.type.kind !== "jsval" && lowerer.dynConvertible(v.type))) { + if (v.kind === "unitLit" || lowerer.dynConvertible(v.type)) { return { kind: "dynFrom", value: v, type: DYN, loc }; } lowerer.noLowering( @@ -8683,23 +8653,7 @@ export function lowerNew(lowerer: Lowerer, expr: ts.NewExpression): IrExpr { `${symbol.name} construction with surplus or spread arguments`, ); } - if (lowerer.dynamic) { - const ctor: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: symbol.name, - args: [], - type: JSVAL, - loc, - }; - return { - kind: "jsOp", - op: "construct", - args: [ctor, ...args.map((arg) => lowerer.jsvalIn(lowerer.lowerExpr(arg), arg))], - type: JSVAL, - loc, - }; - } + return { kind: "libCall", fn: symbol.name === "WeakMap" ? "weakMap.new" : "weakSet.new", diff --git a/packages/compiler/src/frontend/lowering/lower-comptime.ts b/packages/compiler/src/frontend/lowering/lower-comptime.ts index ce988f400..934930196 100644 --- a/packages/compiler/src/frontend/lowering/lower-comptime.ts +++ b/packages/compiler/src/frontend/lowering/lower-comptime.ts @@ -176,9 +176,8 @@ export function rejectComptimeCaptures( "(the callback already runs at compile time — compute the value directly)", ); } - // console is the one ambient global V8 installs on every vm - // context (a silent inspector hook) — a log inside the island - // would no-op at compile time instead of printing at runtime. + // V8 installs console in vm contexts, where calls could no-op + // at compile time instead of printing at runtime. // Rejected so side effects can't silently vanish; the other // Node-isms (process, setTimeout) don't exist in the vm and // fail loudly at evaluation. diff --git a/packages/compiler/src/frontend/lowering/lower-enums.ts b/packages/compiler/src/frontend/lowering/lower-enums.ts index 9df0df459..d9a30028e 100644 --- a/packages/compiler/src/frontend/lowering/lower-enums.ts +++ b/packages/compiler/src/frontend/lowering/lower-enums.ts @@ -121,14 +121,12 @@ function lowerEnumMemberRead( // An ambient enum's OBJECT is never defined — Node's transform emits // nothing for `declare enum` AND `declare const enum` alike (it does // NOT inline ambient const members the way tsc's emit would; Node is - // the oracle, measured). Two worlds where the object IS defined stand - // aside: stdlib/@types/node declarations describe real runtime values - // (the SC2020-family member fences own those), and npm-declared enums - // under --dynamic live in the embedded engine (the island paths own - // them). What remains is the user's own `declare enum` — the + // the oracle, measured). Stdlib/@types/node declarations describe real + // runtime values, so SC2020-family member fences own those. A user's + // `declare enum` follows the // `declare const __VERSION__` stance: ReferenceError at the access. const sf = enumDecl.getSourceFile(); - if (lowerer.isStdlibFile(sf) || (lowerer.dynamic && lowerer.isNpmFile(sf))) return null; + if (lowerer.isStdlibFile(sf)) return null; const declared = lowerer.mapTypeOf(lowerer.typeOf(expr)); if (!declared || declared.kind === "void") return null; return { @@ -169,13 +167,7 @@ function lowerEnumReverseRead( const enumName = recvSym.name; // Ambient: no object exists — the member-read stance. if (decls.every((d) => isAmbientEnumDecl(d))) { - if ( - decls.some( - (d) => - lowerer.isStdlibFile(d.getSourceFile()) || - (lowerer.dynamic && lowerer.isNpmFile(d.getSourceFile())), - ) - ) { + if (decls.some((d) => lowerer.isStdlibFile(d.getSourceFile()))) { return null; } return { diff --git a/packages/compiler/src/frontend/lowering/lower-event-emitter.ts b/packages/compiler/src/frontend/lowering/lower-event-emitter.ts index d27689a44..a9e549fb6 100644 --- a/packages/compiler/src/frontend/lowering/lower-event-emitter.ts +++ b/packages/compiler/src/frontend/lowering/lower-event-emitter.ts @@ -644,7 +644,6 @@ function dynListenerFlavor(lowerer: Lowerer, node: ts.Expression): "dyn" | "func // (the TS lane never reaches this: tsc rejects the argument first). if ( t && - t.kind !== "jsval" && (isUnitType(t) || canConvertToDyn( t, @@ -862,7 +861,7 @@ function lowerListenerArg( return null; } })(); - if (mapped === null || mapped.kind === "dyn" || mapped.kind === "jsval") { + if (mapped === null || mapped.kind === "dyn") { lowerer.noLowering( `'${member}' listeners with unannotated parameters`, p, @@ -1025,8 +1024,7 @@ export function lowerEmitterMethodCall( const nT = lowerer.mapTypeOf(lowerer.typeOf(args[0]!)); const tT = lowerer.mapTypeOf(lowerer.typeOf(args[1]!)); const nPure = ts.isIdentifier(args[0]!) || ts.isLiteralExpression(args[0]!); - const targetNotEmitter = - tT !== null && tT.kind !== "dyn" && tT.kind !== "jsval" && !(tT.kind === "object"); + const targetNotEmitter = tT !== null && tT.kind !== "dyn" && !(tT.kind === "object"); if (nT?.kind === "f64" && nPure && targetNotEmitter) { const raw = lowerer.lowerExpr(args[1]!); if ( @@ -1598,7 +1596,7 @@ export function emitOverrideShapeReason( const jsUnannotated = p0.type === undefined && isJsSourceFile(member.getSourceFile()) && - (p0T === null || p0T.kind === "dyn" || p0T.kind === "jsval"); + (p0T === null || p0T.kind === "dyn"); if (p0T?.kind !== "string" && !jsUnannotated) { return "the event parameter must be typed 'string' (symbol event names have no lowering)"; } diff --git a/packages/compiler/src/frontend/lowering/lower-expando.ts b/packages/compiler/src/frontend/lowering/lower-expando.ts index 5e499de86..1ec316c90 100644 --- a/packages/compiler/src/frontend/lowering/lower-expando.ts +++ b/packages/compiler/src/frontend/lowering/lower-expando.ts @@ -90,11 +90,11 @@ function memberKeyOf( * references qualify — routing is by symbol identity. */ function expandoFnSymbolOf(lowerer: Lowerer, recv: ts.Expression): ts.Symbol | null { if (!ts.isIdentifier(recv)) return null; - // Island and checked-dynamic receivers never qualify by construction: + // the declaration-shape checks below (a function DECLARATION, or a // const whose initializer is a function/arrow LITERAL in a TS file) // exclude import bindings, call results, and JS-file values — their - // member stories (engine property writes, dyn keyed writes) stay put. + // existing member paths stay put. const sym = lowerer.resolveValueSymbol(recv); if (!sym) return null; const decl = lowerer.checker.valueDeclarationOf(sym); @@ -110,9 +110,8 @@ function expandoFnSymbolOf(lowerer: Lowerer, recv: ts.Expression): ts.Symbol | n ) return null; if ((ts.getCombinedNodeFlags(decl) & ts.NodeFlags.Const) === 0) return null; - // The const's VALUE must be a function created here (arrow/function - // initializer) — a callable TYPE alone can be satisfied by island - // handles and other values whose members live elsewhere. + // The const's value must be a function created here, not an imported + // value whose properties belong to another lowering path. let init = decl.initializer; while ( init !== undefined && diff --git a/packages/compiler/src/frontend/lowering/lower-exprs.ts b/packages/compiler/src/frontend/lowering/lower-exprs.ts index 078c13ea9..6e202b076 100644 --- a/packages/compiler/src/frontend/lowering/lower-exprs.ts +++ b/packages/compiler/src/frontend/lowering/lower-exprs.ts @@ -37,12 +37,10 @@ import { type IrBytesElem, type IrExpr, type IrFunction, - type IrJsOp, type IrLocal, type IrRecordShape, type IrStmt, type IrType, - JSVAL, NULL_T, REF_TRUTHY_KINDS, REGEX, @@ -60,7 +58,6 @@ import { isDynTypedRefType, isSupportedArrayElem, isUnitType, - jsOpResultKind, shapeHasAccessorSlots, typeEquals, typeKey, @@ -86,7 +83,7 @@ import { builtinModuleFnOf, COMPOUND_ASSIGN_OPS, type CompoundOp, - ISLAND_SURFACE, + STDLIB_SURFACE, isChildSurfaceMember, MAP_METHODS, NARROW_FIRST, @@ -100,7 +97,7 @@ import { import { UNSUPPORTED, blockedBindingUseDiag, - requiresDynamicPackageDiag, + unsupportedPackageValueDiag, unsupportedDiag, } from "../../diagnostics/diagnostic.js"; import { PoisonError, dynFallbackType, jsFuncNameOf, neverTaintedJsType, own } from "./lowerer.js"; @@ -164,11 +161,7 @@ import { lowerYield } from "./lower-generators.js"; import { errorPropertyRead, errorPropertyWrite, errorToStringCall } from "./error-methods.js"; import { lowerStreamProperty, lowerStreamStateProperty, streamSidesOf } from "./lower-stream.js"; import { unionWideningTags } from "../../ir/analysis.js"; -import { - isSafeToDiscard, - isSafeToMoveConditionEarlier, - isSafeToRepeat, -} from "./expressions/evaluation-safety.js"; +import { isSafeToDiscard, isSafeToRepeat } from "./expressions/evaluation-safety.js"; import { globalSymbolKey } from "./expressions/global-symbols.js"; import { lowerShortCircuitAssignment } from "./expressions/nullish-assignment.js"; import { @@ -176,7 +169,7 @@ import { isOptionalChainTail, isRequireMainFilename, } from "./expressions/optional-chains.js"; -import { conditionalSpreadOf, foldedStringKeyOf } from "./expressions/object-literals.js"; +import { foldedStringKeyOf } from "./expressions/object-literals.js"; import { tryLowerExpression } from "./expressions/try-lower-expression.js"; import { fenceNodeModuleMutation, @@ -582,373 +575,6 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { "'void' with an effectful operand in value position (hoist the operand to its own statement — statement-position 'void e' and void-returning arrow bodies compile)", ); } - // Literals in an `any`-typed slot (the CONTEXTUAL type is what the - // record/array lowerings would consult) build natively in the island: - // each value lowers statically and marshals in. An UNMAPPABLE - // contextual type falls back to the literal's own type, exactly like - // lowerObjectLiteral's fallback — a package call's options parameter - // is often an unmappable intersection while the literal's own type - // absorbs to jsval (a bare-jsval field, an npm-typed member). - if ( - (ts.isObjectLiteralExpression(expr) || ts.isArrayLiteralExpression(expr)) && - (() => { - const ctxTs = lowerer.checker.getContextualType(expr); - const mapped = - (ctxTs ? lowerer.mapTypeOf(ctxTs) : null) ?? lowerer.mapTypeOf(lowerer.typeOf(expr)); - if (mapped?.kind !== "jsval") return false; - // The tsgo readonly-[] panic repair (see lowerArrayLiteral): an - // EMPTY array literal under a const assertion is the empty tuple — - // its `any` answer is a panicked query, not an island slot. - if ( - ts.isArrayLiteralExpression(expr) && - expr.elements.length === 0 && - underConstAssertion(expr) - ) { - return false; - } - // A JS variable INITIALIZER whose BINDING registered as a - // checked-dynamic module global (the typedef-annotated - // doc-builder consts whose JSDoc types degraded — DYN slots): - // the island build could never land (no engine→dyn crossing - // exists), so the literal takes its own world's path instead — - // the dyn literal, or a static record the slot converts. - if ( - isJsSourceFile(expr.getSourceFile()) && - ts.isVariableDeclaration(expr.parent) && - expr.parent.initializer === expr && - ts.isIdentifier(expr.parent.name) - ) { - const bindSym = lowerer.checker.getSymbolAtLocation(expr.parent.name); - const g = bindSym ? lowerer.globalsBySymbol.get(bindSym) : undefined; - if (g?.type.kind === "dyn") return false; - } - // A PROJECT-DECLARED contextual type that only ABSORBED to the - // island (a doc-builder typedef whose field's JSDoc type - // reference degraded to checker-`any` — the tsgo multi-file - // value-as-type residue) is not an npm slot: when the literal's - // OWN type maps statically, it builds that way — the binding's - // checked-dynamic slot takes the dyn conversion. Genuinely - // island slots (npm .d.ts provenance, plain `any`) keep the - // native build. - if (ctxTs !== undefined && (ctxTs.flags & ts.TypeFlags.Any) === 0) { - // Intersection/tuple typedefs (`Line & {readonly soft: true}`) - // carry provenance on the ALIAS symbol. - const sym = ctxTs.getSymbol() ?? ctxTs.getAliasSymbol(); - const decls = sym ? lowerer.checker.declarationsOf(sym) : []; - const projectDeclared = - decls.length > 0 && - decls.every((d) => { - const sf = d.getSourceFile(); - return !sf.isDeclarationFile && !sf.fileName.includes("/node_modules/"); - }); - if (projectDeclared) { - // A spread already stored in the island must copy there too. - // Later overrides can make the literal's own inferred shape - // appear static without making that source a native record. - if ( - ts.isObjectLiteralExpression(expr) && - expr.properties.some( - (p) => - ts.isSpreadAssignment(p) && - lowerer.mapTypeOf(lowerer.typeOf(p.expression))?.kind === "jsval", - ) - ) { - return true; - } - const own = lowerer.mapTypeOf(lowerer.typeOf(expr)); - if (own?.kind === "record" || own?.kind === "array") return false; - } - } - return true; - })() - ) { - if (ts.isObjectLiteralExpression(expr)) { - // Two engine literals when a CONDITIONAL spread participates - // (`{ a, ...(c ? { k: v } : {}) }` — the optional-key idiom): the - // whole literal becomes `c ? objLit(with) : objLit(without)`. The - // shared properties' nodes ride BOTH arms (exactly one arm - // evaluates, so each property still evaluates once); the reorder - // of `c` before earlier properties is unobservable because the - // condition must be a side-effect-free read. The spread arm's keys - // are truly ABSENT when the empty arm is taken — engine-exact - // (`"k" in o` is false), which the static record path can't say. - const argsWithout: IrExpr[] = []; - const argsWith: IrExpr[] = []; - const getters: { name: string; fn: IrExpr; loc: SrcLoc }[] = []; - let spread: { cond: IrExpr; whenTrue: boolean } | null = null; - // A MEMBER a JS file cannot lower or marshal: defer like a - // statement fence, shaped by what the member IS. A FUNCTION-shaped - // member (a generic function as a value, a signature with - // checked-dynamic parameters — the doc-builder public aggregate's - // degraded pieces) becomes a host closure that THROWS the captured - // diagnostic when invoked — building the aggregate compiles and - // only a CALL through the island stops the run. A DATA-shaped - // member must NOT become a callable (the retired fence box's - // silent wrong answers: typeof said "function", downstream errors - // blamed the wrong thing — the withPlugins `plugins:` slot), so it - // defines through the engine's getter machinery instead: READING - // the member throws the diagnostic — the honest granularity, since - // using the value is exactly what cannot be answered. `getterName` - // null keeps the closure shape (function-shaped members, and the - // conditional-spread arms where getters cannot combine). - const islandMemberFence = ( - diagsBefore: number, - err: PoisonError, - valueNode: ts.Node, - getterName: string | null = null, - ): IrExpr | null => { - if (!isJsSourceFile(expr.getSourceFile())) throw err; - const fence = lowerer.deferToRuntimeFence(diagsBefore, valueNode, { - kind: "closure", - name: () => `%fn${lowerer.lambdaCounter++}_islfence`, - returnType: VOID, - type: { kind: "func", params: [], ret: VOID }, - }); - if (!fence) throw err; - if (getterName !== null) { - getters.push({ - name: getterName, - fn: lowerer.jsvalIn(fence, valueNode), - loc: locOf(valueNode), - }); - return null; - } - return lowerer.jsvalIn(fence, valueNode); - }; - // The member's SHAPE decides the fence's granularity: syntactic - // functions and checker-callable values keep the call-time - // closure; everything else (call results, awaits, data reads — - // the withPlugins `plugins:` shape) fences at the READ. - const funcShapedMember = (p: ts.ObjectLiteralElementLike): boolean => { - if (ts.isMethodDeclaration(p)) return true; - const src: ts.Node | null = ts.isPropertyAssignment(p) - ? p.initializer - : ts.isShorthandPropertyAssignment(p) - ? p.name - : null; - if (!src || !ts.isExpression(src)) return true; // unknown form: keep the closure shape - let inner: ts.Expression = src; - while (ts.isParenthesizedExpression(inner)) inner = inner.expression; - if (ts.isArrowFunction(inner) || ts.isFunctionExpression(inner)) return true; - return lowerer.checker.getCallSignatures(lowerer.typeOf(src)).length > 0; - }; - const pushProp = ( - name: ts.Identifier | ts.StringLiteral, - value: IrExpr, - valueNode: ts.Node, - into: IrExpr[][], - ): void => { - const diagsBefore = lowerer.diags.length; - let marshaled: IrExpr; - try { - marshaled = lowerer.jsvalIn(value, valueNode); - } catch (err) { - // A value that LOWERED but cannot cross (a promise, a class - // instance): func-typed values keep the call-time closure; - // data-shaped values fence at the read (the getter), unless a - // conditional spread owns the literal (getters cannot combine). - if (!(err instanceof PoisonError)) throw err; - const asGetter = value.type.kind !== "func" && spread === null; - const fence = islandMemberFence(diagsBefore, err, valueNode, asGetter ? name.text : null); - if (fence === null) return; // registered as a fence getter — no data property - marshaled = fence; - } - for (const args of into) { - args.push({ - kind: "jsMarshal", - value: { kind: "strLit", value: name.text, type: STRING, loc: locOf(name) }, - type: JSVAL, - loc: locOf(name), - }); - args.push(marshaled); - } - }; - const spreadSrcs: IrExpr[] = []; - let sawPlainProp = false; - for (const prop of expr.properties) { - if (ts.isSpreadAssignment(prop)) { - const cs = conditionalSpreadOf(prop.expression); - if (cs && cs !== "unsupported" && !spread) { - if (spreadSrcs.length > 0) { - lowerer.unsupported( - "SC1090", - prop, - "a conditional spread mixed with plain spreads in an 'any'-typed object literal", - ); - } - const cond = lowerer.lowerCondition(cs.cond); - if (!isSafeToMoveConditionEarlier(cond)) { - lowerer.unsupported( - "SC1090", - prop, - "conditional spreads with effectful conditions in an 'any'-typed object literal (bind the condition to a const first)", - ); - } - spread = { cond, whenTrue: cs.whenTrue }; - for (const p of cs.props) { - const v = ts.isPropertyAssignment(p) - ? lowerer.lowerExpr(p.initializer) - : lowerer.lowerShorthandValue(p); - pushProp(p.name, v, p, [argsWith]); - } - continue; - } - // A PLAIN spread (`{ ...options, plugins }` — the withPlugins - // argument-rebuild shape): the source copies into the fresh - // engine object through the spec's CopyDataProperties (the - // objSpread op). Spreads must precede explicit properties - // (the composition applies explicit keys AFTER the copies — - // JS's later-wins — which a spread after them would invert); - // mixing with a conditional spread keeps the fence. - if (cs === undefined || cs === null) { - if (sawPlainProp || spread) { - lowerer.unsupported( - "SC1090", - prop, - "object spread after explicit properties (or mixed with a conditional spread) in an 'any'-typed object literal — spreads must come first", - ); - } - spreadSrcs.push(lowerer.jsvalIn(lowerer.lowerExpr(prop.expression), prop.expression)); - continue; - } - lowerer.unsupported( - "SC1090", - prop, - "this spread form in an 'any'-typed object literal (one `...(c ? { k: v } : {})` conditional spread is supported — bind other shapes to a const and set keys explicitly)", - ); - } - sawPlainProp = true; - // `name: value`, the shorthand `{ name }` (the value is the - // identifier itself, resolved through the shorthand VALUE symbol - // like the static record path), and METHODS — `{ load() {...} }` - // is a function expression under a shorthand name, marshaled - // like any closure value (this-uses keep the static path's - // rejection); everything else keeps the fence. Identifier and - // string-literal keys — engine property names have no - // identifier restriction ("content-type"). - const name = prop.name; - // A GET accessor (`get root() { return ROOT_INDENT; }` — the - // doc-printer's self-referential root-indent shape): the body - // lowers as a zero-param closure marshaled into the engine, and - // the property defines through the engine's own getter - // machinery AFTER the literal builds (the defineGetter op) — - // reads through the handle invoke it natively. `this` in the - // body keeps the object-method rejection; setters stay fenced. - if ( - ts.isGetAccessorDeclaration(prop) && - prop.body && - name && - (ts.isIdentifier(name) || ts.isStringLiteral(name)) - ) { - lowerer.rejectThisInObjectMethod(prop.body); - getters.push({ - name: name.text, - fn: lowerer.jsvalIn(lowerer.lowerLambda(prop), prop), - loc: locOf(prop), - }); - continue; - } - // A member VALUE that cannot lower at all (a generic function - // referenced as a value — the aggregate's `align`): the same - // call-time fence deferral pushProp applies to marshal failures. - let value: IrExpr | null = null; - const valueDiagsBefore = lowerer.diags.length; - try { - value = ts.isPropertyAssignment(prop) - ? lowerer.lowerExpr(prop.initializer) - : ts.isShorthandPropertyAssignment(prop) - ? lowerer.lowerShorthandValue(prop) - : ts.isMethodDeclaration(prop) && prop.body - ? (lowerer.rejectThisInObjectMethod(prop.body), lowerer.lowerLambda(prop)) - : null; - } catch (err) { - if (!(err instanceof PoisonError)) throw err; - const nameText = - name && (ts.isIdentifier(name) || ts.isStringLiteral(name)) ? name.text : null; - const asGetter = nameText !== null && spread === null && !funcShapedMember(prop); - value = islandMemberFence(valueDiagsBefore, err, prop, asGetter ? nameText : null); - if (value === null) continue; // registered as a fence getter — no data property - } - if (value && name && (ts.isIdentifier(name) || ts.isStringLiteral(name))) { - pushProp(name, value, prop, [argsWithout, argsWith]); - } else { - lowerer.unsupported( - "SC1090", - prop, - "this property form in an 'any'-typed object literal (only `name: value`, shorthand names, methods, and get accessors are supported)", - ); - } - } - const withGetters = (obj: IrExpr): IrExpr => - getters.reduce( - (acc, g) => ({ - kind: "jsOp", - op: "defineGetter", - args: [ - acc, - { - kind: "jsMarshal", - value: { kind: "strLit", value: g.name, type: STRING, loc: g.loc }, - type: JSVAL, - loc: g.loc, - }, - g.fn, - ], - type: JSVAL, - loc: g.loc, - }), - obj, - ); - if (!spread) { - if (spreadSrcs.length === 0) { - return withGetters({ kind: "jsOp", op: "objLit", args: argsWithout, type: JSVAL, loc }); - } - // Plain spreads compose left to right onto a fresh object, the - // explicit properties merging LAST (JS's later-wins): spread - // sources evaluate before later property values by nesting - // order, exactly the source order. - let acc: IrExpr = { kind: "jsOp", op: "objLit", args: [], type: JSVAL, loc }; - for (const src of spreadSrcs) { - acc = { kind: "jsOp", op: "objSpread", args: [acc, src], type: JSVAL, loc }; - } - if (argsWithout.length > 0) { - acc = { - kind: "jsOp", - op: "objSpread", - args: [acc, { kind: "jsOp", op: "objLit", args: argsWithout, type: JSVAL, loc }], - type: JSVAL, - loc, - }; - } - return withGetters(acc); - } - if (getters.length > 0) { - lowerer.unsupported( - "SC1090", - expr, - "get accessors combined with conditional spreads in an 'any'-typed object literal", - ); - } - const withLit: IrExpr = { kind: "jsOp", op: "objLit", args: argsWith, type: JSVAL, loc }; - const withoutLit: IrExpr = { - kind: "jsOp", - op: "objLit", - args: argsWithout, - type: JSVAL, - loc, - }; - return { - kind: "ternary", - cond: spread.cond, - then: spread.whenTrue ? withLit : withoutLit, - else_: spread.whenTrue ? withoutLit : withLit, - type: JSVAL, - loc, - }; - } - const args = expr.elements.map((el) => lowerer.jsvalIn(lowerer.lowerExpr(el), el)); - return { kind: "jsOp", op: "arrLit", args, type: JSVAL, loc }; - } if (ts.isTypeOfExpression(expr)) { if (lowerer.isStdlibGlobal(expr.expression, "process")) return { kind: "strLit", value: "object", type: STRING, loc }; @@ -1003,7 +629,7 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { while (ts.isParenthesizedExpression(tested)) tested = tested.expression; if (ts.isIdentifier(tested)) { const sym = lowerer.checker.getSymbolAtLocation(tested); - if (!sym && !lowerer.dynamic) { + if (!sym) { return { kind: "strLit", value: "undefined", type: STRING, loc }; } if (lowerer.isStdlibSymbol(sym)) { @@ -1023,9 +649,7 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { lowerer, runtimeOptionalStorageOperand(lowerer, expr.expression) ?? lowerer.lowerExpr(expr.expression), ); - if (operand.type.kind === "jsval") { - return { kind: "jsOp", op: "typeof", args: [operand], type: STRING, loc }; - } + // A checker-narrowed dyn read arrives as a VALIDATED extraction // (maybeNarrow's dynCheck bridge). typeof needs no extraction — the // dyn kind table answers the question directly, and answers it even @@ -1555,23 +1179,18 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { `module namespace objects as values (access '${expr.text}' members directly)`, ); } - if (lowerer.islandGlobalFnOf(expr)) { - // Island-backed functions have no closure representation (they - // lower to engine ops at call sites only). + if (lowerer.stdlibGlobalFnOf(expr)) { lowerer.unsupported( "SC1090", expr, `library functions as values (call '${expr.text}' directly)`, ); } - // npm import bindings in a STATIC build: the binding's value lives - // in the embedded engine — the per-package requires-dynamic - // diagnostic, not the generic fallthrough. (Under --dynamic these - // resolve as jsval globals above.) - if (!lowerer.dynamic) { + // A declaration-only npm binding has no compiled runtime value. + { const pkg = lowerer.npmPackageOfSymbol(lowerer.resolveValueSymbol(expr) ?? undefined); if (pkg) { - lowerer.pushDiag(requiresDynamicPackageDiag(pkg, loc)); + lowerer.pushDiag(unsupportedPackageValueDiag(pkg, loc)); throw new PoisonError(); } } @@ -1676,13 +1295,13 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { } return { kind: "closure", fnName: name, captures: [], type, loc }; } - if (!lowerer.dynamic && lowerer.isStdlibGlobal(expr, "crypto")) + if (lowerer.isStdlibGlobal(expr, "crypto")) return { kind: "libCall", fn: "crypto.native", args: [], type: DYN, loc }; const nativeAlias = stdlibGlobalNameOf(lowerer, expr); if (nativeAlias === "Buffer" && expr.text !== "Buffer") { return { kind: "strLit", value: "[builtin Buffer]", type: STRING, loc }; } - if (!lowerer.dynamic && lowerer.isStdlibGlobal(expr, "fetch")) { + if (lowerer.isStdlibGlobal(expr, "fetch")) { return { kind: "libCall", fn: "fetch.function", args: [], type: DYN, loc }; } // The lib fence's IDENTIFIER chokepoint: the real standard library @@ -1698,7 +1317,7 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { // global, one token; what a token cannot do (be called, answer // typeof "function") meets per-site fences/divergences, and // SEMANTICS.md documents the stance. - if (!lowerer.dynamic && stdlibGlobalNameOf(lowerer, expr) === "globalThis") { + if (stdlibGlobalNameOf(lowerer, expr) === "globalThis") { return lowerGlobalValue(lowerer, expr); } { @@ -1708,13 +1327,6 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { const canonical = stdlibGlobalNameOf(lowerer, expr) ?? expr.text; return { kind: "strLit", value: `[builtin ${canonical}]`, type: STRING, loc }; } - // In a dynamic TypeScript build, the real global object is the - // escape hatch for host capabilities without static lowering. - // Direct globalThis.member uses still take their static surface - // paths; an explicit `as any` or `: any` can reach engine ops. - if (lowerer.dynamic && expr.text === "globalThis") { - return { kind: "jsOp", op: "globalGet", name: "globalThis", args: [], type: JSVAL, loc }; - } // The families with a WHY: each hint states what makes the // surface genuinely non-static (or what to use instead). const globalHints: Record = { @@ -1980,9 +1592,9 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { const promiseArm = def.arms[promiseTag]!; const inner = promiseArm.kind === "promise" ? promiseArm.inner : VOID; const units = def.arms.filter(isUnitType); - if (inner.kind === "union" || inner.kind === "dyn" || inner.kind === "jsval") { + if (inner.kind === "union" || inner.kind === "dyn") { // A union inner would need an arm-wise re-tag into the result - // union; dyn/jsval inners have their own boundary stories. + lowerer.unsupported( "SC1090", expr, @@ -2018,28 +1630,7 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { if (value.type.kind === "dyn") { return { kind: "libCall", fn: "async.awaitDyn", args: [value], type: DYN, loc }; } - // A jsval whose CHECKER type is a promise is a package-returned - // promise: the value lives in the engine. Bridge it — a static - // promise the engine promise settles (fulfillment = the retained - // handle or void, rejection = the bridged reason) — and await - // THAT: the fiber parks like any await, resumes with the settled - // jsval, or re-throws the crossed rejection. - if (value.type.kind === "jsval") { - // ANY island value bridges — the runtime's Promise.resolve(v) - // .then(...) wiring awaits thenables and non-thenables exactly - // like JS (`await reg.load()` where the checker only knows - // 'any' must still park on the returned engine promise). - const mapped = lowerer.mapTypeOf(lowerer.typeOf(expr.expression)); - const inner: IrType = - mapped?.kind === "promise" && mapped.inner.kind === "void" ? VOID : JSVAL; - const bridged: IrExpr = { - kind: "jsBridgePromise", - value, - type: { kind: "promise", inner }, - loc, - }; - return { kind: "awaitExpr", value: bridged, type: inner, loc }; - } + // A TYPED non-promise operand (`await 42`, an awaited record): // JS awaits non-thenables through exactly one microtask turn and // yields the value itself — evaluate the operand, hop, answer it. @@ -2105,9 +1696,7 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { if (ts.isBinaryExpression(expr)) return lowerer.lowerBinary(expr); if (ts.isCallExpression(expr)) { // The tail of an optional chain whose `?.` sits deeper - // (`x?.trim().toLowerCase()`): the whole tail short-circuits with - // the guard, so it lowers as one chain (dyn/island receivers keep - // their own undefined-propagating reads — see isOptionalChainTail). + // (`x?.trim().toLowerCase()`): the whole tail short-circuits together. if (isOptionalChainTail(lowerer, expr)) return lowerer.lowerOptionalChain(expr); return lowerer.lowerCall(expr); } @@ -2145,7 +1734,7 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { return lowerer.lowerSuperAccessorRead(expr); } // Enum member reads (`E.A`) fold to their compile-time constants — - // claimed FIRST so no receiver-shaped path (records, islands, the + // claimed FIRST so no receiver-shaped path (records, the // identifier fence on the enum object) sees them. lower-enums.ts. { const en = lowerEnumAccess(lowerer, expr); @@ -2202,7 +1791,7 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { loc, }; } - if (!lowerer.dynamic && lowerer.stdlibGlobalMember(expr, "Object") === "freeze") { + if (lowerer.stdlibGlobalMember(expr, "Object") === "freeze") { const name = "%builtin.Object.freeze"; if (!lowerer.liftedFns.some((fn) => fn.name === name)) lowerer.liftedFns.push({ @@ -2244,7 +1833,6 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { // arbitrary global-object mutation remains fenced. Preserve a dyn // undefined value so stored probes compose with optional calls. if ( - !lowerer.dynamic && stdlibGlobalNameOf(lowerer, expr.expression) === "globalThis" && !lowerer.checker.getPropertyOfType(lowerer.typeOf(expr.expression), expr.name.text) ) { @@ -2271,65 +1859,13 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { lowerer.fenceStaticResponseMember(expr, "read"); lowerer.fenceStaticHeadersMember(expr, "read"); lowerer.fenceStaticReadableStreamMember(expr, "read"); - // Island receiver: o.x is an engine property read (getProp may throw + // — reading off null/undefined — bridged catchably like everything // at the boundary). `o?.x` arrives here too, through the chain // lowering's re-dispatch (a questionDotToken past the gate above is // always chain-handled; the receiver reads back as the chain's // bound handle). - if (lowerer.isIslandExpr(expr.expression)) { - const receiver = lowerer.lowerExpr(expr.expression); - // The checker said 'any' but the VALUE lives in the checked-dynamic tree (`this` - // in a plain JS function — dyn.this — or a checked-dynamic local - // behind an any-typed spelling): the property read is the checked-dynamic tree's - // own keyed read, dyn results and dyn chains exactly like every - // checked-dynamic member access (a nullish receiver throws V8's - // catchable TypeError, exactly Node). Never a jsOp over a dyn — - // the two dynamic worlds don't share a value representation. - if (receiver.type.kind === "dyn") { - return { - kind: "dynKeyGet", - key: { kind: "strLit", value: expr.name.text, type: STRING, loc }, - value: receiver, - type: DYN, - loc, - }; - } - const read: IrExpr = { - kind: "jsOp", - op: "getProp", - name: expr.name.text, - args: [receiver], - type: JSVAL, - loc, - }; - // A member the .d.ts DECLARES as a primitive exits eagerly to that - // static type (`f.mediaType` on a package handle IS a string): - // primitives copy by value across the boundary — no aliasing, no - // cost — and every static consumer (intrinsics, templates, - // comparisons) works on the result. Trust-but-verify: a lying - // declaration throws the catchable TypeError instead of smuggling - // a mistyped handle into string ops. A Uint8Array member exits the - // same way (`result.audio.uint8Array` — the generated-media - // payload) as a validated u8 COPY, the boundary's aliasing stance - // (divergences 44/45; engine Buffers pass — they ARE Uint8Arrays). - // Other composites stay handles (eager JSON copies would change - // aliasing), and chain-handled reads stay jsval (the chain's unit - // path is the engine's undefined — see lowerOptionalChain). - if (!expr.questionDotToken) { - const declared = lowerer.mapTypeOf(lowerer.typeOf(expr)); - if ( - declared && - (declared.kind === "f64" || - declared.kind === "bool" || - declared.kind === "string" || - (declared.kind === "bytes" && declared.elem === "u8")) - ) { - return { kind: "jsExit", value: read, type: declared, loc }; - } - } - return read; - } + // `m.index` on a for-of-over-matchAll binding reads the companion- // index array at this iteration's cursor — always a number: every // drained row matched, so the lib's `.index` is never undefined @@ -2627,12 +2163,12 @@ function lowerExprInner(lowerer: Lowerer, expr: ts.Expression): IrExpr { ) { const canonical = stdlibGlobalNameOf(lowerer, expr); if (canonical !== null) { - if (!lowerer.dynamic && canonical === "globalThis") return lowerGlobalValue(lowerer, expr); - if (!lowerer.dynamic && canonical === "ArrayBuffer") + if (canonical === "globalThis") return lowerGlobalValue(lowerer, expr); + if (canonical === "ArrayBuffer") return { kind: "libCall", fn: "arrayBuffer.constructor", args: [], type: DYN, loc }; - if (!lowerer.dynamic && canonical === "fetch") + if (canonical === "fetch") return { kind: "libCall", fn: "fetch.function", args: [], type: DYN, loc }; - if (!lowerer.dynamic && Object.values(BYTES_ELEMENT_NAME).includes(canonical)) + if (Object.values(BYTES_ELEMENT_NAME).includes(canonical)) return { kind: "libCall", fn: "bytes.constructor", @@ -3403,7 +2939,7 @@ export function lowerTernary( const a = thenRaw.type; const b = elseRaw.type; const staticArm = (t: IrType): boolean => - t.kind !== "dyn" && t.kind !== "caught" && t.kind !== "jsval" && t.kind !== "void"; + t.kind !== "dyn" && t.kind !== "caught" && t.kind !== "void"; if (staticArm(a) && staticArm(b)) { if (typeEquals(a, b)) { anyJoin = a; @@ -3712,9 +3248,8 @@ export function maybeNarrow(lowerer: Lowerer, expr: IrExpr, node: ts.Node): IrEx const narrowedTs = lowerer.typeOf(node); const narrowed = lowerer.mapTypeOf(narrowedTs); // `Array.isArray(u)` on a union with one readonly array/tuple arm: the - // lib predicate narrows to `any[]`, either directly or intersected - // with the original union. That checker type can map to the island's - // array-of-handles, nothing, or a synthetic intersection record — but + // lib predicate narrows to `any[]`, possibly intersected with another + // type. That mapping may be a checked value or a synthetic record, but // the tag test proved the union's one array-valued arm, so bridge to it // with the same trusted unionNarrow the mapped case below builds. if (lowerer.checkerAnyArrayType(narrowedTs)) { @@ -4375,18 +3910,6 @@ function volatileEnvRead(e: IrExpr): IrExpr | null { return null; } -/** `x == null` / `x != null` — JS's idiomatic null-OR-undefined test, the - * ONE loose comparison with static semantics: `== null` matches exactly - * null and undefined (0, "", and false do not). Requires a syntactic - * null LITERAL on either side; the other operand's unit arms become a - * runtime tag test — one `unionIsTag` when the union has a single unit - * arm, a short-circuit pair over both tags otherwise (that shape re-emits - * the operand, so only side-effect-free reads compose; anything else - * keeps the fence). A unit-literal operand folds (null and undefined are - * mutually loose-equal), and a non-nullable operand folds statically — - * the same trust-the-checker bet as lowerUnitComparison. Null (fence) - * when this isn't a null-literal comparison or the operand has no - * lowering here (dyn/jsval/void). */ function lowerLooseNullCompare( lowerer: Lowerer, expr: ts.BinaryExpression, @@ -4457,7 +3980,7 @@ function lowerLooseNullCompare( loc, }; } - if (other.type.kind === "jsval" || other.type.kind === "void") { + if (other.type.kind === "void") { return null; // no static tag to test — keep the fence } // The env-volatility escape (see lowerUnitComparison): a narrowed @@ -4650,10 +4173,8 @@ function lowerNullishPair( ): IrExpr { if (left.type.kind === "dyn") { // `a ?? b` on a CHECKED-DYNAMIC left: the deciding test is the - // runtime kind (scr_dyn_is_nullish — UNDEF/NULL take the default; - // a wrapped island value routes to the engine's test, defensively: - // the wrap constructor scalar-normalizes engine null/undefined - // away). Both sides live in the checked-dynamic tree — the right converts through + // runtime kind (scr_dyn_is_nullish — UNDEF/NULL take the default). + // Both sides live in the checked-dynamic tree — the right converts through // the usual boundary and evaluates lazily in its branch; a default // with no dyn representation keeps the fence. const right = lowerer.coerceToExpected(lowerer.lowerExpr(expr.right), DYN); @@ -4666,13 +4187,7 @@ function lowerNullishPair( } return { kind: "nullish", left, right, type: DYN, loc }; } - if (left.type.kind === "jsval") { - // `a ?? b` on an ISLAND value: the engine's own nullish test — the - // left evaluates once, the right runs lazily in its branch and - // marshals in (the emitter's jsval nullish arm). - const right = lowerer.jsvalIn(lowerer.lowerExpr(expr.right), expr.right); - return { kind: "nullish", left, right, type: JSVAL, loc }; - } + if (left.type.kind !== "union") return left; const def = lowerer.unions.get(left.type.unionId); if (!def) lowerer.badType(expr.left, lowerer.typeOf(expr.left)); @@ -5177,10 +4692,7 @@ export function ensureBool(lowerer: Lowerer, e: IrExpr, node: ts.Expression): Ir // tag (plus the scalar payload for number/string). return { kind: "dynTest", test: "truthy", value: e, type: BOOL, loc: e.loc }; } - if (e.type.kind === "jsval") { - // ToBoolean of an island value — the engine answers (never throws). - return { kind: "jsOp", op: "truthy", args: [e], type: BOOL, loc: e.loc }; - } + if (e.type.kind === "union") { lowerer.requireTruthyUnion(e.type.unionId, node); return { kind: "toBool", operand: e, type: BOOL, loc: e.loc }; @@ -5199,10 +4711,6 @@ export function ensureBool(lowerer: Lowerer, e: IrExpr, node: ts.Expression): Ir lowerer.badType(node, lowerer.typeOf(node)); } -/** Truthiness needs a ToBoolean per arm: dyn/caught arms have none (a - * dynamic ToBoolean over the checked-dynamic tree / the snapshot box) — fence those - * unions; every other arm kind is answerable (units false, scalars and - * strings by value, refs true, jsval by the engine). */ export function requireTruthyUnion(lowerer: Lowerer, unionId: string, node: ts.Expression): void { const def = lowerer.unions.get(unionId); if (def && def.arms.every((a) => a.kind !== "dyn" && a.kind !== "caught")) return; @@ -5213,15 +4721,9 @@ export function requireTruthyUnion(lowerer: Lowerer, unionId: string, node: ts.E ); } -/** Strict equality needs a per-arm comparison: units, scalars, strings, - * and ref kinds (pointer identity) all have one; dyn/caught arms have no - * static equality and jsval arms would need the engine's `===` — those - * unions keep the narrow-first fence. */ export function eqComparableUnion(lowerer: Lowerer, unionId: string): boolean { const def = lowerer.unions.get(unionId); - return ( - !!def && def.arms.every((a) => a.kind !== "dyn" && a.kind !== "caught" && a.kind !== "jsval") - ); + return !!def && def.arms.every((a) => a.kind !== "dyn" && a.kind !== "caught"); } /** Property access on a string or array receiver: `.length` lowers to the @@ -5697,9 +5199,7 @@ export function lowerIntrinsicProperty( return null; } if (kind === "f64") { - // The only ambient members on numbers are island-backed methods; a - // bare reference has no value form regardless of --dynamic. - if (own(ISLAND_SURFACE.number, name) !== undefined) { + if (own(STDLIB_SURFACE.number, name) !== undefined) { lowerer.unsupported("SC1090", expr, `number methods as values (call '${name}' directly)`); } return null; @@ -5748,21 +5248,9 @@ export function lowerIntrinsicProperty( ? lowerer.checkedNarrowCall(helper, receiver, present, locOf(expr.expression)) : lowerer.maybeNarrow(receiver, expr.expression); } - // An island handle behind a typed-array .d.ts surface: the engine + // property read, exiting at the declared number type (the array - // .length rule). Chain-handled reads stay jsval. - if (receiver.type.kind === "jsval") { - const read: IrExpr = { - kind: "jsOp", - op: "getProp", - name, - args: [receiver], - type: JSVAL, - loc, - }; - if (expr.questionDotToken) return read; - return { kind: "jsExit", value: read, type: F64, loc }; - } + return { kind: "bytesIntrinsic", method: name, receiver, args: [], type: F64, loc }; } if (name === "byteOffset") { @@ -5855,23 +5343,7 @@ export function lowerIntrinsicProperty( ? lowerer.checkedNarrowCall(helper, receiver, present, locOf(expr.expression)) : lowerer.maybeNarrow(receiver, expr.expression); } - // An island handle behind an array-typed .d.ts surface - // (`parts().length` on a declared `string[]` return — arrays never - // exit eagerly, so the value stays jsval): an engine property read, - // exiting at the declared number type. Chain-handled reads stay - // jsval (the island chain's body must be a handle). - if (receiver.type.kind === "jsval") { - const read: IrExpr = { - kind: "jsOp", - op: "getProp", - name: "length", - args: [receiver], - type: JSVAL, - loc: locOf(expr), - }; - if (expr.questionDotToken) return read; - return { kind: "jsExit", value: read, type: F64, loc: locOf(expr) }; - } + // A CHECKED-DYNAMIC value behind an array-typed checker spelling // (`Object.keys(u).length` — the dyn walk answers a dyn array while // tsc spells string[]): the runtime-world dispatch — a dyn keyed @@ -5897,7 +5369,7 @@ export function lowerIntrinsicProperty( kind === "string" ? own(STR_METHODS, name) !== undefined || STRING_INDEX_METHODS.has(name) || - own(ISLAND_SURFACE.string, name) !== undefined + own(STDLIB_SURFACE.string, name) !== undefined : ARRAY_METHODS.has(name) ) { lowerer.unsupported("SC1090", expr, `${kind} methods as values (call '${name}' directly)`); @@ -6016,11 +5488,8 @@ export function lowerArrayLiteral( const ownUnhelpful = mapped === null || mapped.kind === "dyn" || - // The checker echoing the context union back as the literal's - // own type decides nothing either — nor does an island ('any') - // residue under a STATIC union slot. + // The checker may echo the context union rather than infer this literal. mapped.kind === "union" || - mapped.kind === "jsval" || (mapped.kind === "array" && nonUnitElems && lowerer.unitOnlyElem(mapped.elem)); if (ownUnhelpful) { const def = lowerer.unions.get(ctxUnion.unionId); @@ -6080,12 +5549,10 @@ export function lowerArrayLiteral( ) mapped = DYN; // An EMPTY literal under a CONST ASSERTION whose type queries panicked - // (tsgo's readonly-[] TupleType conversion — the facade answers `any`, - // which maps to nothing statically and to an island value under - // --dynamic): the value is provably the empty tuple; ride the - // unit-element array, mapType's own `[] as const` rule. + // (tsgo's readonly-[] TupleType conversion) uses a unit-element array, + // mapType's own `[] as const` rule. if ( - (mapped === null || mapped.kind === "jsval") && + mapped === null && expr.elements.length === 0 && (tsType.flags & ts.TypeFlags.Any) !== 0 && underConstAssertion(expr) @@ -6119,24 +5586,7 @@ export function lowerArrayLiteral( // tsc padded an UNDER-LENGTH literal against an optional-element // tuple context (`options || []` with `options?: [string?, // number?]` — the instantiated type spells every position, the - // literal spells fewer): no fixed shape holds it, but the - // engine's real arrays do — under --dynamic the literal builds - // island-native with its ACTUAL elements, length exact. Static - // builds keep the type fence (badType's dynamic probe tells the - // --dynamic story). - if ( - lowerer.dynamic && - expr.elements.length < shape.fields.length && - expr.elements.every((el) => !ts.isOmittedExpression(el)) - ) { - return { - kind: "jsOp", - op: "arrLit", - args: expr.elements.map((el) => lowerer.jsvalIn(lowerer.lowerExpr(el), el)), - type: JSVAL, - loc, - }; - } + // literal spells fewer): no fixed shape holds it. lowerer.badType(expr, tsType); } const byName = new Map(shape.fields.map((f) => [f.name, f.type])); @@ -6242,11 +5692,9 @@ export function lowerArrayLiteral( let srcNode: ts.Expression = el.expression; while (ts.isParenthesizedExpression(srcNode)) srcNode = srcNode.expression; lowerer.fenceStaticHeadersIteration(el.expression); - let src = - lowerer.lowerDynamicHeadersSpread(el.expression, type) ?? - (ts.isConditionalExpression(srcNode) - ? lowerTernary(lowerer, srcNode, type) - : lowerer.lowerExpr(el.expression)); + let src = ts.isConditionalExpression(srcNode) + ? lowerTernary(lowerer, srcNode, type) + : lowerer.lowerExpr(el.expression); src = lowerCollectionSpread(lowerer, src, el.expression) ?? src; // `[...new SymbolIterator]`: a CLASS ITERABLE drains through its // own protocol into a fresh element array (classIteratorDrainCall @@ -6834,36 +6282,7 @@ export function lowerElementAccess(lowerer: Lowerer, expr: ts.ElementAccessExpre ); } } - if (receiverIr?.kind === "jsval") { - // Dispatch follows the RUNTIME world (383(d)): a checker-'any' - // receiver whose value LOWERED checked-dynamic (`bag.list[0]` where - // bag.list is a routed keyed read off a wrapped island value) takes - // the dyn keyed read below — the routed JSVAL arm reads the real - // engine element; a jsval-lowered receiver keeps the island read. - const recv = lowerer.lowerExpr(expr.expression); - if (recv.type.kind !== "dyn") return islandElementRead(lowerer, expr, recv); - const rawKey = lowerer.lowerExpr(expr.argumentExpression); - const key: IrExpr | null = - rawKey.type.kind === "string" - ? rawKey - : rawKey.type.kind === "f64" - ? { kind: "toString", operand: rawKey, type: STRING, loc: rawKey.loc } - : null; - if (key) { - const opt = hasOptionalChainGuard(expr.expression); - return lowerer.maybeNarrow( - { - kind: "dynKeyGet", - key, - ...(opt ? { optional: true as const } : {}), - value: recv, - type: DYN, - loc: locOf(expr), - }, - expr, - ); - } - } + // Typed-array element read `b[i]` — like arrayGet with a scalar // result; any invalid index traps (the array discipline; JS would // read undefined — divergence 4's policy). @@ -6880,11 +6299,7 @@ export function lowerElementAccess(lowerer: Lowerer, expr: ts.ElementAccessExpre ? lowerer.checkedNarrowCall(helper, recv, present, locOf(expr.expression)) : lowerer.maybeNarrow(recv, expr.expression); } - // A typed-array .d.ts surface whose VALUE is an island handle - // (`data()[0]` on a declared Uint8Array return — call results only - // exit primitives eagerly): the engine element read, exiting at the - // declared number type. - if (recv.type.kind === "jsval") return islandElementRead(lowerer, expr, recv); + const index = lowerOptionalNumber( lowerer, lowerer.lowerExpr(expr.argumentExpression), @@ -6944,13 +6359,7 @@ export function lowerElementAccess(lowerer: Lowerer, expr: ts.ElementAccessExpre const shape = lowerer.shapes.get(receiverIr.shapeId); if (shape?.tuple) { let obj = lowerer.lowerExpr(expr.expression); - // A tuple-typed .d.ts surface whose VALUE is an island handle - // (`pair()[0]` on a declared `[number, string]` return — the - // anonymous tuple type has no npm symbol, so the checker maps it - // structurally while the call result stays an engine array): the - // read rides engine ops, exiting at the declared per-index type - // like the array path. - if (obj.type.kind === "jsval") return islandElementRead(lowerer, expr, obj); + if (obj.type.kind === "dyn") { // Object.entries over a checked value stores each pair in the // dynamic tree even when the checker names a tuple type. @@ -7012,13 +6421,6 @@ export function lowerElementAccess(lowerer: Lowerer, expr: ts.ElementAccessExpre : lowerer.maybeNarrow(get, expr); } if (shape && !shape.tuple) { - // A record-typed .d.ts surface whose VALUE is an island handle - // (`headers()["x-id"]` on a declared `Record` - // return — the stdlib alias maps structurally while the call - // result stays an engine object): the read rides engine ops with - // the declared-value exit, never a recordKeyGet over a jsval. - const obj = lowerer.lowerExpr(expr.expression); - if (obj.type.kind === "jsval") return islandElementRead(lowerer, expr, obj); return lowerer.lowerRecordKeyRead(expr, receiverIr.shapeId, shape); } } @@ -7305,13 +6707,7 @@ export function lowerElementAccess(lowerer: Lowerer, expr: ts.ElementAccessExpre ? lowerer.checkedNarrowCall(helper, arr, present, locOf(expr.expression)) : lowerer.maybeNarrow(arr, expr.expression); } - // The checker sees an array but the VALUE is an island handle (an - // array-typed .d.ts surface: `parts()[0]` on a declared `string[]` - // return, `issue.path[0]` on a declared member — arrays never exit - // eagerly, so the call/member read stays jsval): the read rides - // engine ops with the declared-element exit, never a static arrayGet - // over a jsval (the validator ICE). - if (arr.type.kind === "jsval") return islandElementRead(lowerer, expr, arr); + // The checker sees an array but the VALUE lowered checked-dynamic (a // jsdoc-typed default export from a .js module — signature 14): the // read rides the dynCheck boundary when the array shape is one the checked-dynamic tree @@ -7410,40 +6806,6 @@ export function lowerElementAccess(lowerer: Lowerer, expr: ts.ElementAccessExpre return lowerer.maybeNarrow({ kind: "arrayGet", arr, index, type: elemT, loc: locOf(expr) }, expr); } -/** `o[k]` where the RECEIVER is an island value — a jsval-mapped checker - * type, or an array/tuple-typed .d.ts surface whose lowered value is a - * handle. The key marshals in (any JS key kind — the engine does its - * own ToPropertyKey) and the result stays island, EXCEPT when the - * checker declares the element a primitive (`parts()[0]` on a declared - * `string[]`): those exit eagerly to the static type, exactly the - * island property-read rule (trust-but-verify — a lying declaration - * throws the catchable TypeError; tsc puts the `| undefined` of a - * short-circuiting chain on the OUTERMOST expression, so chain tails - * never map primitive here). Chain-handled reads (`v?.[0]`) stay jsval - * — the chain's unit path is the engine's undefined. */ -function islandElementRead( - lowerer: Lowerer, - expr: ts.ElementAccessExpression, - obj: IrExpr, -): IrExpr { - const loc = locOf(expr); - const key = lowerer.jsvalIn(lowerer.lowerExpr(expr.argumentExpression), expr.argumentExpression); - const read: IrExpr = { kind: "jsOp", op: "getIdx", args: [obj, key], type: JSVAL, loc }; - if (!expr.questionDotToken) { - const declared = lowerer.mapTypeOf(lowerer.typeOf(expr)); - if ( - declared && - (declared.kind === "f64" || - declared.kind === "bool" || - declared.kind === "string" || - (declared.kind === "bytes" && declared.elem === "u8")) - ) { - return { kind: "jsExit", value: read, type: declared, loc }; - } - } - return read; -} - /** `r[k]` over a (non-tuple) record shape. A LITERAL key naming a declared * field is the bracket spelling of field access (the ONLY spelling tsc * permits for signature-declared fields under @@ -8286,51 +7648,7 @@ export function lowerElementWrite(lowerer: Lowerer, expr: ts.BinaryExpression): const receiver = tryLowerExpression(lowerer, target.expression); if (receiver?.type.kind === "array") receiverIr = receiver.type; } - if (receiverIr?.kind === "jsval") { - const obj = lowerer.lowerExpr(target.expression); - // Dispatch follows the RUNTIME world (383(d)): a checker-'any' - // receiver whose value LOWERED checked-dynamic takes the dyn keyed - // write — the routed JSVAL arm lands it on the real engine object. - if (obj.type.kind === "dyn") { - const loc = locOf(expr); - const rawKey = lowerer.lowerExpr(target.argumentExpression); - const key: IrExpr = - rawKey.type.kind === "f64" || rawKey.type.kind === "bool" || rawKey.type.kind === "dyn" - ? { kind: "toString", operand: rawKey, type: STRING, loc: rawKey.loc } - : rawKey; - if (key.type.kind !== "string") { - lowerer.unsupported( - "SC1090", - target.argumentExpression, - `'${lowerer.fmt(key.type)}'-typed keys in keyed writes through 'unknown' values`, - ); - } - const value = lowerer.coerceToExpected(lowerer.lowerExpr(expr.right), DYN); - if (value.type.kind !== "dyn") { - lowerer.unsupported( - "SC1100", - expr.right, - `assigning '${lowerer.fmt(value.type)}' values through 'unknown' receivers`, - ); - } - return { - kind: "exprStmt", - expr: { kind: "libCall", fn: "dyn.keySet", args: [obj, key, value], type: VOID, loc }, - loc, - }; - } - const key = lowerer.jsvalIn( - lowerer.lowerExpr(target.argumentExpression), - target.argumentExpression, - ); - const value = lowerer.jsvalIn(lowerer.lowerExpr(expr.right), expr.right); - const loc = locOf(expr); - return { - kind: "exprStmt", - expr: { kind: "jsOp", op: "setIdx", args: [obj, key, value], type: VOID, loc }, - loc, - }; - } + // A checked-dynamic receiver TYPE (`unknown[]` and the collapsed // `(string | object)[]` map to DYN wholesale now): the dyn keyed // write — dyn.keySet. Number keys canonicalize through the JS-exact @@ -8405,21 +7723,6 @@ export function lowerElementWrite(lowerer: Lowerer, expr: ts.BinaryExpression): // the runtime coerces JS-exactly; invalid indices are ignored. if (receiverIr?.kind === "bytes") { const recv = lowerer.lowerExpr(target.expression); - // The write twin: a typed-array .d.ts surface whose VALUE is a - // handle takes the engine keyed write. - if (recv.type.kind === "jsval") { - const key = lowerer.jsvalIn( - lowerer.lowerExpr(target.argumentExpression), - target.argumentExpression, - ); - const value = lowerer.jsvalIn(lowerer.lowerExpr(expr.right), expr.right); - const loc = locOf(expr); - return { - kind: "exprStmt", - expr: { kind: "jsOp", op: "setIdx", args: [recv, key, value], type: VOID, loc }, - loc, - }; - } const index = lowerer.lowerExpr(target.argumentExpression); if (index.type.kind === "dyn" && recv.type.kind === "bytes") { return { @@ -8442,9 +7745,7 @@ export function lowerElementWrite(lowerer: Lowerer, expr: ts.BinaryExpression): // — literal indices only, like the read. if (receiverIr?.kind === "record") { const shape = lowerer.shapes.get(receiverIr.shapeId); - // A record/tuple-typed .d.ts surface whose VALUE is an island - // handle: the engine keyed write (the read dispatch's twin), never - // a recordSet/recordKeySet over a jsval. + if (shape) { const obj = lowerer.lowerExpr(target.expression); if (hasClassPayload(lowerer, obj.type)) { @@ -8454,19 +7755,7 @@ export function lowerElementWrite(lowerer: Lowerer, expr: ts.BinaryExpression): "computed property writes through structural views of class instances (use a declared literal key)", ); } - if (obj.type.kind === "jsval") { - const key = lowerer.jsvalIn( - lowerer.lowerExpr(target.argumentExpression), - target.argumentExpression, - ); - const value = lowerer.jsvalIn(lowerer.lowerExpr(expr.right), expr.right); - const loc = locOf(expr); - return { - kind: "exprStmt", - expr: { kind: "jsOp", op: "setIdx", args: [obj, key, value], type: VOID, loc }, - loc, - }; - } + // A record-mapped CHECKER type over a VALUE living in the checked-dynamic tree (a // JS file-scope object-literal global): the checked-dynamic keyed // write — dyn.keySet (later writes win, insertion order; Node's @@ -8668,9 +7957,8 @@ export function lowerElementWrite(lowerer: Lowerer, expr: ts.BinaryExpression): // arm above — later writes win in insertion order, number keys // canonicalize through the JS-exact formatter (ToPropertyKey's string // side), index keys on dyn arrays set/extend elements, and non-object - // receivers throw Node's TypeErrors at runtime. An UNMAPPED checker - // type (static `any` — mapTypeOf answers null without --dynamic) - // probes the receiver's own lowered world: a dyn value takes the same + // receivers throw Node's TypeErrors at runtime. An unmapped checker type + // probes the receiver's lowered representation: a dyn value takes the same // write, anything else falls through to the fences. if (receiverIr?.kind === "dyn" || receiverIr?.kind === "object" || receiverIr === null) { const obj = @@ -8722,22 +8010,7 @@ export function lowerElementWrite(lowerer: Lowerer, expr: ts.BinaryExpression): lowerer.unsupported("SC1090", target, "assignment to non-array elements"); } let arr = lowerer.lowerExpr(target.expression); - // The write twin of the island element read: an array-typed .d.ts - // surface whose VALUE is a handle takes the engine keyed write, never - // a static arraySet over a jsval. - if (arr.type.kind === "jsval") { - const key = lowerer.jsvalIn( - lowerer.lowerExpr(target.argumentExpression), - target.argumentExpression, - ); - const value = lowerer.jsvalIn(lowerer.lowerExpr(expr.right), expr.right); - const loc = locOf(expr); - return { - kind: "exprStmt", - expr: { kind: "jsOp", op: "setIdx", args: [arr, key, value], type: VOID, loc }, - loc, - }; - } + if ( arr.type.kind === "union" && lowerer.armTag(arr.type.unionId, UNDEFINED_T) >= 0 && @@ -8851,10 +8124,7 @@ export function ensureString(lowerer: Lowerer, e: IrExpr, node: ts.Node): IrExpr const boxed: IrExpr = { kind: "dynFrom", value: e, type: DYN, loc: e.loc }; return { kind: "toString", operand: boxed, type: STRING, loc: e.loc }; } - if (e.type.kind === "jsval") { - // String(v) in the engine — JS-exact (and Node-exact in templates). - return { kind: "jsOp", op: "toStr", args: [e], type: STRING, loc: e.loc }; - } + if (e.type.kind === "object") { // String(err) / `${err}` uses the same dispatch as err.toString(). for (let c = lowerer.classes.get(e.type.className) ?? null; c; c = c.base) { @@ -9130,12 +8400,8 @@ export function lowerAsExpression( const use = runtimeOptionalUseOf(expr); if (inner.type.kind === "union" && runtimeOptionalAssertionErases(lowerer, expr, inner, use)) return inner; - if (inner.type.kind !== "dyn" && inner.type.kind !== "jsval") { - // A STATIC value cast `as any` is the explicit island entrance. + if (inner.type.kind !== "dyn") { const targetTs0 = lowerer.checker.getTypeFromTypeNode(expr.type); - if (targetTs0.flags & ts.TypeFlags.Any && lowerer.dynamic) { - return lowerer.jsvalIn(inner, expr.expression); - } const target = lowerer.mapTypeOf(targetTs0); if (target?.kind === "object") { const asserted = checkedClassAssertion(lowerer, inner, target, locOf(expr)); @@ -9224,27 +8490,7 @@ export function lowerAsExpression( } return inner; // erasure, unchanged } - if (inner.type.kind === "jsval") { - // The island exit. `as any` on an island value is erasure; a static - // target compiles to a VALIDATED extraction (strict primitives; the - // JSON round-trip + dynCheck walker for composites) that throws a - // catchable TypeError on mismatch — same trust-but-verify rule as - // the dyn boundary. Targets with no extraction are rejected. - const targetTs = lowerer.checker.getTypeFromTypeNode(expr.type); - if (targetTs.flags & ts.TypeFlags.Any) return inner; - const target = lowerer.mapTypeOf(targetTs); - if (!target) lowerer.badType(expr.type, targetTs); - if (!lowerer.boundarySafe(target)) { - lowerer.unsupported( - "SC1090", - expr, - `a checked cast of 'any' to '${lowerer.fmt(target)}' ` + - `(an 'any' value can only be validated against JSON-representable types: ` + - `number, string, boolean, records, arrays, and unions of those)`, - ); - } - return { kind: "jsExit", value: inner, type: target, loc: locOf(expr) }; - } + const targetTs = lowerer.checker.getTypeFromTypeNode(expr.type); const target = lowerer.mapTypeOf(targetTs) ?? dynFallbackType(lowerer, expr.type, targetTs); if (!target) lowerer.badType(expr.type, targetTs); @@ -9330,9 +8576,7 @@ export function lowerPrefixUnary(lowerer: Lowerer, expr: ts.PrefixUnaryExpressio switch (expr.operator) { case ts.SyntaxKind.MinusToken: { const raw = lowerer.lowerExpr(expr.operand); - if (raw.type.kind === "jsval") { - return { kind: "jsOp", op: "neg", args: [raw], type: JSVAL, loc }; - } + if (raw.type.kind === "bigint") { return { kind: "libCall", fn: "bigint.neg", args: [raw], type: BIGINT_T, loc }; } @@ -9353,9 +8597,7 @@ export function lowerPrefixUnary(lowerer: Lowerer, expr: ts.PrefixUnaryExpressio // Unary + is ToNumber; on an already-number operand it's identity, // and a STRING operand runs the runtime's ECMA-exact StringToNumber // (num.fromString — Number(aString)'s lowering, scr_string.c). - if (raw.type.kind === "jsval") { - return { kind: "jsOp", op: "plus", args: [raw], type: JSVAL, loc }; - } + if (raw.type.kind === "string") { return { kind: "libCall", fn: "num.fromString", args: [raw], type: F64, loc }; } @@ -9716,49 +8958,6 @@ function seqExprSafeStmt(s: IrStmt): boolean { } } -/** Run one supported `any` binary operation in the island. Checked-dynamic - * operands marshal in only after lowerBinary's identity-preserving native - * cases have had their chance (notably dyn strict equality). */ -function lowerAnyBinaryInIsland( - lowerer: Lowerer, - expr: ts.BinaryExpression, - left: IrExpr, - right: IrExpr, - loc: SrcLoc, -): IrExpr { - const op = expr.operatorToken.kind; - const JS_BIN: Partial> = { - [ts.SyntaxKind.PlusToken]: "add", - [ts.SyntaxKind.MinusToken]: "sub", - [ts.SyntaxKind.AsteriskToken]: "mul", - [ts.SyntaxKind.SlashToken]: "div", - [ts.SyntaxKind.PercentToken]: "mod", - [ts.SyntaxKind.AsteriskAsteriskToken]: "pow", - [ts.SyntaxKind.LessThanToken]: "lt", - [ts.SyntaxKind.LessThanEqualsToken]: "le", - [ts.SyntaxKind.GreaterThanToken]: "gt", - [ts.SyntaxKind.GreaterThanEqualsToken]: "ge", - [ts.SyntaxKind.EqualsEqualsEqualsToken]: "eq", - [ts.SyntaxKind.ExclamationEqualsEqualsToken]: "neq", - }; - const jop = JS_BIN[op]; - if (jop === undefined) { - lowerer.unsupported( - "SC1090", - expr, - `operator '${ts.tokenToString(op) ?? ts.syntaxKindName(op)}' on 'any' values`, - ); - } - const type = jsOpResultKind(jop) === "bool" ? BOOL : JSVAL; - return { - kind: "jsOp", - op: jop, - args: [lowerer.jsvalIn(left, expr.left), lowerer.jsvalIn(right, expr.right)], - type, - loc, - }; -} - export function lowerCompoundValueToTarget( lowerer: Lowerer, expr: ts.BinaryExpression, @@ -9775,26 +8974,7 @@ export function lowerCompoundValueToTarget( const rhs = lowerer.lowerExpr(expr.right); const numericRead = lowerOptionalNumber(lowerer, read, loc); const numericRhs = lowerOptionalNumber(lowerer, rhs, loc); - if (target.type.kind === "jsval" || rhs.type.kind === "jsval") { - const JS_COMPOUND: Record = { - "+": "add", - "-": "sub", - "*": "mul", - "/": "div", - "%": "mod", - "**": "pow", - }; - const jop = JS_COMPOUND[compound]; - if (jop === undefined) lowerer.unsupported("SC1043", expr); - const wrapped: IrExpr = { - kind: "jsOp", - op: jop, - args: [lowerer.jsvalIn(read, expr.left), lowerer.jsvalIn(rhs, expr.right)], - type: JSVAL, - loc, - }; - return lowerer.coerceInto(expr, wrapped, target.type); - } + if ( compound === "+" && (target.type.kind === "string" || @@ -10112,51 +9292,7 @@ export function lowerBinary(lowerer: Lowerer, expr: ts.BinaryExpression): IrExpr }; } } - // `h.k = v` on an ISLAND receiver in VALUE position: the engine - // property write (setProp throws the engine's TypeErrors on - // nullish receivers, bridged catchably), the RHS value threaded - // through as the expression's value. - if ( - ts.isPropertyAccessExpression(expr.left) && - !expr.left.questionDotToken && - lowerer.isIslandExpr(expr.left.expression) - ) { - const recv = lowerer.lowerExpr(expr.left.expression); - const recvTmp = lowerer.declareHiddenLocal("%setRecv", recv.type); - const rhsVal = lowerer.lowerExpr(expr.right); - const valTmp = lowerer.declareHiddenLocal("%setVal", rhsVal.type); - const valRef = (): IrExpr => ({ - kind: "varRef", - localId: valTmp.id, - type: rhsVal.type, - loc, - }); - return { - kind: "seqExpr", - stmts: [ - { kind: "varDecl", localId: recvTmp.id, init: recv, loc }, - { kind: "varDecl", localId: valTmp.id, init: rhsVal, loc }, - { - kind: "exprStmt", - expr: { - kind: "jsOp", - op: "setProp", - name: expr.left.name.text, - args: [ - { kind: "varRef", localId: recvTmp.id, type: recv.type, loc }, - lowerer.jsvalIn(valRef(), expr.right), - ], - type: VOID, - loc, - }, - loc, - }, - ], - result: valRef(), - type: rhsVal.type, - loc, - }; - } + // `h.k = v` on a CHECKED-DYNAMIC receiver in VALUE position // (`var _ = module.exports = foo`): receiver first, then RHS // (JS's reference-before-value order), the keyed write, and the @@ -10499,11 +9635,8 @@ export function lowerBinary(lowerer: Lowerer, expr: ts.BinaryExpression): IrExpr } } } - // `any`-origin operands (tsc rejects these operator forms on real - // `unknown`, so in a checker-clean TS program only `any` reaches - // here): JS's full coercion semantics (ToPrimitive, NaN, string +) - // live in the engine — the dynamic-family fence, so the island - // retry lifts the site. Genuine unknown keeps the SC1100 story. + // Unsupported `any`-origin operations get their specific diagnostic; + // unknown retains the narrowing diagnostic below. if ( (left.type.kind === "dyn" && lowerer.anyOrigin(expr.left)) || (right.type.kind === "dyn" && lowerer.anyOrigin(expr.right)) @@ -10511,23 +9644,14 @@ export function lowerBinary(lowerer: Lowerer, expr: ts.BinaryExpression): IrExpr // `JSON.parse` and other checked-dynamic producers deliberately // remain dyn when assigned to an `any` local: eagerly converting // the binding would deep-copy its data and sever aliases. At an - // operator the dynamic build can cross only the operands and let - // the engine apply JS's exact coercion semantics. Static builds - // retain the SC2011 promise that --dynamic lifts this site. - if (lowerer.dynamic) return lowerAnyBinaryInIsland(lowerer, expr, left, right, loc); + // unsupported operator, require an explicit represented type. lowerer.anyOpFence(`the '${ts.tokenToString(op) ?? ts.syntaxKindName(op)}' operator`, expr); } // tsc allows ===/!== on unknown (arithmetic/comparisons it rejects // itself); a dynamic equality would need a dyn walk — validate first. lowerer.unsupported("SC1100", expr, "operators on 'unknown' values"); } - // Operators over 'any' execute in the island with JS-exact semantics - // (ToPrimitive, NaN, string +): both operands marshal in, the engine - // computes. Comparisons come back as static bools; arithmetic stays - // an island value ('1 as any + "x"' is a string over there). - if (left.type.kind === "jsval" || right.type.kind === "jsval") { - return lowerAnyBinaryInIsland(lowerer, expr, left, right, loc); - } + if (left.type.kind === "bigint" && right.type.kind === "bigint") { const binary: Partial< Record< @@ -11270,16 +10394,7 @@ function lowerLogicalPair(lowerer: Lowerer, expr: ts.BinaryExpression, left: IrE loc, }; } - if (left.type.kind === "jsval" || right.type.kind === "jsval") { - return { - kind: "logical", - op: op === ts.SyntaxKind.AmpersandAmpersandToken ? "&&" : "||", - left: lowerer.jsvalIn(left, expr.left), - right: lowerer.jsvalIn(right, expr.right), - type: JSVAL, - loc, - }; - } + if ( isJsSourceFile(expr.getSourceFile()) && op === ts.SyntaxKind.AmpersandAmpersandToken && @@ -11338,11 +10453,7 @@ function lowerLogicalPair(lowerer: Lowerer, expr: ts.BinaryExpression, left: IrE right.type.kind === "union" ? lowerer.unions.get(right.type.unionId)?.arms : [right.type]; const rightIsStatic = rightArms?.every( - (arm) => - arm.kind !== "dyn" && - arm.kind !== "caught" && - arm.kind !== "jsval" && - arm.kind !== "void", + (arm) => arm.kind !== "dyn" && arm.kind !== "caught" && arm.kind !== "void", ) ?? false; if ( leftArms && @@ -11706,12 +10817,6 @@ export function lowerCaughtTypeofTest( return null; } -/** The static `typeof` answer for a union ARM's IR type, or null when the - * arm has no fixed answer. Unit arms are known (`typeof undefined` is - * "undefined", `typeof null` is "object" — JS's oldest wart, preserved - * exactly); every ref kind is a JS object ("object"), func arms would be - * "function" (unions never carry them — defensive), and the jsval/dyn/ - * caught/void/union kinds cannot appear as arms. */ function typeofAnswer(arm: IrType): string | null { switch (arm.kind) { case "f64": @@ -12300,24 +11405,8 @@ export function lowerInstanceOf(lowerer: Lowerer, expr: ts.BinaryExpression, loc // h2 compat 'connect' narrowing (lower-server.ts): a union tag test. const sockTest = lowerSocketInstanceOf(lowerer, expr, loc); if (sockTest !== null) return sockTest; - // An ISLAND class as the RHS (`v instanceof Boom` on a package- - // exported class — the safeParse-style error narrowing): the spec's - // InstanceofOperator runs in the engine (Symbol.hasInstance included; - // a non-object RHS throws the engine's own TypeError, catchably). - // The LHS marshals in — island handles pass through, static - // primitives answer false exactly like the spec's non-object rule, - // and unmarshalable statics (class instances, catch bindings — the - // payload is a name/message snapshot, never the engine object) keep - // jsvalIn's honest fences. - if (lowerer.isIslandExpr(expr.right) && !lowerer.caughtLocalOf(expr.left)) { - const left = lowerer.jsvalIn(lowerer.lowerExpr(expr.left), expr.left); - const right = lowerer.lowerExpr(expr.right); - return { kind: "jsOp", op: "instanceOf", args: [left, right], type: BOOL, loc }; - } - if ( - !lowerer.dynamic && - (lowerer.isStdlibGlobal(expr.right, "Set") || lowerer.isStdlibGlobal(expr.right, "Map")) - ) { + + if (lowerer.isStdlibGlobal(expr.right, "Set") || lowerer.isStdlibGlobal(expr.right, "Map")) { const collection = lowerer.isStdlibGlobal(expr.right, "Map") ? "map" : "set"; const value = lowerer.lowerExpr(expr.left); if (value.type.kind === "union") { @@ -12379,18 +11468,6 @@ export function lowerInstanceOf(lowerer: Lowerer, expr: ts.BinaryExpression, loc lowerer.isStdlibGlobal(expr.right, "WeakMap") || lowerer.isStdlibGlobal(expr.right, "WeakSet") ) { - if (lowerer.dynamic) { - const value = lowerer.jsvalIn(lowerer.lowerExpr(expr.left), expr.left); - const ctor: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: lowerer.isStdlibGlobal(expr.right, "WeakMap") ? "WeakMap" : "WeakSet", - args: [], - type: JSVAL, - loc, - }; - return { kind: "jsOp", op: "instanceOf", args: [value, ctor], type: BOOL, loc }; - } const value = lowerer.coerceInto(expr.left, lowerer.lowerExpr(expr.left), DYN); return { kind: "libCall", @@ -14440,16 +13517,12 @@ function lowerUnionKeyedRead( if (!pushAnswer(shape.indexValue)) return null; } if (joinArms.length === 0) return null; - // The join must be a BUILDABLE union: arm kinds the union invariants - // admit (no dyn/jsval/generator arms; containers only beside unit - // siblings). The caller owns the diagnostic for a refused join. + // The join must satisfy native union invariants. The caller owns the + // diagnostic when a container or opaque arm prevents that join. if ( joinArms.length > 1 && (!unionContainerArmsOk(joinArms) || - joinArms.some( - (a) => - a.kind === "dyn" || a.kind === "jsval" || a.kind === "generator" || a.kind === "caught", - )) + joinArms.some((a) => a.kind === "dyn" || a.kind === "generator" || a.kind === "caught")) ) { return null; } diff --git a/packages/compiler/src/frontend/lowering/lower-functions.ts b/packages/compiler/src/frontend/lowering/lower-functions.ts index 2c004133b..cde6f71ff 100644 --- a/packages/compiler/src/frontend/lowering/lower-functions.ts +++ b/packages/compiler/src/frontend/lowering/lower-functions.ts @@ -294,7 +294,7 @@ export function lowerLambda( loc, funcType.rest === true && funcType.restAbi === undefined && - !shapes.some((s) => s.mode === "dynRest" || s.mode === "islandRest"), + !shapes.some((s) => s.mode === "dynRest"), ); let body: IrStmt[]; @@ -417,10 +417,7 @@ export function lowerLambda( })); // A REST-MARKED value type hides one synthetic trailing dyn-array // param in the lifted function (the boxed call thunk fills it) — - // the fence lambda must spell that slot too or the validator's - // closure-signature check trips (SC9001). Island rest types SPELL - // their trailing engine-array param, so funcType.params already - // covers those. + // the fence lambda must spell that slot too to preserve its ABI. if (funcType.rest === true && funcType.restAbi === undefined) { params.push({ localId: "%pfrest", name: "%pfrest", type: DYN }); } diff --git a/packages/compiler/src/frontend/lowering/lower-inspect.ts b/packages/compiler/src/frontend/lowering/lower-inspect.ts index 27f905955..406457874 100644 --- a/packages/compiler/src/frontend/lowering/lower-inspect.ts +++ b/packages/compiler/src/frontend/lowering/lower-inspect.ts @@ -1,40 +1,6 @@ import { dynUndefinedExpr, boolLit, helperLoc, numLit, strLit, varRef } from "../../ir/build.js"; import { InternalCompilerError } from "../../errors.js"; -/* The node:util inspect/format lowering (a spoke module like - * lower-assert.ts): STATIC util.inspect — one synthesized traversal - * helper per argument type (the deepStrictEqual precedent, interned per - * typeKey), producing Node v24's byte-exact DEFAULT-options rendering — - * and util.format/formatWithOptions over compile-time format strings. - * - * The division of labor: the synthesized helpers own the TRAVERSAL the - * static type dictates (fields, elements, entries, union arms, depth - * bookkeeping); scr_inspect.c owns everything the type cannot know — - * scalar formatting (-0, the quoting ladder, string splitting), Buffer - * hex, and the layout engine (frames, break-length, grid grouping). - * Checked-dynamic values render ENTIRELY in the runtime (the dyn - * carries its own shape); island `any` values render their scalar kinds - * and throw catchably on composites (the runtime tag is all there is). - * - * Options fence honestly, never approximate: depth takes any numeric - * literal plus null/Infinity (cycle-capable types are safe unbounded — - * the circular machinery cuts every cycle), colors:false / compact:3 / - * breakLength:80 are the accepted no-op spellings, and everything else - * names itself in the diagnostic. Values whose rendering would need - * runtime type identity the static type lacks fence the same way: class - * hierarchies (a subclass's name and extra fields are dynamic), function - * values inside composites (no runtime name exists), Uint8Array-vs- - * Buffer ambiguity. - * - * CYCLIC runtime data renders Node's exact ``/`[Circular *N]` - * markers: helpers over cycle-capable composites (typeReachesItself) - * drive the runtime seen/circular protocol (insp.circCheck/seenPush/ - * refWrap — scr_inspect.c), numbering in discovery order per top-level - * value, exactly formatValue's ctx.seen/ctx.circular. - * - * Known-divergence corners (SEMANTICS.md): errors render the STACKLESS - * `[Name: message]` form (compiled binaries carry no JS stack), and - * record/class property order follows declaration order (SEMANTICS.md - * 36's existing stance). */ + import * as ts from "../ts7/adapter.js"; import { unsignedHex } from "../../format-integer.js"; import type { Lowerer } from "./lowerer.js"; @@ -162,7 +128,6 @@ function inspectSupport( case "symbol": case "bigint": case "dyn": - case "jsval": return null; case "array": return inspectSupport(lowerer, t.elem, visiting, out); @@ -320,14 +285,6 @@ export function inspectExpr( return { kind: "libCall", fn: "insp.buffer", args: [value], type: STRING, loc }; case "dyn": return { kind: "libCall", fn: "insp.dyn", args: [value, recurse, depth], type: STRING, loc }; - case "jsval": - return { - kind: "libCall", - fn: "insp.jsval", - args: [value, recurse, depth], - type: STRING, - loc, - }; case "object": if (isErrorClass(lowerer, t.className)) { return { @@ -1818,11 +1775,7 @@ export function lowerFormatCall( continue; } case 102: // f — parseFloat's full grammar has no static lowering - lowerer.noLowering( - "util.format %f", - expr, - "parseFloat has no static lowering (it runs with --dynamic)", - ); + lowerer.noLowering("util.format %f", expr, "parseFloat has no native lowering"); break; case 99: // c — consumes its argument, contributes nothing a += 1; @@ -2010,7 +1963,6 @@ export function lowerUtilModuleCall( if ( result && result.kind !== "dyn" && - result.kind !== "jsval" && canDynCheckTo( result, (id) => lowerer.shapes.get(id), @@ -2050,8 +2002,6 @@ function lowerParseArgsCall(lowerer: Lowerer, expr: ts.CallExpression, loc: SrcL const raw = lowerer.lowerExpr(configNode); if (raw.type.kind === "dyn") { config = raw; - } else if (raw.type.kind === "jsval") { - config = { kind: "dynFromJsval", value: raw, type: DYN, loc }; } else if ( canConvertToDyn( raw.type, @@ -2093,7 +2043,6 @@ function lowerParseArgsCall(lowerer: Lowerer, expr: ts.CallExpression, loc: SrcL if ( result !== null && result.kind !== "dyn" && - result.kind !== "jsval" && result.kind !== "void" && canDynCheckTo( result, diff --git a/packages/compiler/src/frontend/lowering/lower-island.test.ts b/packages/compiler/src/frontend/lowering/lower-island.test.ts deleted file mode 100644 index 525a5694f..000000000 --- a/packages/compiler/src/frontend/lowering/lower-island.test.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { expect, test, vi } from "vitest"; -import { F64, JSVAL, funcOf, type IrGlobal, type IrLocal } from "../../ir/ir.js"; -import { - SyntaxKind, - type Expression, - type Identifier, - type Program, - type SourceFile, - type Type, -} from "../ts7/adapter.js"; -import { isIslandExpr } from "./lower-island.js"; -import { Lowerer } from "./lowerer.js"; - -const identifier = { kind: SyntaxKind.Identifier, text: "value" } as Identifier; -const context = (dynamic: boolean) => - new Lowerer( - { getTypeChecker: () => ({}) } as Program, - { fileName: "island.ts" } as SourceFile, - [], - dynamic, - ); - -test("static island probes do not query the checker or map receiver and callee types", () => { - const lowerer = context(false); - const typeOf = vi.spyOn(lowerer, "typeOf"); - const mapTypeOf = vi.spyOn(lowerer, "mapTypeOf"); - const peekLocal = vi.spyOn(lowerer, "peekLocal"); - const globalOf = vi.spyOn(lowerer, "globalOf"); - for (const kind of [ - SyntaxKind.Identifier, - SyntaxKind.PropertyAccessExpression, - SyntaxKind.ElementAccessExpression, - SyntaxKind.CallExpression, - ]) { - expect(isIslandExpr(lowerer, { kind } as Expression)).toBe(false); - } - expect(typeOf).not.toHaveBeenCalled(); - expect(mapTypeOf).not.toHaveBeenCalled(); - expect(peekLocal).not.toHaveBeenCalled(); - expect(globalOf).not.toHaveBeenCalled(); -}); - -test("dynamic island probes preserve checker mapping and the current binding's representation", () => { - const lowerer = context(true); - vi.spyOn(lowerer, "typeOf").mockReturnValue({} as Type); - const mapTypeOf = vi.spyOn(lowerer, "mapTypeOf").mockReturnValue(JSVAL); - const peekLocal = vi.spyOn(lowerer, "peekLocal").mockReturnValue(null); - const globalOf = vi.spyOn(lowerer, "globalOf").mockReturnValue(null); - expect(isIslandExpr(lowerer, identifier)).toBe(true); - - mapTypeOf.mockReturnValue(funcOf([], F64)); - expect(isIslandExpr(lowerer, identifier)).toBe(false); - globalOf.mockReturnValue({ type: JSVAL } as IrGlobal); - expect(isIslandExpr(lowerer, identifier)).toBe(true); - // A native local shadows the island global; probes must see scope changes. - peekLocal.mockReturnValue({ type: F64 } as IrLocal); - expect(isIslandExpr(lowerer, identifier)).toBe(false); - peekLocal.mockReturnValue({ type: JSVAL } as IrLocal); - expect(isIslandExpr(lowerer, identifier)).toBe(true); - mapTypeOf.mockReturnValue(null); - expect(isIslandExpr(lowerer, identifier)).toBe(true); -}); - -test("dynamic promise bindings retain checker dispatch even when stored as island handles", () => { - const lowerer = context(true); - vi.spyOn(lowerer, "typeOf").mockReturnValue({} as Type); - vi.spyOn(lowerer, "mapTypeOf").mockReturnValue({ kind: "promise", inner: F64 }); - const peekLocal = vi.spyOn(lowerer, "peekLocal").mockReturnValue({ type: JSVAL } as IrLocal); - vi.spyOn(lowerer, "globalOf").mockReturnValue({ type: JSVAL } as IrGlobal); - expect(isIslandExpr(lowerer, identifier)).toBe(false); - peekLocal.mockReturnValue(null); - expect(isIslandExpr(lowerer, identifier)).toBe(false); -}); diff --git a/packages/compiler/src/frontend/lowering/lower-modules.test.ts b/packages/compiler/src/frontend/lowering/lower-modules.test.ts index 075fc466a..84cc96e7d 100644 --- a/packages/compiler/src/frontend/lowering/lower-modules.test.ts +++ b/packages/compiler/src/frontend/lowering/lower-modules.test.ts @@ -19,7 +19,6 @@ test("retains dependencies from function storage, captures, generator channels a { getTypeChecker: () => ({}) } as Program, { fileName: loc.file } as SourceFile, [], - false, ); const record = (name: string, type: IrType = F64): IrType & { kind: "record" } => ({ kind: "record", @@ -69,7 +68,6 @@ test("retains a constructible grandchild through an unused intermediate class", { getTypeChecker: () => ({}) } as Program, { fileName: loc.file } as SourceFile, [], - false, ); const info = (name: string, base: ClassInfo | null): ClassInfo => { const value = { @@ -109,7 +107,6 @@ test("retains references carried by executable metadata and generator completion { getTypeChecker: () => ({}) } as Program, { fileName: loc.file } as SourceFile, [], - false, ); const shapeId = lowerer.shapes.intern([{ name: "payload", type: F64 }]); const completedId = lowerer.shapes.intern([{ name: "completed", type: F64 }]); @@ -153,7 +150,6 @@ test("closes nested structural types and index-signature values", () => { { getTypeChecker: () => ({}) } as Program, { fileName: loc.file } as SourceFile, [], - false, ); const record = (name: string): IrType & { kind: "record" } => ({ kind: "record", @@ -193,7 +189,6 @@ test("boxed child values retain native stdio classes through recursive storage", { getTypeChecker: () => ({}) } as Program, { fileName: loc.file } as SourceFile, [], - false, ); for (const name of ["%Readable", "%Writable"]) lowerer.classes.set(name, { diff --git a/packages/compiler/src/frontend/lowering/lower-modules.ts b/packages/compiler/src/frontend/lowering/lower-modules.ts index a9733dac4..097c0d935 100644 --- a/packages/compiler/src/frontend/lowering/lower-modules.ts +++ b/packages/compiler/src/frontend/lowering/lower-modules.ts @@ -9,13 +9,8 @@ import { InternalCompilerError } from "../../errors.js"; import * as ts from "../ts7/adapter.js"; import { bindingSource } from "../binding-source.js"; import type { Lowerer } from "./lowerer.js"; -import { dirname as dirnamePath, isAbsolute, resolve as resolvePath } from "node:path"; -import { - NpmGraphBuilder, - packageNameOfPath, - probeNodeImportRefusal, - probeNodeRequireRefusal, -} from "../npm.js"; +import { dirname as dirnamePath, resolve as resolvePath } from "node:path"; +import { packageNameOfPath, probeNodeImportRefusal } from "../npm.js"; import { isNpmStaticPackage } from "../npm-static.js"; import { isJsSourceFileName } from "../tsc-codes.js"; import { isRelativeSpecifier } from "../workspace-registry.js"; @@ -37,8 +32,7 @@ import type { CycleEdge } from "../program.js"; import { markCycleEarlyBindings, withCycleInitFlags } from "./cycle-initialization.js"; import { invalidJsonModuleDiag, - npmEmbedFailedDiag, - requiresDynamicImportDiag, + unsupportedPackageImportDiag, } from "../../diagnostics/diagnostic.js"; import { BOOL, @@ -53,7 +47,6 @@ import { type IrStmt, type IrType, type IrUnionDef, - JSVAL, RUNTIME_ERROR_CLASSES, STRING, type SrcLoc, @@ -68,10 +61,8 @@ import { PoisonError, boundIdentifiersOf, dynFallbackType, - importCallHandleType, newFnCtx, staticImportNamespaceType, - uncheckedOverloadHandleCall, } from "./lowerer.js"; import { isNativeFfiRequire, @@ -80,7 +71,6 @@ import { createRequireBindingDecl, createRequireNamespaceDecl, createRequireProgramModuleDecl, - createRequireSpecOf, } from "./builtins/module-bindings.js"; import { isPromisifyCall, registerBuiltinCallableAlias } from "./builtins/callable-aliases.js"; import { stripTypeCasts } from "./builtins/arguments.js"; @@ -294,22 +284,6 @@ function dynamicProgramImportsOf(program: ts.Program, sf: ts.SourceFile): ts.Sou return out; } -/** --dynamic builds: program modules reachable ONLY through dynamic - * `import()` join the compiled module graph — appended to `order` (before - * the entry, which stays last) in depth-first postorder over their own - * static import edges, exactly like preflight ordered the static graph. - * NOTHING calls their %init at startup (%main runs only the entry's init, - * and no static import header names these), so a dynamic-only module - * still evaluates exactly when Node evaluates it: the import() site's - * namespace builder calls the guarded init on the engine microtask. - * Fixpoint: an added module's own import() sites are scanned too. Static - * cycles inside the added subgraph ride preflight's own admission engine - * (makeCycleAdmission — preflight only walked the entry's static graph, - * so it never judged these): benign back edges are Node cache hits the - * run-once init guards reproduce, and inadmissible ones get preflight's - * SC1016 with the same narrowed reason via `onCycle`. Idempotent — - * re-running on an already-extended order adds nothing (both lowering - * passes share one array). */ export function appendDynamicImportModules( program: ts.Program, order: ts.SourceFile[], @@ -513,33 +487,12 @@ export function collectProgram(lowerer: Lowerer, parts: FileParts[]): void { markCycleEarlyBindings(lowerer); } -/** The npm-import chokepoint, run once per pass during collection (so - * bodies lowered in ANY pass resolve the bindings). In a static build - * every value-importing npm import reports the requires-dynamic - * diagnostic naming the package — the package's shipped JS has exactly - * one execution home, the embedded engine. Under --dynamic each value - * binding becomes a jsval GLOBAL, registered by ALIASED symbol (modules - * importing the same export share one global) and initialized at the - * top of the importing module's %init by island.import — the engine's - * module registry caches, so re-imports are lookups, not re-evaluations. - * The runtime graph (the package entry plus everything it reaches) - * builds here too; its failures are ordinary diagnostics at the import - * site. Type-only imports are free either way: the .d.ts is a type - * surface, not code. */ export function collectNpmImports(lowerer: Lowerer, parts: FileParts[]): void { - const services = lowerer.frontendServices; - if (lowerer.dynamic && services === undefined) - throw new Error("dynamic lowering requires frontend services"); - const builder = lowerer.dynamic && services !== undefined ? new NpmGraphBuilder(services) : null; const entryPackageFile = entryPackageFilePredicate(lowerer.entry.fileName); for (const fp of parts) { for (const stmt of fp.sf.statements) { // NAMED re-exports from npm packages (`export { isUrl } from - // "url-or-path"` — preflight admitted them): import-plus-export - // plumbing — the island load registers at this statement's - // position, and each binding keys the same aliased symbol a - // direct import would, so consumers' alias chains land on the - // same storage. + // "url-or-path"`): use the same package bindings as direct imports. const reexport = ts.isExportDeclaration(stmt) && !stmt.isTypeOnly && @@ -575,15 +528,12 @@ export function collectNpmImports(lowerer: Lowerer, parts: FileParts[]): void { const spec = specNode.text; // --external-types owns this exact module interpretation. Even when // an install happens to resolve the same name (or --npm-static auto - // selects its package), the declaration mapping promises no npm or - // island runtime implementation; the preflight/import-use SC1010 - // fences are the whole story. + // selects its package), the declaration mapping owns this boundary. if (lowerer.externalTypes.has(spec)) continue; // A source-only workspace package is part of the program module // graph: resolveImport follows its node_modules link to the loaded // TypeScript entry. Its internal `.js` spellings have already been - // resolved to `.ts` by that graph, and no source may be handed to - // the JavaScript island. + // resolved to `.ts` by that graph. if (!isRelativeSpecifier(spec) && resolveImport(lowerer.program, fp.sf, spec) !== null) { continue; } @@ -592,7 +542,7 @@ export function collectNpmImports(lowerer: Lowerer, parts: FileParts[]): void { // is a PROGRAM-MODULE dependency — its entry sits in the module // order, orderedImportsOf answers it for the %init header, and the // checker's alias chains bind the imports to its own exports. The - // island owns nothing here, in static and --dynamic builds alike. + if ( npm !== null && isNpmStaticPackage(npm.packageName) && @@ -603,12 +553,8 @@ export function collectNpmImports(lowerer: Lowerer, parts: FileParts[]): void { } // A RELATIVE specifier resolving INTO node_modules (the e2e driver // shape: `import "../node_modules/vercel/dist/index.js"`) is - // package code too — tsc pulls the FILE into the program under - // allowJs, but shipped JS has exactly one execution home, the - // embedded engine, so it takes the same island path as a bare - // specifier (previously it lowered to NOTHING: not an npm import, - // and node_modules files never lower as program modules — the - // import silently dropped). + // package code too. Attribute it to the package so unselected source + // receives a diagnostic instead of silently dropping the import. const relPkg = npm === null && isRelativeSpecifier(spec) ? packageNameOfPath(resolvePath(dirnamePath(fp.sf.fileName), spec)) @@ -620,7 +566,7 @@ export function collectNpmImports(lowerer: Lowerer, parts: FileParts[]): void { if (relIsJs) { // An explicitly selected installed entry owns its package's // source graph. Preflight included these modules for native - // initialization; do not also embed them in the island. + const dep = resolveImport(lowerer.program, fp.sf, spec); if (dep !== null && entryPackageFile(dep.fileName) && lowerer.fileTag.has(dep)) continue; } @@ -632,94 +578,15 @@ export function collectNpmImports(lowerer: Lowerer, parts: FileParts[]): void { // resolved, but the exports target ships no JS — the types-only // package shape): preflight registered Node's startup crash for // it, %main throws before any init runs, and the bindings never - // link — nothing to embed, no island requirement, in EITHER mode. + if (npm !== null && probeNodeImportRefusal(fp.sf.fileName, spec) !== null) continue; - if (!builder) { - lowerer.pushDiag(requiresDynamicImportDiag(npm?.packageName ?? relPkg!, locOf(stmt))); + { + lowerer.pushDiag(unsupportedPackageImportDiag(npm?.packageName ?? relPkg!, locOf(stmt))); continue; } - const before = builder.errors.length; - const entryKey = npm - ? (builder.addImport(fp.sf.fileName, spec), builder.entryOf(fp.sf.fileName, spec)) - : builder.addFileImport(fp.sf.fileName, spec); - for (const err of builder.errors.slice(before)) { - lowerer.pushDiag(npmEmbedFailedDiag(err.message, locOf(stmt))); - } - if (entryKey === null) continue; // resolution failed — reported above - const loc = locOf(stmt); - const byStmt = lowerer.npmInitActions.get(fp.sf) ?? new Map(); - lowerer.npmInitActions.set(fp.sf, byStmt); - const actions = byStmt.get(stmt) ?? []; - byStmt.set(stmt, actions); - const importExpr = (exportName: string): IrExpr => ({ - kind: "libCall", - fn: "island.import", - args: [ - { kind: "strLit", value: entryKey, type: STRING, loc }, - { kind: "strLit", value: exportName, type: STRING, loc }, - // The specifier as WRITTEN — Node's missing-export SyntaxError - // names it ("The requested module 'x' does not provide an - // export named 'y'"), and the runtime check reproduces that - // message exactly (scr_jsval_import). - { kind: "strLit", value: spec, type: STRING, loc }, - ], - type: JSVAL, - loc, - }); - const bind = (nameNode: ts.Identifier | ts.StringLiteral, exportName: string): void => { - let symbol = lowerer.checker.getSymbolAtLocation(nameNode); - if (symbol && symbol.flags & ts.SymbolFlags.Alias) { - symbol = lowerer.checker.getAliasedSymbol(symbol); - } - if (!symbol) return; - let g = lowerer.globalsBySymbol.get(symbol); - if (!g) { - g = { - id: `%g.npm.${lowerer.globalsList.length}`, - name: nameNode.text, - type: JSVAL, - mutable: false, - }; - lowerer.globalsBySymbol.set(symbol, g); - lowerer.globalsList.push(g); - } - actions.push({ kind: "assign", localId: g.id, value: importExpr(exportName), loc }); - }; - if (reexport !== null) { - for (const el of reexport.elements) { - if (el.isTypeOnly) continue; - bind(el.name, el.propertyName?.text ?? el.name.text); - } - continue; - } - if (!clause) { - // Side-effect import: load for its top-level effects, keep nothing. - actions.push({ kind: "exprStmt", expr: importExpr("*"), loc }); - continue; - } - if (clause.name) bind(clause.name, "default"); - if (clause.namedBindings) { - if (ts.isNamespaceImport(clause.namedBindings)) { - bind(clause.namedBindings.name, "*"); - } else { - for (const el of clause.namedBindings.elements) { - if (el.isTypeOnly) continue; - bind(el.name, el.propertyName?.text ?? el.name.text); - } - } - } } } - for (const fp of parts) collectDynamicImports(lowerer, builder, fp.sf); - if (builder) { - for (const fp of parts) collectCreateRequires(lowerer, builder, fp.sf); - const graph = builder.finish(); - if (graph.modules.length > 0) { - lowerer.npmEmbedded = { modules: graph.modules, edges: graph.edges }; - } - if (graph.builtins.length > 0) lowerer.npmBuiltins = graph.builtins; - if (graph.lazyTraps.length > 0) lowerer.npmLazyTraps = graph.lazyTraps; - } + for (const fp of parts) collectDynamicImports(lowerer, fp.sf); } /** Literal dynamic-import collection: every @@ -735,11 +602,7 @@ export function collectNpmImports(lowerer: Lowerer, parts: FileParts[]): void { * specifiers are skipped — the lowering owns that fence (the module * graph is a build-time artifact; there is nothing to embed for a * runtime-computed name). */ -function collectDynamicImports( - lowerer: Lowerer, - builder: NpmGraphBuilder | null, - sf: ts.SourceFile, -): void { +function collectDynamicImports(lowerer: Lowerer, sf: ts.SourceFile): void { ts.walkPreorder(sf, (node) => { if ( ts.isCallExpression(node) && @@ -768,80 +631,19 @@ function collectDynamicImports( const builtin = canonicalBuiltinModule(spec); const res = ownModule ? ({ kind: "program-module" } as const) - : !lowerer.dynamic && builtin !== null + : builtin !== null ? ({ kind: "static-builtin", module: builtin } as const) - : builder?.addDynamicImport(sf.fileName, spec); + : undefined; if (res === undefined) { return undefined; } lowerer.dynImports.set(mapKey, res); - if (res.kind === "unsupported-builtin") { - lowerer.pushDiag( - npmEmbedFailedDiag( - `'${spec}' is a Node builtin the island does not provide a shim for`, - locOf(node), - ), - ); - } else if (res.kind === "unresolved") { - lowerer.pushDiag(npmEmbedFailedDiag(res.message, locOf(node))); - } } } return undefined; }); } -/** The createRequire half of the npm chokepoint (--dynamic only): every - * `require("bare-literal")` through a createRequire binding — whatever - * body it sits in — resolves under Node's "require" condition and - * embeds AT COLLECTION time, so the per-site lowering later just looks - * its entry up (lowerCreateRequireCall). Builtins, relative documents, - * "#" specifiers, --npm-static opt-ins, and Node-refused bare names - * are the lowering's own arms — only resolvable installed packages - * register here; resolution failures are diagnostics at the call - * expression, exactly like static npm imports at their statements. */ -function collectCreateRequires( - lowerer: Lowerer, - builder: NpmGraphBuilder, - sf: ts.SourceFile, -): void { - const visit = (node: ts.Node): void => { - if (ts.isCallExpression(node)) { - const cr = createRequireSpecOf(lowerer, node); - const spec = cr?.spec ?? null; - if ( - cr !== null && - spec !== null && - canonicalBuiltinModule(spec) === null && - !isRelativeSpecifier(spec) && - !isAbsolute(spec) && - !spec.startsWith("#") && - probeNodeRequireRefusal(cr.baseFile.fileName, spec) === null - ) { - const pkgName = spec.startsWith("@") - ? spec.split("/").slice(0, 2).join("/") - : spec.split("/")[0]!; - const mapKey = `${cr.baseFile.fileName}\u0000${spec}`; - if (!lowerer.createRequireImports.has(mapKey) && !isNpmStaticPackage(pkgName)) { - const before = builder.errors.length; - const entryKey = builder.addRequire(cr.baseFile.fileName, spec); - for (const err of builder.errors.slice(before)) { - lowerer.pushDiag(npmEmbedFailedDiag(err.message, locOf(node))); - } - lowerer.createRequireImports.set( - mapKey, - entryKey === null - ? "" - : { entryKey, format: builder.moduleFormatOf(entryKey) ?? "cjs" }, - ); - } - } - } - ts.forEachChild(node, visit); - }; - visit(sf); -} - /** JSON module default imports (`import pkg from "../package.json"`): * the document is DATA known at build time, so the binding bakes into a * record global — the checker's structural type for the module (thanks @@ -2030,7 +1832,7 @@ export function collectGlobals( (!decl.type && !hasJsTypeAnnotation(decl) && checkedGlobalReference(lowerer, initializer)) || - (!lowerer.dynamic && stdlibGlobalNameOf(lowerer, initializer) === "globalThis")) + stdlibGlobalNameOf(lowerer, initializer) === "globalThis") ) { const symbol = lowerer.checker.getSymbolAtLocation(nameNode); if (symbol && !lowerer.globalsBySymbol.has(symbol)) { @@ -2210,37 +2012,6 @@ export function collectGlobals( } continue; } - // A JS file-scope object literal carrying GET accessors whose - // strict type has no mapping (the doc-printer root-indent - // shape — a self-referential getter): the literal builds - // ISLAND-NATIVE (the getter defines through the engine), so - // the binding holds the HANDLE — a jsval global, so exports - // and separately-declared functions reach the same engine - // object. - if ( - lowerer.dynamic && - isJsSourceFile(sf) && - !lowerer.mapTypeOf(lowerer.typeOf(nameNode)) && - ts.isIdentifier(decl.name) && - nameNode === decl.name && - decl.initializer !== undefined && - ts.isObjectLiteralExpression(decl.initializer) && - decl.initializer.properties.some((p) => ts.isGetAccessorDeclaration(p)) - ) { - const symbol = lowerer.checker.getSymbolAtLocation(nameNode); - if (symbol && !lowerer.globalsBySymbol.has(symbol)) { - const g: IrGlobal = { - id: `%g.${tag}${nsPrefix}${nameNode.text}`, - name: nameNode.text, - type: JSVAL, - mutable: isLet, - source: bindingSource(nameNode), - }; - lowerer.globalsBySymbol.set(symbol, g); - lowerer.globalsList.push(g); - } - continue; - } // A function initializer can have a native calling convention // even when its inferred return/parameter pieces need DYN. Keep // that closure in a checked-value global so class methods and @@ -2309,24 +2080,13 @@ export function collectGlobals( ts.isNewExpression(decl.initializer) ? (objectFactoryGlobalType(lowerer, decl.initializer) ?? undefined) : undefined; - // `var p1 = import("./m")` at file scope: the global holds the - // island promise/handle — the import expression's only - // production — whatever the checker's namespace type mapped to - // (lowerVarDecl's rule at module scope; the init body assigns - // it). + // Prefer the initializer's native namespace or proxy storage + // where it is more precise than the declaration's checker type. const handleT = ts.isIdentifier(decl.name) && nameNode === decl.name ? ((isNativeProxyInitializer(lowerer, decl.initializer) ? DYN : null) ?? - (lowerer.dynamic - ? importCallHandleType(decl.initializer) - : staticImportNamespaceType(lowerer, decl.initializer)) ?? - (lowerer.dynamic - ? // An unchecked-overload call result stores the handle, - // exactly the local rule (uncheckedOverloadHandleCall). - uncheckedOverloadHandleCall(lowerer, decl.initializer) - ? JSVAL - : null - : null)) + staticImportNamespaceType(lowerer, decl.initializer) ?? + null) : null; // JavaScript factory results with unmappable annotations still // need shared storage. Unannotated callable unions also use a @@ -2476,7 +2236,6 @@ export function collectGlobals( ) type = DYN; if ( - !lowerer.dynamic && isJsSourceFile(sf) && !decl.type && !hasJsTypeAnnotation(decl) && @@ -2514,28 +2273,6 @@ export function collectGlobals( ) { type = DYN; } - // An evolving-`any` array's DERIVED file-scope binding under - // --dynamic (`const kept = fns.filter(...)` where `fns` - // registered array at its `any[]` declaration): the - // receiver-type-preserving methods answer the receiver's - // handle-element array, while tsc's evolving-array analysis - // spells the pushed element type here — the value's element - // type is the truth, so the global slot takes the handle- - // element array (lowerVarDecl's adoption, the file-scope - // face). Annotated declarations keep the validated-boundary - // fence. - if ( - lowerer.dynamic && - ts.isIdentifier(decl.name) && - nameNode === decl.name && - decl.type === undefined && - decl.initializer !== undefined && - type.kind === "array" && - type.elem.kind !== "jsval" && - handleArrayPreservingCall(lowerer, decl.initializer) - ) { - type = arrayOf(JSVAL); - } // An exact class behind a generic interface keeps its native // representation so generic calls can specialize against its body. if ( @@ -2547,26 +2284,7 @@ export function collectGlobals( const initT = lowerer.mapTypeOf(lowerer.typeOf(decl.initializer!)); if (initT?.kind === "object") type = initT; } - // A file-scope PATTERN over an ISLAND-bound source (`export - // let { toString } = 1;` — the engine reads the wrapper's - // prototype member): the bound value follows the island - // property-read rule, so the global slot must too — declared - // primitives exit eagerly to their static type, everything - // else stores the HANDLE (a func-typed slot could never take - // the engine value the desugar assigns). - if (lowerer.dynamic && !ts.isIdentifier(decl.name) && decl.initializer !== undefined) { - const srcT = lowerer.mapTypeOf(lowerer.typeOf(decl.initializer)); - const island = - srcT !== null && - (srcT.kind === "jsval" || - srcT.kind === "f64" || - srcT.kind === "bool" || - srcT.kind === "string" || - isUnitType(srcT)); - if (island && type.kind !== "f64" && type.kind !== "bool" && type.kind !== "string") { - type = JSVAL; - } - } + // File-scope unit-only bindings (`var x: undefined`, `const // y: void = undefined`) ride the unit-only union, exactly // like function-scope locals (lowerVarDecl's rule). @@ -2668,34 +2386,6 @@ export function collectGlobals( } } -/** True iff this initializer's VALUE is a jsval-element array from a - * module global already registered as one (the evolving-`any` binding - * under --dynamic): the global itself, or a receiver-TYPE-PRESERVING - * array-method call chain over it (filter/slice/splice/concat — each - * answers the receiver's own array type). Registration runs in source - * order, so the root's global — declared above, TDZ-guaranteed — is - * already in the table. */ -function handleArrayPreservingCall(lowerer: Lowerer, e: ts.Expression): boolean { - const PRESERVING = new Set(["filter", "slice", "splice", "concat"]); - let cur = e; - for (;;) { - while (ts.isParenthesizedExpression(cur)) cur = cur.expression; - if ( - ts.isCallExpression(cur) && - ts.isPropertyAccessExpression(cur.expression) && - PRESERVING.has(cur.expression.name.text) - ) { - cur = cur.expression.expression; - continue; - } - break; - } - if (!ts.isIdentifier(cur)) return false; - const sym = lowerer.checker.getSymbolAtLocation(cur); - const g = sym ? lowerer.globalsBySymbol.get(sym) : undefined; - return g?.type.kind === "array" && g.type.elem.kind === "jsval"; -} - /** Registers the entry-init note for a `var` module global: JS hoists * module vars to `undefined` at module entry, so an undefined-armed slot * must hold the interned undefined arm BEFORE the body runs (a function @@ -2708,11 +2398,10 @@ function handleArrayPreservingCall(lowerer: Lowerer, e: ts.Expression): boolean function noteVarGlobalEntryInit(lowerer: Lowerer, sf: ts.SourceFile, g: IrGlobal): void { // 'any' globals need the entry init exactly like undefined-armed // unions: tsc never guards `any` reads, so `var x: any;` is readable - // before any assignment and its slot must hold its world's undefined - // — the ENGINE's for jsval (--dynamic), the checked-dynamic tree's for dyn (static) — + // before any assignment and its slot must hold native undefined // rather than a C-level NULL (an op or validated exit on NULL is // memory-unsafe, not a TypeError). - if (g.type.kind !== "union" && g.type.kind !== "jsval" && g.type.kind !== "dyn") return; + if (g.type.kind !== "union" && g.type.kind !== "dyn") return; const inits = lowerer.varGlobalEntryInits.get(sf) ?? []; inits.push(g); lowerer.varGlobalEntryInits.set(sf, inits); @@ -2880,20 +2569,6 @@ export function lowerDefaultExport(lowerer: Lowerer, stmt: ts.ExportAssignment): return { kind: "assign", localId: g.id, value, loc: locOf(stmt) }; } -/** One file's top-level statements as its init function — RUN-ONCE like a - * Node module body: non-entry inits open with a guard flag test (already - * ran → return) and set the flag before anything else, so every caller — - * hoisted import headers, inline require statements, diamonds, cache-hit - * re-requires — gets Node's module-cache semantics from the same call. - * After the guard comes the file's HOISTED module-edge header: one - * guarded %init call per imported user module and the island loads for - * npm imports, in import order (Node evaluates every imported module - * before the importer's body — depth-first postorder falls out of the - * nesting). CommonJS requires are NOT in the header: Node runs them at - * their statements, so the statement lowering emits their %init calls - * inline in the body. JSON-import bindings (pure data) load next; then - * the body. Top-level var statements assign the pre-registered globals - * instead of declaring locals. */ export function lowerFileInit( lowerer: Lowerer, sf: ts.SourceFile, diff --git a/packages/compiler/src/frontend/lowering/lower-server.ts b/packages/compiler/src/frontend/lowering/lower-server.ts index 995a2ad4a..319201133 100644 --- a/packages/compiler/src/frontend/lowering/lower-server.ts +++ b/packages/compiler/src/frontend/lowering/lower-server.ts @@ -7,16 +7,6 @@ import { varRef, } from "../../ir/build.js"; -/* The server-surface lowering (node:net + node:http — the spoke-module - * pattern, like lower-island.ts): module-function calls (net - * createServer/connect/createConnection, http createServer/request/get — - * named AND namespace import forms, both dispatched here), method calls - * on netServer/netSocket/httpReq/httpRes/httpClientReq receivers, the - * composed `server.address().port` read, and the property surface - * (req.url/method/statusCode/socket/headers, res.headersSent, - * socket.remoteAddress, request.destroyed). Everything the lib declares - * beyond these shapes fences member-qualified — never a generic - * rejection, never silence. */ import * as ts from "../ts7/adapter.js"; import type { Lowerer } from "./lowerer.js"; import { ladderFenceExpr } from "./lowerer.js"; @@ -103,17 +93,6 @@ function requireStatementPosition(lowerer: Lowerer, call: ts.CallExpression, wha ); } -/** Node enables net.Server's reusePort socket option only for the exact - * boolean value true. This is intentionally different from the ordinary - * condition lowering used by ipv6Only: JavaScript values such as 1 and - * "true" are truthy, but Node leaves reusePort disabled for them. - * - * Typed boolean-or-undefined option bindings are represented by the normal - * tagged union. Initializers narrow that union to its boolean arm; shorthand - * properties are required to have the concrete BOOL shape below, matching - * ipv6Only's static option-record fence. Other static values still evaluate - * once, then produce false; checked-dynamic and island values use strict - * equality against the boolean true. */ function lowerExactReusePort(lowerer: Lowerer, value: IrExpr, node: ts.Node): IrExpr { const loc = locOf(node); const falseValue = (): IrExpr => boolLit(false, loc); @@ -128,15 +107,7 @@ function lowerExactReusePort(lowerer: Lowerer, value: IrExpr, node: ts.Node): Ir loc, }; } - if (value.type.kind === "jsval") { - return { - kind: "jsOp", - op: "eq", - args: [value, lowerer.jsvalIn(boolLit(true, loc), node)], - type: BOOL, - loc, - }; - } + if (value.type.kind === "union") { const def = lowerer.unions.get(value.type.unionId); const boolTag = def?.arms.findIndex((arm) => arm.kind === "bool") ?? -1; diff --git a/packages/compiler/src/frontend/lowering/lower-island.ts b/packages/compiler/src/frontend/lowering/lower-stdlib.ts similarity index 62% rename from packages/compiler/src/frontend/lowering/lower-island.ts rename to packages/compiler/src/frontend/lowering/lower-stdlib.ts index 88c2d34df..d1db5da71 100644 --- a/packages/compiler/src/frontend/lowering/lower-island.ts +++ b/packages/compiler/src/frontend/lowering/lower-stdlib.ts @@ -1,9 +1,6 @@ import { dynUndefinedExpr, nodeThrowExpr } from "../../ir/build.js"; import { InternalCompilerError } from "../../errors.js"; -/* Island-boundary lowering: jsval marshaling into the island (jsvalIn and - * its boundary fences), island-expression detection, the island method-call - * surface (Math and number/string methods under --dynamic), and the npm - * package boundary fences for node_modules-declared symbols. */ + import * as ts from "../ts7/adapter.js"; import { lowerToNumberArgument } from "./lower-exprs.js"; import type { Lowerer } from "./lowerer.js"; @@ -16,36 +13,24 @@ import { type IrExpr, type IrStmt, type IrType, - JSVAL, - MAX_ISLAND_CALLBACK_ARITY, STRING, VOID, canConvertToDyn, - canMarshalTypedFuncIntoIsland, - islandPromisePayloadTag, isUnitType, } from "../../ir/ir.js"; import { - ISLAND_SURFACE, - type IslandFnEntry, + STDLIB_SURFACE, + type StdlibFnEntry, STATIC_MATH_FNS, STATIC_MATH_PROPS, - boundaryIntoIslandMsg, stdlibGlobalNameOf, } from "./surfaces.js"; import { - requiresDynamicApiDiag, - requiresDynamicPackageDiag, + unsupportedNativeApiDiag, + unsupportedPackageValueDiag, } from "../../diagnostics/diagnostic.js"; -import { - esmNamedImportLinkCrash, - isCjsJsFile, - isJsSourceFile, - locOf, - npmPackageNameOf, -} from "../program.js"; +import { esmNamedImportLinkCrash, isCjsJsFile, locOf, npmPackageNameOf } from "../program.js"; import { foldedStringKeyOf, lowerDynObjectLiteral } from "./expressions/object-literals.js"; -import { isSafeToRepeat } from "./expressions/evaluation-safety.js"; import { PoisonError, newFnCtx, own } from "./lowerer.js"; import { NODE24_FETCH_COMPAT_PROFILE, @@ -56,222 +41,18 @@ import { STATIC_RESPONSE_READS, } from "../../compat/fetch-profile.js"; -/** True iff the checker's type for this node maps to jsval ('any') — - * the island test in front of every engine-op lowering (receivers, - * callees, assignment targets). ALSO true for an identifier bound to an - * island-HANDLE local whose declared type says otherwise (`const { - * readFileSync } = await import("fs")` — the binding's declared - * function/Buffer type never held the value; the handle is the value's - * only story), so its uses dispatch to engine ops instead of - * re-reporting the declared type. The one exclusion is promise-mapped - * declared types: a package promise held as a handle keeps its existing - * checker-driven dispatch (the await/.catch bridge lowerings own it). */ -export function isIslandExpr(lowerer: Lowerer, node: ts.Expression): boolean { - // Static builds cannot contain island handles. Avoid mapping entire - // receiver/callee types (and their checker RPCs) just to prove that. - if (!lowerer.dynamic) return false; - const mapped = lowerer.mapTypeOf(lowerer.typeOf(node)); - if (mapped?.kind === "jsval") return true; - if (mapped?.kind !== "promise" && ts.isIdentifier(node)) { - const local = lowerer.peekLocal(node); - if (local?.type.kind === "jsval") return true; - // File-scope handle bindings (a module global slotted jsval by the - // island-pattern or unchecked-overload rules) take the same rule as - // locals: the handle is the value's only story. - if (!local && lowerer.globalOf(node)?.type.kind === "jsval") return true; - } - return false; -} - -/** Marshal a static value into the island (--dynamic): primitives by - * value, JSON-safe composites as a deep copy (the documented aliasing - * divergence). Values with no island representation — closures, class - * instances, promises, un-validated 'unknown' — are rejected with the - * boundary message. */ -/** The call-time deferral of a FUNC-value island crossing in a JS - * source: captures the just-recorded diagnostic into the runtime-fence - * ledger and answers a marshaled host closure that THROWS it when - * invoked — building the value compiles; only a call through the - * island stops the run. Null (caller rethrows) outside the JS deferral - * gate: TypeScript sources, probe mode, ICEs. */ -export function islandFuncValueFence( - lowerer: Lowerer, - diagsBefore: number, - node: ts.Node, -): IrExpr | null { - if (!isJsSourceFile(node.getSourceFile())) return null; - const fence = lowerer.deferToRuntimeFence(diagsBefore, node, { - kind: "closure", - name: () => `%fn${lowerer.lambdaCounter++}_islfence`, - returnType: VOID, - type: { kind: "func", params: [], ret: VOID }, - }); - if (!fence) return null; - return { - kind: "jsMarshal", - value: fence, - type: JSVAL, - loc: fence.loc, - }; -} - -export function jsvalIn(lowerer: Lowerer, e: IrExpr, node: ts.Node): IrExpr { - if (e.type.kind === "jsval") return e; - // Bare unit literals (`undefined` / `null` in an 'any' slot): the - // engine's own units — unit-typed expressions are literals (units have - // no other producers), so dropping the operand loses nothing. - if (isUnitType(e.type)) { - return { - kind: "jsOp", - op: e.type.kind === "undefinedT" ? "undefLit" : "nullLit", - args: [], - type: JSVAL, - loc: e.loc, - }; - } - if (e.type.kind === "dyn") { - // A CHECKED-DYNAMIC value entering the island: the dyn tree - // deep-copies into engine values — exactly coerceToExpected's - // jsval-IN rule (data kinds only; a dyn carrying a boxed - // function/handle throws the catchable TypeError at runtime). - return { kind: "jsMarshal", value: e, type: JSVAL, loc: e.loc }; - } - // Closures cross INTO the island as host functions — THE package - // callback pattern (`.action((a, b) => ...)`). Unannotated params stay - // 'any' (contextual typing against package signatures) and pass through - // as handles; TYPED params convert at call time through the validated- - // exit machinery (strict primitives, JSON round-trip composites, - // `T | undefined` taking the undefined arm for an absent argument), so - // a conversion failure throws back into the island as a TypeError. - // Anything outside both shapes gets the specific fix, not the generic - // boundary recitation. - if ( - e.type.kind === "func" && - !canMarshalTypedFuncIntoIsland( - e.type, - (id) => lowerer.shapes.get(id), - (id) => lowerer.unions.get(id), - ) - ) { - const diagsBefore = lowerer.diags.length; - try { - lowerer.unsupported( - "SC1090", - node, - `functions with this signature crossing into dynamically-executed code ` + - `(a callback passed to a package/'any' API may take 'any' parameters — ` + - `leave them unannotated so contextual typing keeps them 'any' — or parameters ` + - `convertible at the boundary (number, string, boolean, JSON-safe ` + - `records/arrays/unions, 'T | undefined'), and return 'any', void, number, ` + - `string, boolean, a JSON-safe composite, or a Promise of the primitive kinds${ - e.type.kind === "func" && e.type.params.length > MAX_ISLAND_CALLBACK_ARITY - ? `; at most ${MAX_ISLAND_CALLBACK_ARITY} parameters` - : "" - })`, - ); - } catch (err) { - // JS sources defer the crossing like a statement fence, one level - // deeper: the slot receives a host closure that THROWS the - // diagnostic when INVOKED (the withPlugins aggregation shape — - // wrappers built at module init around functions the smoke path - // never calls). TypeScript and probe mode keep the poison. - if (!(err instanceof PoisonError)) throw err; - const fence = islandFuncValueFence(lowerer, diagsBefore, node); - if (fence) return fence; - throw err; - } - } - // A STATIC promise crossing INTO the island: a real engine thenable - // settled when the scriptc promise settles (the async-callback return - // bridge, scr_jsval_from_promise) — the loadBuiltinPlugins cache - // shape and the island Promise.all arm's static entries. Only - // fulfillments in the bridge's payload domain cross; the rest keep - // the boundary fence below with the promise type named. - if (e.type.kind === "promise" && islandPromisePayloadTag(e.type.inner) !== null) { - return { kind: "jsMarshal", value: e, type: JSVAL, loc: e.loc }; - } - if (e.type.kind !== "func" && !lowerer.boundarySafe(e.type)) { - // A RegExp crossing INTO the island (`z.string().regex(/^a+$/)` — - // the validation-pattern argument): the engine compiles its own - // from source+flags. A fresh engine RegExp per marshal — identity - // and lastIndex state do not cross (SEMANTICS.md). Only literal - // and pure-read spellings lower (the rebuild reads the operand - // twice); computed regex values keep the boundary fence. - if (e.type.kind === "regex") { - const re = islandRegexpOf(e); - if (re) return re; - } - // jsval-BEARING composites (an `any[]` value, a record holding one) - // have no JSON marshal but an honest per-field/per-element island - // construction — the same lift the implicit coercion path uses. - if (lowerer.jsvalLiftable(e.type)) return lowerer.jsvalLiftExpr(e, e.loc); - lowerer.unsupported("SC1090", node, boundaryIntoIslandMsg(lowerer.fmt(e.type))); - } - return { kind: "jsMarshal", value: e, type: JSVAL, loc: e.loc }; -} - -/** A static RegExp value as a fresh ENGINE RegExp — `new RegExp(source, - * flags)` in the island, the pattern TEXT crossing (both worlds compile - * the ES-spec grammar). Literals rebuild from their own pattern/flags; - * pure reads (a regex-typed binding) read the source/flags intrinsics — - * the rebuild emits the operand twice, so effectful producers return - * null into the caller's boundary fence. */ -export function islandRegexpOf(e: IrExpr): IrExpr | null { - if (e.type.kind !== "regex") return null; - const loc = e.loc; - let src: IrExpr; - let flags: IrExpr; - if (e.kind === "regexLit") { - src = { kind: "strLit", value: e.pattern, type: STRING, loc }; - flags = { kind: "strLit", value: e.flags, type: STRING, loc }; - } else if (isSafeToRepeat(e)) { - src = { kind: "regexIntrinsic", method: "source", receiver: e, args: [], type: STRING, loc }; - flags = { kind: "regexIntrinsic", method: "flags", receiver: e, args: [], type: STRING, loc }; - } else { - return null; - } - const ctor: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "RegExp", - args: [], - type: JSVAL, - loc, - }; - return { - kind: "jsOp", - op: "construct", - args: [ - ctor, - { kind: "jsMarshal", value: src, type: JSVAL, loc }, - { kind: "jsMarshal", value: flags, type: JSVAL, loc }, - ], - type: JSVAL, - loc, - }; -} - -/** The gate on every ISLAND_SURFACE lowering: under --dynamic the caller - * proceeds to engine ops; without it the use site is a per-site SC2012 - * (poison-recovered, so every site in the program reports — and the - * coverage report groups them under "runs with --dynamic"). */ -export function requireDynamicApi( +export function refuseUnsupportedApi( lowerer: Lowerer, feature: string, node: ts.Node, hint?: string, -): void { - if (lowerer.dynamic) return; - lowerer.pushDiag(requiresDynamicApiDiag(feature, locOf(node), hint)); +): never { + lowerer.pushDiag(unsupportedNativeApiDiag(feature, locOf(node), hint)); throw new PoisonError(); } -/** Resolves an identifier to an island-backed ambient GLOBAL function - * (parseFloat, isFinite). Provenance, not name: the - * symbol's declaration must live in the ambient file, so a user function - * named `parseFloat` never matches. */ -export function islandGlobalFnOf(lowerer: Lowerer, ident: ts.Identifier): IslandFnEntry | null { - const entry = own(ISLAND_SURFACE.globals, ident.text); +export function stdlibGlobalFnOf(lowerer: Lowerer, ident: ts.Identifier): StdlibFnEntry | null { + const entry = own(STDLIB_SURFACE.globals, ident.text); if (!entry) return null; const symbol = lowerer.resolveValueSymbol(ident); if (!symbol || !lowerer.isStdlibSymbol(symbol)) return null; @@ -293,10 +74,9 @@ function requestInitLiteralKey(lowerer: Lowerer, prop: ts.ObjectLiteralElementLi return null; } -/** Fence declared RequestInit members outside the selected compiler tier. - * Computed runtime keys and non-literal objects are validated again by the - * static runtime; source-visible members that neither tier preserves are - * rejected before the dynamic bridge can silently discard them. */ +/** Unwrap assertions and parentheses when checking RequestInit values. + * Computed runtime keys and non-literal objects are also validated by the + * native runtime. */ function requestInitValueExpr(expr: ts.Expression): ts.Expression { let current = expr; while ( @@ -656,7 +436,7 @@ function fenceRequestInitObject( ); const shadowed = new Set(); const fence = (row: (typeof rows)[number], value: ts.Expression | null, blame: ts.Node): void => { - if (lowerer.dynamic ? row.status !== "unsupported" : row.status === "static") return; + if (row.status === "static") return; if (value !== null) { const type = lowerer.typeOf(requestInitValueExpr(value)); if ( @@ -670,7 +450,7 @@ function fenceRequestInitObject( .map((arm) => lowerer.checker.getPropertyOfType(arm, row.member)) .find((member) => member !== undefined); lowerer.noLowering( - `RequestInit option '${row.member}'${lowerer.dynamic ? "" : " in a static build"}`, + `RequestInit option '${row.member}'${" in a static build"}`, blame, row.reason ?? "the native static RequestInit surface is method, headers, body, duplex, redirect, and signal", @@ -781,28 +561,6 @@ function fenceRequestInitValue(lowerer: Lowerer, value: ts.Expression): void { fenceRequestInitValueInner(lowerer, value, new Set()); } -/** USER-code `fetch(url)` / `fetch(url, init)` — the ambient global - * (provenance, not the name: a user's own `fetch` never matches). - * - * The static tier owns URL requests directly: scr_fetch_static runs - * over the native net/http/tls stack, consumes a checked-dynamic - * RequestInit object, and returns a promise of an opaque native - * Response handle. AbortSignal and readable Web Streams are native - * checked-dynamic handles too, so cancellation and streaming bodies - * stay engine-free. - * - * The engine's own fetch executes (the same one embedded npm code calls — - * scr_fetch.c over the native net/tls stack): the url marshals in (strings; template - * results), an init OBJECT LITERAL builds natively in the island through - * the existing 'any'-contextual literal path (RequestInit maps to jsval, - * so field values marshal individually and an AbortSignal handle passes - * straight through), and the engine's promise bridges to a static - * `promise of jsval` (jsBridgePromise) — `await fetch(...)` parks the - * fiber like any await and resumes with the Response HANDLE. Member - * reads/calls on the handle are engine ops; typed extraction happens at - * the user's narrowing sites through the validated-exit machinery. - * Null for anything that isn't THE ambient fetch, so lowerCall keeps - * trying. */ export function lowerFetchCall(lowerer: Lowerer, call: ts.CallExpression): IrExpr | null { const callee = call.expression; if (!ts.isIdentifier(callee) || callee.text !== "fetch") return null; @@ -813,7 +571,7 @@ export function lowerFetchCall(lowerer: Lowerer, call: ts.CallExpression): IrExp const loc = locOf(call); const initNode = call.arguments[1]; if (initNode !== undefined) fenceRequestInitValue(lowerer, initNode); - if (!lowerer.dynamic) { + { const inputNode = call.arguments[0]!; const input = lowerer.lowerExpr(inputNode); let init: IrExpr; @@ -882,28 +640,6 @@ export function lowerFetchCall(lowerer: Lowerer, call: ts.CallExpression): IrExp }; return { kind: "seqExpr", stmts, result: answer, type: answer.type, loc }; } - const fetchFn: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "fetch", - args: [], - type: JSVAL, - loc, - }; - // Init OBJECT LITERALS build natively in the island (the general - // 'any'-contextual literal path can't claim them: the optional param's - // contextual type is `RequestInit | undefined`, a union) — field - // values marshal individually, so an AbortSignal HANDLE passes - // through and dashed header keys ("content-type") are plain engine - // property names. Non-literal inits marshal as a whole (JSON-safe - // records; a signal field inside one fences with the boundary rule). - const args = call.arguments.map((a) => - ts.isObjectLiteralExpression(a) - ? lowerIslandObjectLiteral(lowerer, a) - : lowerer.jsvalIn(lowerer.lowerExpr(a), a), - ); - const raw: IrExpr = { kind: "jsOp", op: "callFn", args: [fetchFn, ...args], type: JSVAL, loc }; - return { kind: "jsBridgePromise", value: raw, type: { kind: "promise", inner: JSVAL }, loc }; } /** Static Response.json(): consume the native Response's readable body @@ -911,7 +647,6 @@ export function lowerFetchCall(lowerer: Lowerer, call: ts.CallExpression): IrExp * JSON tree. Syntax and stream failures reject at await like the web API. */ export function lowerStaticResponseCall(lowerer: Lowerer, call: ts.CallExpression): IrExpr | null { if ( - lowerer.dynamic || call.questionDotToken || (!ts.isPropertyAccessExpression(call.expression) && !ts.isElementAccessExpression(call.expression)) @@ -1083,7 +818,7 @@ function fetchInventoryStatus( owner: string, member: string, placement: "static" | "prototype" | "prototype-symbol", -): "static" | "dynamic-only" | "unsupported" | "out-of-scope" | null { +): "static" | "unsupported" | "out-of-scope" | null { return ( NODE24_FETCH_COMPAT_PROFILE.inventory.entries.find( (entry) => entry.owner === owner && entry.member === member && entry.placement === placement, @@ -1102,7 +837,7 @@ function fetchInventoryReason( } /** Constructor-object operations are distinct from Response instance - * methods. The inventory marks the former unsupported in both tiers; fence + * methods. The inventory marks the former unsupported; fence * them explicitly so the generic call fallback cannot report SC1090 for * Response.json while the other statics report SC2020. */ export function fenceUnsupportedFetchConstructorMember( @@ -1119,7 +854,7 @@ export function fenceUnsupportedFetchConstructorMember( lowerer.noLowering( `Response.${member}`, access, - "Response static constructor-object operations have no compiler lowering in either tier", + "Response static constructor-object operations have no compiler lowering", ); } @@ -1198,28 +933,24 @@ export function fenceStaticResponseMember( member, member.startsWith("[Symbol.") ? "prototype-symbol" : "prototype", ); - if (lowerer.dynamic && members.every((member) => status(member) !== "unsupported")) { - return null; - } + const supported = (member: string) => use === "call" ? STATIC_RESPONSE_CALLS.has(member) : STATIC_RESPONSE_READS.has(member); - if (!lowerer.dynamic && members.every(supported)) return null; - const member = members.find((candidate) => - lowerer.dynamic ? status(candidate) === "unsupported" : !supported(candidate), - )!; + if (members.every(supported)) return null; + const member = members.find((candidate) => !supported(candidate))!; if (status(member) === "unsupported") { lowerer.noLowering( `Response.${member}`, access, fetchInventoryReason("Response", member, "prototype") ?? - "this Response operation has no compiler lowering in either tier", + "this Response operation has no compiler lowering", sym, ); } lowerer.noLowering( `Response.${member} in a static build`, access, - "the native static Response surface is status/ok/statusText/url/redirected/headers/body/bodyUsed plus json(), text(), bytes(), and arrayBuffer(); use --dynamic for the wider Web API", + "the native static Response surface is status/ok/statusText/url/redirected/headers/body/bodyUsed plus json(), text(), bytes(), and arrayBuffer(); other forms are unsupported", sym, ); } @@ -1244,33 +975,25 @@ export function fenceStaticHeadersMember( member, member.startsWith("[Symbol.") ? "prototype-symbol" : "prototype", ); - if (lowerer.dynamic && members.every((member) => status(member) !== "unsupported")) { + + if (use === "call" && members.every((member) => STATIC_HEADERS_CALLS.has(member))) { return null; } - if ( - !lowerer.dynamic && - use === "call" && - members.every((member) => STATIC_HEADERS_CALLS.has(member)) - ) { - return null; - } - const member = members.find((candidate) => - lowerer.dynamic - ? status(candidate) === "unsupported" - : use !== "call" || !STATIC_HEADERS_CALLS.has(candidate), + const member = members.find( + (candidate) => use !== "call" || !STATIC_HEADERS_CALLS.has(candidate), )!; if (status(member) === "unsupported") { lowerer.noLowering( `Headers.${member}`, access, - "symbol-keyed Headers iteration has no compiler lowering in either tier; call entries() with --dynamic instead", + "symbol-keyed Headers iteration is unsupported; use forEach()", sym, ); } lowerer.noLowering( `Headers.${member} in a static build`, access, - "the native static Headers surface is append/delete/get/getSetCookie/has/set/forEach; use keys()/values()/entries() or symbol-keyed iteration with --dynamic, while construction remains unsupported", + "the native static Headers surface is append/delete/get/getSetCookie/has/set/forEach; keys()/values()/entries(), symbol-keyed iteration, and construction remain unsupported", sym, ); } @@ -1278,13 +1001,11 @@ export function fenceStaticHeadersMember( /** The native AbortController handle dispatches `abort()` directly and * exposes `.signal` as data, but it has no first-class function value for * the prototype method. Fence method extraction before the checked-dynamic - * keyed-read fallback can silently answer `undefined`. Dynamic builds use - * the engine's real AbortController object and retain ordinary method reads. */ + * keyed-read fallback can silently answer `undefined`. */ export function fenceStaticAbortControllerMemberRead( lowerer: Lowerer, access: StaticResponseAccess, ): IrExpr | null { - if (lowerer.dynamic) return null; const symbol = isStdlibFetchInterface(lowerer, access.expression, "AbortController"); if (!symbol) return null; const members = fetchAccessMemberNames(lowerer, access); @@ -1314,7 +1035,7 @@ export function staticReadableStreamElementType( lowerer: Lowerer, node: ts.Expression, ): IrType | null { - if (lowerer.dynamic || !isStdlibFetchInterface(lowerer, node, "ReadableStream")) { + if (!isStdlibFetchInterface(lowerer, node, "ReadableStream")) { return null; } const type = lowerer.checker.getBaseTypeOfLiteralType(lowerer.typeOf(node)); @@ -1385,18 +1106,18 @@ function fenceFetchObjectMembers( entry.placement === "prototype-symbol"), ); if (!row || row.status === "out-of-scope") continue; - if (lowerer.dynamic && row.status !== "unsupported") continue; + // Static data properties retain the ordinary checked-dynamic keyed-read // lowering. Only a method extraction loses the receiver that its direct // call bridge would preserve; non-static rows keep their inventory fence. const operation = NODE24_FETCH_COMPAT_PROFILE.operations.find( (candidate) => candidate.id === row.id, ); - if (!lowerer.dynamic && row.status === "static" && operation?.kind === "property") { + if (row.status === "static" && operation?.kind === "property") { continue; } lowerer.noLowering( - `${owner}.${member}${lowerer.dynamic ? "" : " through object destructuring in a static build"}`, + `${owner}.${member}${" through object destructuring in a static build"}`, node, row.reason ?? "the direct lowered read/call form has a compiler bridge, but extracting this member as a value does not", @@ -1405,11 +1126,6 @@ function fenceFetchObjectMembers( } } -/** Object binding syntax reads members without constructing property-access - * nodes, so the ordinary Response/Headers/ReadableStream chokepoints never - * see it. Attribute those reads to the same inventory rows before generic - * dyn/jsval destructuring either reports SC1031 or admits an unsupported - * member in the dynamic tier. */ export function fenceFetchObjectBinding(lowerer: Lowerer, pattern: ts.ObjectBindingPattern): void { fenceFetchObjectMembers( lowerer, @@ -1442,11 +1158,8 @@ export function fenceFetchObjectAssignment( /** Iteration syntax invokes Headers[Symbol.iterator] without constructing * an element-access node, so the member chokepoint above never sees it. - * Keep engine-free builds on the same SC2020 profile row for for-of, - * array spread, and array destructuring. The dynamic tier uses the - * engine's iterator protocol and is intentionally allowed. */ + * Use the same SC2020 profile row for for-of, array spread, and array destructuring. */ export function fenceStaticHeadersIteration(lowerer: Lowerer, node: ts.Node): void { - if (lowerer.dynamic) return; // The initializer is the value being iterated. Asking for the binding // pattern's synthesized tuple type can panic in TypeScript serialization. const source = @@ -1461,111 +1174,11 @@ export function fenceStaticHeadersIteration(lowerer: Lowerer, node: ts.Node): vo lowerer.noLowering( "Headers.[Symbol.iterator] in a static build", node, - "Headers iteration requires --dynamic; append/delete/get/getSetCookie/has/set/forEach remain engine-free", + "Headers iteration is unsupported; use append/delete/get/getSetCookie/has/set/forEach", sym, ); } -/** Dynamic element-spelled Headers iteration. Symbol.iterator uses the - * engine's GetIterator operation. A finite union of keys()/values()/entries() - * dispatches through fixed-name engine calls after evaluating the receiver - * and key once, preserving the method receiver and JavaScript evaluation - * order without trying to represent the union of method values. */ -export function lowerDynamicHeadersIteratorCall( - lowerer: Lowerer, - call: ts.CallExpression, - access: ts.ElementAccessExpression, -): IrExpr | null { - if ( - !lowerer.dynamic || - call.questionDotToken || - access.questionDotToken || - call.arguments.length !== 0 || - !isStdlibFetchInterface(lowerer, access.expression, "Headers") - ) { - return null; - } - const members = fetchElementMemberNames(lowerer, access.argumentExpression); - if (members === null) return null; - const symbolIterator = members.length === 1 && members[0] === "[Symbol.iterator]"; - if ( - !symbolIterator && - !members.every((member) => member === "keys" || member === "values" || member === "entries") - ) { - return null; - } - const receiver = lowerer.lowerExpr(access.expression); - if (receiver.type.kind !== "jsval") return null; - const loc = locOf(call); - if (!symbolIterator) { - const key = lowerer.lowerExpr(access.argumentExpression); - if (key.type.kind !== "string") return null; - const recvLocal = lowerer.declareHiddenLocal("%headers", JSVAL); - const keyLocal = lowerer.declareHiddenLocal("%headersKey", STRING); - const recvRef: IrExpr = { - kind: "varRef", - localId: recvLocal.id, - type: JSVAL, - loc, - }; - const keyRef: IrExpr = { - kind: "varRef", - localId: keyLocal.id, - type: STRING, - loc, - }; - const invoke = (member: string): IrExpr => ({ - kind: "jsOp", - op: "callMethod", - name: member, - args: [recvRef], - type: JSVAL, - loc, - }); - // Same-kind literal unions erase to STRING in IR, so a lying assertion - // can carry a runtime key outside `members`. Validate every arm instead - // of treating the last member as an unconditional default: substituting - // another method is silent corruption. The trust-but-verify fallback is - // the catchable TypeError used by the compiler's other erased casts. - let result: IrExpr = nodeThrowExpr(1, "", `${access.getText()} is not a function`, JSVAL, loc); - for (let i = members.length - 1; i >= 0; i--) { - const member = members[i]!; - result = { - kind: "ternary", - cond: { - kind: "strEq", - negated: false, - left: keyRef, - right: { kind: "strLit", value: member, type: STRING, loc }, - type: BOOL, - loc, - }, - then: invoke(member), - else_: result, - type: JSVAL, - loc, - }; - } - return { - kind: "seqExpr", - stmts: [ - { kind: "varDecl", localId: recvLocal.id, init: receiver, loc }, - { kind: "varDecl", localId: keyLocal.id, init: key, loc }, - ], - result, - type: JSVAL, - loc, - }; - } - return { - kind: "jsOp", - op: "iterNew", - args: [receiver], - type: JSVAL, - loc, - }; -} - /** Bracket-spelled calls on a profiled fetch/Web-stream handle. A call such * as `headers["get"](name)` is still a method reference in JavaScript: the * receiver must remain bound. Lower it before the generic callee-as-value @@ -1605,29 +1218,23 @@ export function lowerFetchElementMethodCall( ); if ( rows.some( - (row) => - row === undefined || - row.status === "out-of-scope" || - (lowerer.dynamic ? row.status === "unsupported" : row.status !== "static"), + (row) => row === undefined || row.status === "out-of-scope" || row.status !== "static", ) ) { return null; } const receiver = lowerer.lowerExpr(access.expression); - if (receiver.type.kind !== (lowerer.dynamic ? "jsval" : "dyn")) return null; + if (receiver.type.kind !== "dyn") return null; const key = lowerer.lowerExpr(access.argumentExpression); if (key.type.kind !== "string") return null; const loc = locOf(call); - const receiverLocal = lowerer.declareHiddenLocal("%fetchReceiver", lowerer.dynamic ? JSVAL : DYN); + const receiverLocal = lowerer.declareHiddenLocal("%fetchReceiver", DYN); const keyLocal = lowerer.declareHiddenLocal("%fetchMember", STRING); - const calleeLocal = lowerer.dynamic ? lowerer.declareHiddenLocal("%fetchMethod", JSVAL) : null; const argumentValues = call.arguments.map((argument, index) => - lowerer.dynamic - ? lowerer.jsvalIn(lowerer.lowerExpr(argument), argument) - : fetchMethodArgumentIsLive(resolved.owner, members, index) - ? lowerLiveWebValue(lowerer, argument) - : lowerer.lowerExprExpecting(argument, DYN), + fetchMethodArgumentIsLive(resolved.owner, members, index) + ? lowerLiveWebValue(lowerer, argument) + : lowerer.lowerExprExpecting(argument, DYN), ); const argumentLocals = argumentValues.map((argument) => lowerer.declareHiddenLocal("%fetchMethodArg", argument.type), @@ -1644,40 +1251,17 @@ export function lowerFetchElementMethodCall( type: STRING, loc, }; - const calleeRef: IrExpr | null = - calleeLocal === null - ? null - : { - kind: "varRef", - localId: calleeLocal.id, - type: JSVAL, - loc, - }; - const memberReadStmt: IrStmt = - calleeLocal === null - ? { - kind: "exprStmt", - expr: { - kind: "dynKeyGet", - value: receiverRef, - key: keyRef, - type: DYN, - loc, - }, - loc, - } - : { - kind: "varDecl", - localId: calleeLocal.id, - init: { - kind: "jsOp", - op: "getIdx", - args: [receiverRef, { kind: "jsMarshal", value: keyRef, type: JSVAL, loc }], - type: JSVAL, - loc, - }, - loc, - }; + const memberReadStmt: IrStmt = { + kind: "exprStmt", + expr: { + kind: "dynKeyGet", + value: receiverRef, + key: keyRef, + type: DYN, + loc, + }, + loc, + }; const argumentRefs = argumentLocals.map((argument) => ({ kind: "varRef", localId: argument.id, @@ -1685,7 +1269,6 @@ export function lowerFetchElementMethodCall( loc, })); const staticResponsePromise: IrType | null = - !lowerer.dynamic && resolved.owner === "Response" && call.arguments.length === 0 && members.every((member) => member === "text" || member === "bytes") @@ -1702,35 +1285,27 @@ export function lowerFetchElementMethodCall( })() : null; const invoke = (member: string): IrExpr => - lowerer.dynamic + staticResponsePromise !== null ? { - kind: "jsOp", - op: "callFnThis", - args: [calleeRef!, receiverRef, ...argumentRefs], - type: JSVAL, + kind: "libCall", + fn: member === "text" ? "fetch.responseText" : "fetch.responseBytes", + args: [receiverRef], + type: staticResponsePromise, loc, } - : staticResponsePromise !== null - ? { - kind: "libCall", - fn: member === "text" ? "fetch.responseText" : "fetch.responseBytes", - args: [receiverRef], - type: staticResponsePromise, - loc, - } - : { - kind: "dynInvoke", - recv: receiverRef, - method: member, - calleeName: access.getText(), - args: argumentRefs, - type: DYN, - loc, - }; + : { + kind: "dynInvoke", + recv: receiverRef, + method: member, + calleeName: access.getText(), + args: argumentRefs, + type: DYN, + loc, + }; // Literal-string unions share the STRING carrier. A cast can therefore // smuggle a different runtime key into this call; validate all arms and // fail loudly rather than dispatching every mismatch to the last member. - const invocationType = staticResponsePromise ?? (lowerer.dynamic ? JSVAL : DYN); + const invocationType = staticResponsePromise ?? DYN; let result: IrExpr = nodeThrowExpr( 1, "", @@ -1756,13 +1331,6 @@ export function lowerFetchElementMethodCall( loc, }; } - const declared = lowerer.dynamic ? lowerer.mapTypeOf(lowerer.typeOf(call)) : null; - if ( - declared && - (declared.kind === "f64" || declared.kind === "bool" || declared.kind === "string") - ) { - result = { kind: "jsExit", value: result, type: declared, loc }; - } return { kind: "seqExpr", stmts: [ @@ -1782,40 +1350,6 @@ export function lowerFetchElementMethodCall( }; } -/** `[...headers]` in the dynamic tier: Array.from runs inside the engine - * over the real Headers iterator, then the resulting pair array exits - * through the checker's declared array type. For Headers this is the - * spread algorithm's exact iterable snapshot. */ -export function lowerDynamicHeadersSpread( - lowerer: Lowerer, - node: ts.Expression, - type: IrType & { kind: "array" }, -): IrExpr | null { - if (!lowerer.dynamic || !isStdlibFetchInterface(lowerer, requestInitValueExpr(node), "Headers")) { - return null; - } - const receiver = lowerer.lowerExpr(node); - if (receiver.type.kind !== "jsval") return null; - const loc = locOf(node); - const arrayCtor: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "Array", - args: [], - type: JSVAL, - loc, - }; - const snapshot: IrExpr = { - kind: "jsOp", - op: "callMethod", - name: "from", - args: [arrayCtor, receiver], - type: JSVAL, - loc, - }; - return { kind: "jsExit", value: snapshot, type, loc }; -} - /** The fallback ambient declaration intentionally exposes only the native * stream slice, but @types/node adopts the complete WHATWG ReadableStream * interface. Fence that wider surface before its checked-dynamic handle can @@ -1835,17 +1369,13 @@ export function fenceStaticReadableStreamMember( member, member.startsWith("[Symbol.") ? "prototype-symbol" : "prototype", ); - if (lowerer.dynamic && members.every((member) => status(member) !== "unsupported")) { - return null; - } + const supported = (member: string) => use === "call" ? STATIC_READABLE_STREAM_CALLS.has(member) : STATIC_READABLE_STREAM_READS.has(member); - if (!lowerer.dynamic && members.every(supported)) return null; - const member = members.find((candidate) => - lowerer.dynamic ? status(candidate) === "unsupported" : !supported(candidate), - )!; + if (members.every(supported)) return null; + const member = members.find((candidate) => !supported(candidate))!; if (status(member) === "unsupported") { lowerer.noLowering( `ReadableStream.${member}`, @@ -1854,14 +1384,14 @@ export function fenceStaticReadableStreamMember( "ReadableStream", member, member.startsWith("[Symbol.") ? "prototype-symbol" : "prototype", - ) ?? "this ReadableStream operation has no compiler lowering in either tier", + ) ?? "this ReadableStream operation has no compiler lowering", sym, ); } lowerer.noLowering( `ReadableStream.${member} in a static build`, access, - "the native static ReadableStream surface is locked plus cancel() and getReader(); values()/[Symbol.asyncIterator]() compile when consumed directly by for await, while stored iterator handles require --dynamic", + "the native static ReadableStream surface is locked plus cancel() and getReader(); values()/[Symbol.asyncIterator]() compile when consumed directly by for await, while stored iterator handles remain unsupported", sym, ); } @@ -1924,7 +1454,6 @@ export function lowerStaticFetchCompanionCall( call: ts.CallExpression, ): IrExpr | null { if ( - lowerer.dynamic || call.questionDotToken || !ts.isPropertyAccessExpression(call.expression) || call.expression.questionDotToken || @@ -2073,7 +1602,6 @@ export function lowerStaticAbortControllerCall( ): IrExpr | null { const access = call.expression; if ( - lowerer.dynamic || call.questionDotToken || call.arguments.some((argument) => ts.isSpreadElement(argument)) || (!ts.isPropertyAccessExpression(access) && !ts.isElementAccessExpression(access)) || @@ -2127,7 +1655,6 @@ export function lowerStaticReadableStreamControllerCall( ): IrExpr | null { const access = call.expression; if ( - lowerer.dynamic || call.questionDotToken || call.arguments.length > 1 || (!ts.isPropertyAccessExpression(access) && !ts.isElementAccessExpression(access)) || @@ -2181,7 +1708,6 @@ export function lowerStaticReadableStreamCancelCall( ): IrExpr | null { const access = call.expression; if ( - lowerer.dynamic || call.questionDotToken || call.arguments.length > 1 || call.arguments.some((argument) => ts.isSpreadElement(argument)) || @@ -2230,7 +1756,6 @@ export function lowerStaticAbortSignalListenerCall( ): IrExpr | null { const access = call.expression; if ( - lowerer.dynamic || call.questionDotToken || call.arguments.length < 2 || call.arguments.some((arg) => ts.isSpreadElement(arg)) || @@ -2278,10 +1803,6 @@ export function lowerStaticAbortSignalListenerCall( ); } -/** `new AbortController()`. Static builds create a native controller handle - * over the same signal state consumed by fetch; dynamic builds construct the - * island Web object. JavaScript accepts surplus constructor arguments, so - * both tiers evaluate them even though AbortController ignores their values. */ export function lowerAbortControllerNew(lowerer: Lowerer, expr: ts.NewExpression): IrExpr | null { if (!ts.isIdentifier(expr.expression) || expr.expression.text !== "AbortController") { return null; @@ -2291,26 +1812,7 @@ export function lowerAbortControllerNew(lowerer: Lowerer, expr: ts.NewExpression const args = expr.arguments ?? []; if (args.some((argument) => ts.isSpreadElement(argument))) return null; const loc = locOf(expr); - if (lowerer.dynamic) { - const ctor: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "AbortController", - args: [], - type: JSVAL, - loc, - }; - return { - kind: "jsOp", - op: "construct", - args: [ - ctor, - ...args.map((argument) => lowerer.jsvalIn(lowerer.lowerExpr(argument), argument)), - ], - type: JSVAL, - loc, - }; - } + const result: IrExpr = { kind: "libCall", fn: "fetch.abortControllerNew", @@ -2332,9 +1834,6 @@ export function lowerAbortControllerNew(lowerer: Lowerer, expr: ts.NewExpression }; } -/** `new ReadableStream(source?)`. Static builds box the source record into - * the checked-dynamic tree; dynamic builds construct the island's Web - * stream directly so the returned handle composes with dynamic fetch. */ export function lowerStaticReadableStreamNew( lowerer: Lowerer, expr: ts.NewExpression, @@ -2347,29 +1846,7 @@ export function lowerStaticReadableStreamNew( const args = expr.arguments ?? []; if (args.length > 1) return null; const loc = locOf(expr); - if (lowerer.dynamic) { - const ctor: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "ReadableStream", - args: [], - type: JSVAL, - loc, - }; - const source = - args[0] === undefined - ? null - : ts.isObjectLiteralExpression(args[0]) - ? lowerIslandObjectLiteral(lowerer, args[0]) - : lowerer.jsvalIn(lowerer.lowerExpr(args[0]), args[0]); - return { - kind: "jsOp", - op: "construct", - args: source === null ? [ctor] : [ctor, source], - type: JSVAL, - loc, - }; - } + const source = args.length === 0 ? dynUndefinedExpr(loc) @@ -2392,17 +1869,7 @@ export function lowerFetchWebNew(lowerer: Lowerer, expr: ts.NewExpression): IrEx const args = expr.arguments ?? []; if (args.some(ts.isSpreadElement)) return null; const loc = locOf(expr); - if (lowerer.dynamic) - return { - kind: "jsOp", - op: "construct", - args: [ - { kind: "jsOp", op: "globalGet", name, args: [], type: JSVAL, loc }, - ...args.map((arg) => lowerer.jsvalIn(lowerer.lowerExpr(arg), arg)), - ], - type: JSVAL, - loc, - }; + if (name === "Request" && args[1]) fenceRequestInitValue(lowerer, args[1]); const lowered = args.map((arg) => ts.isObjectLiteralExpression(arg) @@ -2421,39 +1888,12 @@ export function lowerFetchWebNew(lowerer: Lowerer, expr: ts.NewExpression): IrEx }; } -/** `new Response(body?, init?)`. Dynamic builds construct the island's - * Web Response directly. Static builds hand a checked-dynamic BodyInit and - * ResponseInit snapshot to the native fetch runtime, which returns the same - * opaque Response handle as fetch(). */ export function lowerResponseNew(lowerer: Lowerer, expr: ts.NewExpression): IrExpr | null { if (stdlibGlobalNameOf(lowerer, expr.expression) !== "Response") return null; const args = expr.arguments ?? []; if (args.some(ts.isSpreadElement)) return null; const loc = locOf(expr); - if (lowerer.dynamic) { - const ctor: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "Response", - args: [], - type: JSVAL, - loc, - }; - const lowered = args.map((arg) => - ts.isObjectLiteralExpression(arg) - ? lowerIslandObjectLiteral(lowerer, arg) - : lowerer.jsvalIn(lowerer.lowerExpr(arg), arg), - ); - return { - kind: "jsOp", - op: "construct", - args: [ctor, ...lowered], - type: JSVAL, - loc, - }; - } - const toDyn = (node: ts.Expression | undefined, value: IrExpr, what: string): IrExpr => { if (node === undefined) return dynUndefinedExpr(loc); if (value.type.kind === "dyn") return value; @@ -2597,7 +2037,6 @@ export function lowerStaticReadableStreamReaderCall( ): IrExpr | null { const access = call.expression; if ( - lowerer.dynamic || call.questionDotToken || call.arguments.length !== 0 || (!ts.isPropertyAccessExpression(access) && !ts.isElementAccessExpression(access)) || @@ -2639,31 +2078,14 @@ export function lowerStaticReadableStreamReaderCall( ); } -/** Literal `import(spec)` at a user site. Static builds compile program - * modules and supported Node builtins to a native Promise; - * dynamic builds retain the island-backed package/module path below. - * Under --dynamic the call lowers to island.importDyn(key): the engine - * loads the module (embedded npm graph, a shipped local .js/.mjs the - * build embedded, or a builtin shim — collectDynamicImports resolved and - * embedded the specifier at collection time) and answers an ENGINE - * promise of the namespace object, bridged to a static - * `Promise` (jsBridgePromise, the fetch precedent) — so `await - * import(x)` parks the fiber and resumes with the namespace HANDLE, and - * a load/evaluation failure crosses as a catchable rejection, exactly - * where Node puts it. Specifiers must be string literals: the module - * graph is a BUILD-time artifact — a runtime-computed name has nothing - * to embed, and the fence says so. Static builds accept compiled program - * modules and supported builtins; other execution homes report SC2012. - * Null for anything that isn't `import(...)`. */ export function lowerDynamicImportCall(lowerer: Lowerer, call: ts.CallExpression): IrExpr | null { if (call.expression.kind !== ts.SyntaxKind.ImportKeyword) return null; - const loc = locOf(call); const arg = call.arguments[0]; if (arg === undefined || !ts.isStringLiteralLike(arg)) { lowerer.unsupported( "SC1090", call, - "dynamic import() of computed specifiers (the module graph embeds at " + + "dynamic import() of computed specifiers (the module graph resolves at " + "build time — the specifier must be a string literal)", ); } @@ -2671,126 +2093,14 @@ export function lowerDynamicImportCall(lowerer: Lowerer, call: ts.CallExpression lowerer.unsupported("SC1090", call, "dynamic import() with import attributes"); } const res = lowerer.dynImports.get(`${call.getSourceFile().fileName}\u0000${arg.text}`); - if (!lowerer.dynamic) { - if (res?.kind === "program-module") { - return lowerOwnStaticModuleImport(lowerer, call, arg); - } - if (res?.kind === "static-builtin") { - return lowerStaticNamespaceImport(lowerer, call, { - kind: "moduleNs", - moduleId: `builtin:${res.module}`, - }); - } - lowerer.requireDynamicApi("'import()'", call); - throw new PoisonError(); - } - lowerer.requireDynamicApi("'import()'", call); - if (!res) { - // Collection walks every file before bodies lower, so a missing - // entry is a lowerer bug, not user error. - throw new InternalCompilerError(`lowerer bug: unresolved dynamic import '${arg.text}'`); - } + if (res === undefined) lowerer.refuseUnsupportedApi("'import()'", call); if (res.kind === "program-module") { - return lowerOwnDynamicModuleImport(lowerer, call, arg); + return lowerOwnStaticModuleImport(lowerer, call, arg); } - if (res.kind !== "module") { - throw new PoisonError(); // resolution failed — collection reported it - } - const raw: IrExpr = { - kind: "libCall", - fn: "island.importDyn", - args: [{ kind: "strLit", value: res.key, type: STRING, loc }], - type: JSVAL, - loc, - }; - return { kind: "jsBridgePromise", value: raw, type: { kind: "promise", inner: JSVAL }, loc }; -} - -/** Dynamic `import()` of one of the program's OWN modules: the compiled - * module's exports, marshaled into the engine as a namespace object. - * The site lowers to `Promise.resolve().then()` in the engine — - * the builder is a synthesized compiled function (dynNsBuilderOf) that - * runs on the engine MICROTASK, calls the target module's run-once %init - * (Node's evaluation point for a module first reached through import(): - * after the importer's synchronous code, before the .then handlers), and - * returns the exports object. Node differences (numbered divergences, - * pinned in island.test.ts): the namespace is a SNAPSHOT taken when the - * import resolves (Node's is live), a plain engine object (no Module - * toStringTag, keys still sorted like Node's, each import minting a - * fresh object where Node caches one), and exports with no island - * representation (classes, generic functions, un-marshalable - * signatures) cross as trap functions that throw a pointed TypeError - * when USED — the namespace still builds, exactly like Node still - * resolves it. */ -function lowerOwnDynamicModuleImport( - lowerer: Lowerer, - call: ts.CallExpression, - arg: ts.StringLiteralLike, -): IrExpr { - const loc = locOf(call); - let dep: ts.SourceFile | null = null; - const modSym = lowerer.checker.getSymbolAtLocation(arg); - for (const d of modSym ? lowerer.checker.declarationsOf(modSym) : []) { - if (ts.isSourceFile(d) && !d.isDeclarationFile) { - dep = d; - break; - } - } - if (dep !== null && (dep.fileName.endsWith(".cts") || isCjsJsFile(dep, lowerer.program))) { - lowerer.unsupported( - "SC1090", - call, - `dynamic import of the program's own CommonJS module '${arg.text}' ` + - "(its namespace comes from module.exports through Node's CJS lexer, " + - "which has no compiled story — require it, or import it statically)", - ); - } - const builder = dep !== null ? dynNsBuilderOf(lowerer, dep, loc) : null; - if (builder === null) { - lowerer.unsupported( - "SC1090", - call, - `dynamic import of the program's own module '${arg.text}' ` + - "(this module is not part of the compiled module graph — import it statically)", - ); - } - const promiseCtor: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "Promise", - args: [], - type: JSVAL, - loc, - }; - const resolved: IrExpr = { - kind: "jsOp", - op: "callMethod", - name: "resolve", - args: [promiseCtor], - type: JSVAL, - loc, - }; - const builderAsync = dep !== null && lowerer.asyncInitFiles.has(dep); - const builderFn: IrType & { kind: "func" } = { - kind: "func", - params: [], - ret: builderAsync ? { kind: "promise", inner: JSVAL } : JSVAL, - }; - const marshaled: IrExpr = { - kind: "jsMarshal", - value: { kind: "closure", fnName: builder, captures: [], type: builderFn, loc }, - type: JSVAL, - loc, - }; - const chained: IrExpr = { - kind: "jsOp", - op: "callMethod", - name: "then", - args: [resolved, marshaled], - type: JSVAL, - loc, - }; - return { kind: "jsBridgePromise", value: chained, type: { kind: "promise", inner: JSVAL }, loc }; + return lowerStaticNamespaceImport(lowerer, call, { + kind: "moduleNs", + moduleId: `builtin:${res.module}`, + }); } /** The checker-resolved program source behind one literal import(). */ @@ -2958,365 +2268,7 @@ function appendStaticModuleInit( }); } -/** The namespace-BUILDER function for one program module, synthesized on - * first demand and shared by every import() of that module (deterministic - * name per file tag, so the discovery and emit passes agree). Body: the - * module's guarded %init (skipped for the entry — it is running or ran), - * then `return { }` as an engine object. Null when the - * module never joined the compiled graph (no %init exists — an empty - * preflight order or a cycle the extension refused). */ -function dynNsBuilderOf(lowerer: Lowerer, dep: ts.SourceFile, loc: IrExpr["loc"]): string | null { - const cached = lowerer.dynNsBuilders.get(dep); - if (cached !== undefined) return cached; - const initName = lowerer.initNameOf.get(dep); - if (initName === undefined) return null; - const rawTag = lowerer.fileTag.get(dep) ?? ""; - const name = `%dynns.${rawTag === "" ? "e." : rawTag.replace(/^%/, "")}`; - lowerer.dynNsBuilders.set(dep, name); - const isAsync = lowerer.asyncInitFiles.has(dep); - const fnCtx = newFnCtx(true, null, null, JSVAL); - fnCtx.isAsync = isAsync; - lowerer.fnStack.push(fnCtx); - try { - const body: IrStmt[] = []; - const linkCrash = esmNamedImportLinkCrash(lowerer.program, dep); - if (linkCrash !== null) { - // A dynamic import links its graph when the returned promise is - // settled. Throw from the synthesized namespace builder, which runs - // inside the Promise reaction, so no module init executes before the - // link failure and the bridge turns it into the import rejection. - body.push({ - kind: "throw", - value: { - kind: "libCall", - fn: "error.new", - args: [{ kind: "strLit", value: linkCrash.message, type: STRING, loc }], - type: { kind: "object", className: linkCrash.className }, - loc, - }, - loc, - }); - } - // A synchronous entry has no run-once guard, so its historical - // self-import path must not call %init again. An ASYNC entry does - // have the stronger evaluation-promise cache: awaiting that cached - // promise is essential for top-level `await import("./self")`, - // which deadlocks (and ultimately exits 13) in Node rather than - // exposing a half-evaluated namespace. - if (linkCrash === null && (dep !== lowerer.entry || isAsync)) { - const call: IrExpr = { - kind: "call", - callee: initName, - args: [], - type: isAsync ? { kind: "promise", inner: VOID } : VOID, - loc, - }; - const cyclePromiseId = lowerer.asyncCyclePromiseOf.get(dep); - if (isAsync && cyclePromiseId !== undefined) { - // Starting the REQUESTED member matters for dynamically-only - // cycles: build-time discovery may have encountered another - // member first, but Node roots evaluation at the first module - // actually imported at runtime. The spawn wrapper publishes - // that outermost promise in the SCC's shared slot after eager - // recursive spawning returns. Discard the member promise here - // and await the shared root before exposing any namespace. - body.push({ kind: "exprStmt", expr: call, loc }); - const promiseT: IrType = { kind: "promise", inner: VOID }; - body.push({ - kind: "exprStmt", - expr: { - kind: "awaitExpr", - value: { kind: "varRef", localId: cyclePromiseId, type: promiseT, loc }, - type: VOID, - loc, - }, - loc, - }); - } else { - body.push({ - kind: "exprStmt", - expr: isAsync ? { kind: "awaitExpr", value: call, type: VOID, loc } : call, - loc, - }); - } - } - // Node sorts module-namespace keys (code-unit order); tsc erases - // type-only exports, so only VALUE exports appear. - const entries: [string, ts.Symbol][] = []; - const modSym = lowerer.checker.getSymbolAtLocation(dep); - modSym?.getExports().forEach((sym: ts.Symbol, key: ts.__String) => { - const n = String(key); - if (!n.startsWith("__") && n !== "export=") entries.push([n, sym]); - }); - entries.sort((a, b) => (a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0)); - const args: IrExpr[] = []; - for (const [exportName, sym] of entries) { - const value = exportJsvalValue(lowerer, exportName, sym, loc); - if (value === null) continue; - args.push( - { - kind: "jsMarshal", - value: { kind: "strLit", value: exportName, type: STRING, loc }, - type: JSVAL, - loc, - }, - value, - ); - } - body.push({ - kind: "return", - value: { kind: "jsOp", op: "objLit", args, type: JSVAL, loc }, - loc, - }); - const ctx = lowerer.ctx; - lowerer.liftedFns.push({ - name, - params: [], - returnType: JSVAL, - locals: ctx.locals, - captures: ctx.captures ?? [], - body, - ...(isAsync ? { async: true as const } : {}), - loc, - }); - } finally { - lowerer.fnStack.pop(); - } - return name; -} - -/** One export's island value for the namespace object — the jsvalIn - * marshal set (primitives and JSON-safe composites by deep copy, units as - * the engine's own, marshalable closures as host functions, jsval-bearing - * composites through the per-field lift), with every UN-marshalable - * export crossing as a trap function that throws a pointed TypeError when - * called or constructed — the namespace still builds (Node resolves it; - * only the USE has no compiled story). Null for exports that do not exist - * at runtime (type-only). */ -function exportJsvalValue( - lowerer: Lowerer, - name: string, - sym: ts.Symbol, - loc: IrExpr["loc"], -): IrExpr | null { - const trap = (what: string): IrExpr => - islandTrapFnValue( - lowerer, - `the '${name}' export is ${what} of the compiled program, which cannot cross into dynamically-executed code yet`, - loc, - ); - let resolved = sym; - if (sym.flags & ts.SymbolFlags.Alias) { - // `export type { x }` / `export { type x }`: erased at runtime. - for (const d of lowerer.checker.declarationsOf(sym)) { - if (ts.isExportSpecifier(d)) { - const exportDecl = d.parent?.parent; - if (d.isTypeOnly || (ts.isExportDeclaration(exportDecl) && exportDecl.isTypeOnly)) - return null; - } - if (ts.isImportSpecifier(d)) { - const clause = d.parent?.parent; - if ( - d.isTypeOnly || - (ts.isImportClause(clause) && clause.phaseModifier === ts.SyntaxKind.TypeKeyword) - ) - return null; - } - } - resolved = lowerer.checker.getAliasedSymbol(sym); - } - if (!(resolved.flags & ts.SymbolFlags.Value)) return null; // pure type surface - const g = lowerer.globalsBySymbol.get(resolved); - if (g) { - const ref: IrExpr = { kind: "varRef", localId: g.id, type: g.type, loc }; - if (ref.type.kind === "jsval") return ref; - if (isUnitType(ref.type)) { - return { - kind: "jsOp", - op: ref.type.kind === "undefinedT" ? "undefLit" : "nullLit", - args: [], - type: JSVAL, - loc, - }; - } - if (ref.type.kind === "func") { - return canMarshalTypedFuncIntoIsland( - ref.type, - (id) => lowerer.shapes.get(id), - (id) => lowerer.unions.get(id), - ) - ? { kind: "jsMarshal", value: ref, type: JSVAL, loc } - : trap(`a function value of type '${lowerer.fmt(ref.type)}'`); - } - if (lowerer.boundarySafe(ref.type)) return { kind: "jsMarshal", value: ref, type: JSVAL, loc }; - if (lowerer.jsvalLiftable(ref.type)) return lowerer.jsvalLiftExpr(ref, loc); - return trap(`a value of type '${lowerer.fmt(ref.type)}'`); - } - const sig = lowerer.fnSigsBySymbol.get(resolved); - const decl0 = lowerer.checker - .declarationsOf(resolved) - .find( - (d) => - ts.isFunctionDeclaration(d) && - (ts.isSourceFile(d.parent) || - (d.parent !== undefined && lowerer.nsBlocks.get(d.parent) === "flattened")), - ); - if (sig && decl0) { - if (!sig.params.every((p) => p.mode === "required")) { - return trap("a function with optional, default, or rest parameters"); - } - const funcType: IrType & { kind: "func" } = { - kind: "func", - params: sig.params.map((p) => p.type), - ret: sig.returnType, - }; - if ( - !canMarshalTypedFuncIntoIsland( - funcType, - (id) => lowerer.shapes.get(id), - (id) => lowerer.unions.get(id), - ) - ) { - return trap(`a function of type '${lowerer.fmt(funcType)}'`); - } - lowerer.noteEdge(sig.name); - return { - kind: "jsMarshal", - value: { kind: "closure", fnName: sig.name, captures: [], type: funcType, loc }, - type: JSVAL, - loc, - }; - } - if (lowerer.genericFnsBySymbol.has(resolved)) return trap("a generic function"); - const flags = resolved.flags; - if (flags & ts.SymbolFlags.Class) return trap("a class"); - if (flags & ts.SymbolFlags.Enum) return trap("an enum object"); - if (flags & ts.SymbolFlags.ValueModule || flags & ts.SymbolFlags.NamespaceModule) { - return trap("a namespace object"); - } - return trap("a binding"); -} - -/** An engine value whose any USE throws: `new Function("")` — a - * real engine function, so the namespace member reads back fine (Node's - * namespace holds the value too), property probes answer like a - * function's, and calling or `new`-ing it runs the body, which throws - * the pointed TypeError. */ -function islandTrapFnValue(lowerer: Lowerer, message: string, loc: IrExpr["loc"]): IrExpr { - void lowerer; - const code = `throw new TypeError(${JSON.stringify(message)})`; - return { - kind: "jsOp", - op: "construct", - args: [ - { kind: "jsOp", op: "globalGet", name: "Function", args: [], type: JSVAL, loc }, - { - kind: "jsMarshal", - value: { kind: "strLit", value: code, type: STRING, loc }, - type: JSVAL, - loc, - }, - ], - type: JSVAL, - loc, - }; -} - -/** An object literal built NATIVELY in the island — one engine object, - * each field marshaled individually (nested object/array literals - * recurse, island handles pass straight through, everything else takes - * the JSON-safe copy-marshal). The same jsOp the 'any'-contextual - * literal path emits, callable from lowerings that KNOW the literal is - * island-bound (fetch's init) even when the contextual type is a union - * the generic path declines. Spelled and pure const-folded computed keys - * are admitted; engine property names have no identifier restriction. Plain - * spreads copy through the engine's CopyDataProperties operation in - * source order, including nested RequestInit/header dictionaries. */ -function lowerIslandObjectLiteral(lowerer: Lowerer, expr: ts.ObjectLiteralExpression): IrExpr { - const loc = locOf(expr); - let args: IrExpr[] = []; - let acc: IrExpr | null = null; - const flushFields = (): void => { - if (args.length === 0) return; - const chunk: IrExpr = { kind: "jsOp", op: "objLit", args, type: JSVAL, loc }; - acc = - acc === null - ? chunk - : { kind: "jsOp", op: "objSpread", args: [acc, chunk], type: JSVAL, loc }; - args = []; - }; - for (const prop of expr.properties) { - if (ts.isSpreadAssignment(prop)) { - flushFields(); - const spread = ts.isObjectLiteralExpression(prop.expression) - ? lowerIslandObjectLiteral(lowerer, prop.expression) - : lowerer.jsvalIn(lowerer.lowerExpr(prop.expression), prop.expression); - acc ??= { kind: "jsOp", op: "objLit", args: [], type: JSVAL, loc }; - acc = { kind: "jsOp", op: "objSpread", args: [acc, spread], type: JSVAL, loc: locOf(prop) }; - continue; - } - if ( - !ts.isPropertyAssignment(prop) && - !ts.isShorthandPropertyAssignment(prop) && - !ts.isMethodDeclaration(prop) - ) { - lowerer.unsupported( - "SC1090", - prop, - "this property form in an island-built object literal (use a spelled or pure const-folded key with a value or method)", - ); - } - const propertyName = requestInitLiteralKey(lowerer, prop); - if (propertyName === null) { - lowerer.unsupported( - "SC1090", - prop, - "this property key in an island-built object literal (use a spelled or pure const-folded key)", - ); - } - const nameLoc = locOf(prop.name); - args.push({ - kind: "jsMarshal", - value: { kind: "strLit", value: propertyName, type: STRING, loc: nameLoc }, - type: JSVAL, - loc: nameLoc, - }); - const valueNode: ts.Expression | ts.MethodDeclaration = ts.isPropertyAssignment(prop) - ? prop.initializer - : ts.isShorthandPropertyAssignment(prop) - ? (prop.name as ts.Identifier) - : prop; - if (ts.isObjectLiteralExpression(valueNode)) { - args.push(lowerIslandObjectLiteral(lowerer, valueNode)); - } else if ( - ts.isArrayLiteralExpression(valueNode) && - !valueNode.elements.some(ts.isSpreadElement) - ) { - const elems = valueNode.elements.map((el) => lowerer.jsvalIn(lowerer.lowerExpr(el), el)); - args.push({ kind: "jsOp", op: "arrLit", args: elems, type: JSVAL, loc: locOf(valueNode) }); - } else { - const value = ts.isMethodDeclaration(valueNode) - ? (lowerer.rejectThisInObjectMethod(valueNode.body ?? valueNode), - lowerer.lowerLambda(valueNode)) - : lowerer.lowerExpr(valueNode); - args.push(lowerer.jsvalIn(value, valueNode)); - } - } - flushFields(); - return acc ?? { kind: "jsOp", op: "objLit", args: [], type: JSVAL, loc }; -} - -/** Method calls on the island-backed ambient surface: `Math.(...)` - * (the engine's own Math object executes) and the number/string methods - * the static runtime doesn't implement (`x.toPrecision(2)`, - * `s.replace("a", "b")`, ...). Each site is self-contained — the receiver - * and arguments marshal in, the engine executes with JS-exact semantics, - * and the result exits (validated) to the DECLARED static return type, - * so no jsval leaks into the program's types. tsc has already checked - * receiver, arity, and argument types against ambient/scriptc.d.ts; an - * ambient member missing from ISLAND_SURFACE returns null into the - * existing generic rejections. */ -export function lowerIslandMethodCall( +export function lowerStdlibMethodCall( lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression, @@ -3324,77 +2276,25 @@ export function lowerIslandMethodCall( if (lowerer.chainBlocked(access, call)) return null; const name = access.name.text; const loc = locOf(call); - const finish = (receiver: IrExpr, entry: IslandFnEntry): IrExpr => { - const args = call.arguments.map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a)); - const result: IrExpr = { - kind: "jsOp", - op: "callMethod", - name, - args: [receiver, ...args], - type: JSVAL, - loc, - }; - return { kind: "jsExit", value: result, type: entry.ret, loc }; - }; - // `AbortSignal.timeout(ms)` / `.abort(reason?)` / `.any(signals)` — - // the fetch-cancellation ambient: the engine's own AbortSignal mints - // the signal, which stays a HANDLE (its checker type, AbortSignal, - // maps to jsval — see ISLAND_AMBIENT_TYPES) so it can ride a - // RequestInit literal into fetch without a JSON detour. The prelude - // implements all three statics. + // Supported native AbortSignal statics are handled before this generic + // method path. Refuse forms that reach this point without a lowering. { const sigMember = lowerer.stdlibGlobalMember(access, "AbortSignal"); if ( (sigMember === "timeout" || sigMember === "abort" || sigMember === "any") && call.arguments.every((argument) => !ts.isSpreadElement(argument)) ) { - lowerer.requireDynamicApi(`'AbortSignal.${sigMember}'`, call); - const args = call.arguments.map((a) => lowerer.jsvalIn(lowerer.lowerExpr(a), a)); - const signalGlobal: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "AbortSignal", - args: [], - type: JSVAL, - loc, - }; - return { - kind: "jsOp", - op: "callMethod", - name: sigMember, - args: [signalGlobal, ...args], - type: JSVAL, - loc, - }; + lowerer.refuseUnsupportedApi(`'AbortSignal.${sigMember}'`, call); } } if ( lowerer.stdlibGlobalMember(access, "ReadableStream") === "from" && call.arguments.every((argument) => !ts.isSpreadElement(argument)) ) { - lowerer.requireDynamicApi("'ReadableStream.from'", call); - const streamGlobal: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "ReadableStream", - args: [], - type: JSVAL, - loc, - }; - return { - kind: "jsOp", - op: "callMethod", - name: "from", - args: [ - streamGlobal, - ...call.arguments.map((argument) => lowerer.jsvalIn(lowerer.lowerExpr(argument), argument)), - ], - type: JSVAL, - loc, - }; + lowerer.refuseUnsupportedApi("'ReadableStream.from'", call); } const isMath = lowerer.stdlibGlobalMember(access, "Math") !== null; - // Static numeric Math calls precede the island path. The scalar methods + // use their declared arity; min/max and hypot accept their variadic forms. const staticMath = isMath ? own(STATIC_MATH_FNS, name) : undefined; // A missing element (a hole bound by a loop, a local or field holding a @@ -3442,9 +2342,7 @@ export function lowerIslandMethodCall( } } // `Math.max(...xs)` / `Math.min(...xs)` over a number[]: a STATIC - // runtime fold (JS-exact: NaN poisons, ±0 order by the JS rules, the - // empty array yields ∓Infinity like the zero-arg calls) — no island - // involved, so it works without --dynamic too. Only the exact + // runtime fold (NaN poisons and ±0 follows JS ordering). This // one-spread form lowers; mixed spread/positional argument lists keep // the nest-calls fence. if ( @@ -3478,29 +2376,22 @@ export function lowerIslandMethodCall( loc, }; } - const mathFn = isMath ? own(ISLAND_SURFACE.math.fns, name) : undefined; + const mathFn = isMath ? own(STDLIB_SURFACE.math.fns, name) : undefined; if (mathFn && call.arguments.length === mathFn.args.length) { - lowerer.requireDynamicApi(`'Math.${name}'`, call); - return finish( - { kind: "jsOp", op: "globalGet", name: "Math", args: [], type: JSVAL, loc }, - mathFn, - ); + lowerer.refuseUnsupportedApi(`'Math.${name}'`, call); } const kind = lowerer.mapTypeOf(lowerer.typeOf(access.expression))?.kind; const entry = kind === "f64" - ? own(ISLAND_SURFACE.number, name) + ? own(STDLIB_SURFACE.number, name) : kind === "string" - ? own(ISLAND_SURFACE.string, name) + ? own(STDLIB_SURFACE.string, name) : undefined; if (!entry || call.arguments.length !== entry.args.length) return null; if (!lowerer.isStdlibMember(access)) return null; - lowerer.requireDynamicApi(`'.${name}()' on ${kind === "f64" ? "numbers" : "strings"}`, call); - return finish(lowerer.jsvalIn(lowerer.lowerExpr(access.expression), access.expression), entry); + lowerer.refuseUnsupportedApi(`'.${name}()' on ${kind === "f64" ? "numbers" : "strings"}`, call); } -/** Math constants and fixed-arity numeric functions have native value forms. - * Remaining properties retain the island/fence path. */ export function lowerMathProperty( lowerer: Lowerer, expr: ts.PropertyAccessExpression, @@ -3537,29 +2428,12 @@ export function lowerMathProperty( loc, ); } - const propType = own(ISLAND_SURFACE.math.props, member); + const propType = own(STDLIB_SURFACE.math.props, member); if (propType !== undefined) { - lowerer.requireDynamicApi(`'Math.${member}'`, expr); - const math: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: "Math", - args: [], - type: JSVAL, - loc, - }; - const read: IrExpr = { - kind: "jsOp", - op: "getProp", - name: member, - args: [math], - type: JSVAL, - loc, - }; - return { kind: "jsExit", value: read, type: propType, loc }; + lowerer.refuseUnsupportedApi(`'Math.${member}'`, expr); } if ( - own(ISLAND_SURFACE.math.fns, member) !== undefined || + own(STDLIB_SURFACE.math.fns, member) !== undefined || own(STATIC_MATH_FNS, member) !== undefined ) { lowerer.unsupported("SC1090", expr, `Math methods as values (call '${member}' directly)`); @@ -3567,10 +2441,6 @@ export function lowerMathProperty( return null; // declared-but-untabled members fall through generically } -/** The npm package a type is declared by ("commander", "@scope/pkg"), - * or null when the type isn't package-declared. Union parts are searched - * too: `string | Command` fails mapping as a whole, but the blame (and - * the --dynamic attribution) belongs to the package-declared part. */ export function npmPackageOf(lowerer: Lowerer, type: ts.Type): string | null { const pkg = lowerer.npmPackageOfSymbol(type.getAliasSymbol() ?? type.getSymbol()); if (pkg) return pkg; @@ -3583,19 +2453,12 @@ export function npmPackageOf(lowerer: Lowerer, type: ts.Type): string | null { return null; } -/** The npm chokepoint for member reads and method calls in a STATIC - * build: a receiver whose type (or member whose symbol) a package's - * .d.ts declares means the operation runs in the embedded engine — - * attribute the site to the package instead of the generic property/ - * method rejection. No-op under --dynamic (the island paths claimed - * these) and for non-package receivers, so callers' fallbacks apply. */ export function npmMemberFence(lowerer: Lowerer, access: ts.PropertyAccessExpression): void { - if (lowerer.dynamic) return; const pkg = lowerer.npmPackageOf(lowerer.typeOf(access.expression)) ?? lowerer.npmPackageOfSymbol(lowerer.checker.getSymbolAtLocation(access.name)); if (!pkg) return; - lowerer.pushDiag(requiresDynamicPackageDiag(pkg, locOf(access))); + lowerer.pushDiag(unsupportedPackageValueDiag(pkg, locOf(access))); throw new PoisonError(); } diff --git a/packages/compiler/src/frontend/lowering/lower-stmts.test.ts b/packages/compiler/src/frontend/lowering/lower-stmts.test.ts index 2e57a111d..322b21b2a 100644 --- a/packages/compiler/src/frontend/lowering/lower-stmts.test.ts +++ b/packages/compiler/src/frontend/lowering/lower-stmts.test.ts @@ -25,7 +25,7 @@ function context(source: string, filename = "writes.js") { ) assignments.push(node); }); - const lowerer = new Lowerer({ getTypeChecker: () => ({}) } as ts.Program, file, [], false); + const lowerer = new Lowerer({ getTypeChecker: () => ({}) } as ts.Program, file, []); const symbols = new Map(); const resolve = vi .spyOn(lowerer, "resolveValueSymbol") diff --git a/packages/compiler/src/frontend/lowering/lower-stmts.ts b/packages/compiler/src/frontend/lowering/lower-stmts.ts index 266a79d81..169f0ba6a 100644 --- a/packages/compiler/src/frontend/lowering/lower-stmts.ts +++ b/packages/compiler/src/frontend/lowering/lower-stmts.ts @@ -36,7 +36,6 @@ import { type IrLocal, type IrStmt, type IrType, - JSVAL, STRING, type SrcLoc, UNDEFINED_T, @@ -51,11 +50,8 @@ import { PoisonError, boundIdentifiersOf, dynFallbackType, - importCallHandleType, neverTaintedJsType, staticImportNamespaceType, - stmtUsesIsland, - uncheckedOverloadHandleCall, } from "./lowerer.js"; import { enforceLibBoundary, lowerSurplusCalls } from "./lib-boundary.js"; import { @@ -171,7 +167,7 @@ import { UNSUPPORTED, checkerPanicDiag, isCheckerPanic, - requiresDynamicDiag, + unsupportedNativeExecutionDiag, } from "../../diagnostics/diagnostic.js"; import { isParseArgsDynTypeName, @@ -661,14 +657,6 @@ export function lowerStmts(lowerer: Lowerer, stmts: readonly ts.Statement[]): Ir enforceLibBoundary(lowerer, rewritten); if (!appended) out.push(...rewritten); } - // Island accounting (--dynamic coverage): a statement that lowered - // but carries island constructs compiles DYNAMICALLY — its work - // runs in the embedded engine, and the report says so instead of - // counting it as static. - if (!lowerer.suppressStats && lowered && stmtUsesIsland(lowered)) { - lowerer.stats.statementsIsland++; - if (sf !== undefined) lowerer.bumpFileStat(sf.fileName, "island"); - } // A JS statement that lowered CLEAN can still have flushed // DEFERRED collection diagnostics (a symbol lookup on an alias // resolves through flushDeferred — informational here, not a @@ -740,16 +728,6 @@ export function lowerStmts(lowerer: Lowerer, stmts: readonly ts.Statement[]): Ir return out; } -/** The TDZ kinds: pointer-backed representations, where the box's empty - * NULL slot IS the not-yet-initialized sentinel — plus the scalars - * (f64/bool), whose TDZ boxes store a one-element ARRAY cell so the - * empty-slot sentinel still works (a scalar slot has no spare state: - * every bit pattern is a legal value — the setTimeout-handle shape, - * `clearTimeout(timer)` captured above `const timer = setTimeout(...)`). - * Checked-dynamic values use ref boxes with their own retain/release; - * a NULL payload remains distinct from the allocated undefined value. - * caught/jsval keep their existing capture fences. Unit-only types - * never carry a useful forward capture. */ const TDZ_KINDS = new Set([ "func", "string", @@ -979,26 +957,7 @@ function varBindingType(lowerer: Lowerer, nameNode: ts.Identifier): IrType | nul if (shape && shape.fields.length === 0 && !shape.indexValue && !shape.tuple) type = DYN; } if (!type) type = dynFallbackType(lowerer, nameNode, lowerer.typeOf(nameNode)); - // `var p = import("./m")` in a function body: the hoisted slot holds - // the island promise/handle — the import expression's only production - // (lowerVarDecl's rule for block-scoped bindings). - if ( - lowerer.dynamic && - ts.isVariableDeclaration(nameNode.parent) && - nameNode.parent.name === nameNode - ) { - type = - importCallHandleType(nameNode.parent.initializer) ?? - // An unchecked-overload call result stores the handle, exactly the - // let/const rule (see uncheckedOverloadHandleCall). - (uncheckedOverloadHandleCall(lowerer, nameNode.parent.initializer) ? JSVAL : null) ?? - type; - } - if ( - !lowerer.dynamic && - ts.isVariableDeclaration(nameNode.parent) && - nameNode.parent.name === nameNode - ) { + if (ts.isVariableDeclaration(nameNode.parent) && nameNode.parent.name === nameNode) { type = staticImportNamespaceType(lowerer, nameNode.parent.initializer) ?? type; } if (!type || type.kind === "void") return null; @@ -1054,7 +1013,7 @@ function hoistVarBinding(lowerer: Lowerer, symbol: ts.Symbol, nameNode: ts.Ident lowerer.ctx.scopes[0]!.set(symbol, local); // A checked-dynamic slot holds the dyn undefined (a NULL dyn is a // trap); everything else rides unassignedSlotInit (interned union arm, - // engine undefined for jsval). + const wrapped = type.kind === "dyn" ? dynUndefinedExpr(locOf(nameNode)) @@ -1099,10 +1058,8 @@ export function predeclareForwardVar(lowerer: Lowerer, symbol: ts.Symbol): boole if (!owner) return false; const ctx = owner.ctx; if (ctx.hoistedVars.has(symbol)) return false; // would have resolved - // Only a slot that can hold `undefined` can carry the pre- - // initialization reads: an undefined-armed union (the interned arm), - // a checked-dynamic binding (the dyn undefined), or a jsval 'any' - // binding (the engine's undefined). + // Only a slot that can hold `undefined` can carry pre-initialization + // reads: an undefined-armed union or a native checked-value binding. const type = varBindingType(lowerer, nameNode); if (!type) return false; const wrapped = @@ -1789,20 +1746,13 @@ export function lowerDestructuringDecl( const parseArgsDynObject = init.type.kind === "dyn" && isParseArgsDynCheckerType(lowerer, lowerer.typeOf(decl.initializer)); - // A TS `any`-origin source whose lowered value is NOT a destructurable - // shape (`var { x } = 0` — the cast erases to the f64; a dyn - // value — the checked-dynamic tree has no destructure): JS reads the properties off - // whatever the value is (a number answers undefined) — engine - // semantics, the dynamic-family fence. Record and array sources fall - // through to their lowerings, island handles to theirs (--dynamic - // owns this construct), and JS files keep their per-site runtime - // fences unchanged. + // An `any`-origin source needs a represented record or array shape for + // destructuring. JS files retain their per-site runtime fences. if ( lowerer.anyOrigin(decl.initializer) && !isJsSourceFile(decl.getSourceFile()) && init.type.kind !== "record" && - init.type.kind !== "array" && - init.type.kind !== "jsval" + init.type.kind !== "array" ) { lowerer.anyOpFence("destructuring", decl); } @@ -1826,21 +1776,8 @@ export function lowerDestructuringDecl( : `object destructuring of non-record values (the source is '${lowerer.checker.typeToString(lowerer.typeOf(decl.initializer))}'-typed)`, ); } - // PRIMITIVE and unit sources (`let { toString } = 1`, `const [c] = - // "xy"`, `var [] = null`): JS destructures any value by reading - // through its wrapper object — prototype members included — or throws - // its TypeError on null/undefined; both live in the engine. When the - // pattern has an engine form, --dynamic marshals the value in and - // runs the REAL pattern (lowerJsvalBindingPattern); a static build - // reports the dynamic-family choice instead of the dead-end type - // recitation. STRING sources whose pattern the static path claims - // whole (staticStringPattern — code-point positions, `length` - // bindings) skip the gate in STATIC builds: lowerBindingPattern's - // string branches are exact there, and the diagnostic would report a - // dynamic-engine dependency the program does not have. --dynamic - // keeps the engine route for every string pattern — the engine binds - // undefined past the last code point where the static chars array - // inherits the array divergence's trap. + // Primitive destructuring requires JS wrapper coercion. Only string + // patterns fully handled by staticStringPattern have native lowering. if ( (init.type.kind === "f64" || init.type.kind === "bool" || @@ -1848,23 +1785,19 @@ export function lowerDestructuringDecl( isUnitType(init.type)) && !isJsSourceFile(decl.getSourceFile()) && !( - !lowerer.dynamic && init.type.kind === "string" && staticStringPattern(lowerer, decl.name as ts.ArrayBindingPattern | ts.ObjectBindingPattern) - ) && - enginePatternSpec(lowerer, decl.name as ts.ArrayBindingPattern | ts.ObjectBindingPattern) !== - null + ) ) { - if (!lowerer.dynamic) { + { lowerer.pushDiag( - requiresDynamicDiag( - `destructuring '${lowerer.fmt(init.type)}' values (the engine reads through JS's wrapper coercion)`, + unsupportedNativeExecutionDiag( + `destructuring '${lowerer.fmt(init.type)}' values through JavaScript wrapper coercion`, locOf(decl), ), ); throw new PoisonError(); } - init = lowerer.coerceToExpected(init, JSVAL); } const out: IrStmt[] = []; // JS: a union source with exactly ONE destructurable arm beside unit @@ -2936,13 +2869,6 @@ function patternBindingType(lowerer: Lowerer, name: ts.BindingName): IrType | nu ); } -/** The STATIC property name of a destructuring key: identifiers spell - * themselves, string/numeric-literal keys and COMPUTED keys fold through - * foldedStringKeyOf — pure single-name expressions only (`{ [k]: v }` - * where k's checker type spells one property name; tsc late-bound the - * source's field under exactly that name, and pure keys make skipping - * the evaluation exact). Null for runtime-valued keys — the callers - * fence, or route island sources to the engine pattern. */ function patternKeyNameOf(lowerer: Lowerer, prop: ts.PropertyName): string | null { if (ts.isIdentifier(prop) || ts.isPrivateIdentifier(prop)) return prop.text; if (ts.isComputedPropertyName(prop)) return lowerer.foldedStringKeyOf(prop.expression); @@ -3008,16 +2934,6 @@ function checkerStringSource(lowerer: Lowerer, e: ts.Expression): boolean { return stringLike(lowerer.typeOf(e)); } -/** True when a pattern over a STRING source lowers statically whole — - * every element a form the chars-array/wrapper-read desugars carry. - * Array patterns take positions, holes, defaults, rest (a nested rest - * pattern must be an ARRAY pattern — it destructures the packed - * string[]), and nested patterns, whose elements are single code - * points and recurse through this same test. Object patterns take - * `length` bindings — shorthand, renamed, or (dead-)defaulted. - * Anything else — wrapper methods, computed keys, rest over the - * wrapper — keeps the engine gate (--dynamic runs the real pattern; - * a static build reports the dynamic-family choice). */ function staticStringPattern( lowerer: Lowerer, pattern: ts.ArrayBindingPattern | ts.ObjectBindingPattern, @@ -3805,10 +3721,6 @@ function classInstanceRestValue( return { kind: "recordLit", fields, type: restT, loc }; } -/** The fences the island's element-wise object path shares: no rest - * (surplus packing over a handle) and no defaults (an engine undefined - * test) — the static positions now take both through their own - * machinery above. */ export function checkBindingElement( lowerer: Lowerer, el: ts.BindingElement, @@ -3818,364 +3730,18 @@ export function checkBindingElement( lowerer.unsupported( "SC1031", el, - "rest elements in destructuring patterns over island sources", + "rest elements in destructuring patterns over checked-value sources", ); } if (el.initializer && !allowDefault) { - lowerer.unsupported("SC1031", el, "defaults in destructuring positions over island sources"); + lowerer.unsupported( + "SC1031", + el, + "defaults in destructuring positions over checked-value sources", + ); } } -/** The JS source text for a pattern default the ENGINE can evaluate — - * side-effect-free literal data whose value cannot depend on compiled - * scope: numeric/string/boolean/null literals (unary minus included), - * provably-undefined expressions, and array/object literals of those. - * Null for everything else (a default referencing compiled bindings or - * calling functions has no honest engine form). */ -function transportableDefaultText(lowerer: Lowerer, e: ts.Expression): string | null { - while (ts.isParenthesizedExpression(e)) e = e.expression; - if (ts.isNumericLiteral(e)) return e.text; - if ( - ts.isPrefixUnaryExpression(e) && - e.operator === ts.SyntaxKind.MinusToken && - ts.isNumericLiteral(e.operand) - ) { - return `-${e.operand.text}`; - } - if (ts.isStringLiteral(e) || ts.isNoSubstitutionTemplateLiteral(e)) return JSON.stringify(e.text); - if (e.kind === ts.SyntaxKind.TrueKeyword) return "true"; - if (e.kind === ts.SyntaxKind.FalseKeyword) return "false"; - if (e.kind === ts.SyntaxKind.NullKeyword) return "null"; - // Any pure identifier whose CHECKER type is the undefined type holds - // undefined (shadowing included — a value of type undefined is - // undefined). - if (ts.isIdentifier(e) && (lowerer.typeOf(e).flags & ts.TypeFlags.Undefined) !== 0) - return "(void 0)"; - if (ts.isArrayLiteralExpression(e)) { - const parts: string[] = []; - for (const elem of e.elements) { - if (ts.isOmittedExpression(elem)) { - parts.push(""); - continue; - } - const t = transportableDefaultText(lowerer, elem); - if (t === null) return null; - parts.push(t); - } - return `[${parts.join(",")}]`; - } - if (ts.isObjectLiteralExpression(e)) { - const parts: string[] = []; - for (const prop of e.properties) { - if (!ts.isPropertyAssignment(prop)) return null; - let key: string; - if ( - ts.isIdentifier(prop.name) || - ts.isStringLiteral(prop.name) || - ts.isNumericLiteral(prop.name) - ) { - key = JSON.stringify(prop.name.text); - } else { - return null; - } - const t = transportableDefaultText(lowerer, prop.initializer); - if (t === null) return null; - parts.push(`[${key}]:${t}`); - } - return `{${parts.join(",")}}`; - } - return null; -} - -/** A declaration pattern rebuilt as ENGINE source with every bound name - * renamed __0..__n (pattern order): holes, nesting, rest, and - * transportable defaults all survive verbatim, so the engine runs the - * REAL pattern — the iterator protocol on array patterns, - * RequireObjectCoercible on object patterns, JS's own default rule. - * Null when any element has no engine form (computed keys — a compiled - * expression the pattern text cannot carry — or untransportable - * defaults). */ -function enginePatternSpec( - lowerer: Lowerer, - pattern: ts.ArrayBindingPattern | ts.ObjectBindingPattern, -): { text: string; binds: ts.Identifier[]; extras: ts.Expression[] } | null { - const binds: ts.Identifier[] = []; - const extras: ts.Expression[] = []; - // Every name the pattern itself binds, by text: a default referencing - // one is JS's earlier-element-in-scope (or TDZ) rule, which the - // pre-evaluated extras below cannot honor — those defaults have no - // engine form here. - const ownNames = new Set(); - const collectOwn = (p: ts.ArrayBindingPattern | ts.ObjectBindingPattern): void => { - for (const el of p.elements) { - if (ts.isOmittedExpression(el) || el.name === undefined) continue; - if (ts.isIdentifier(el.name)) ownNames.add(el.name.text); - else collectOwn(el.name); - } - }; - collectOwn(pattern); - // A key or default with no literal engine text but a COMPILED-SCOPE - // form the engine can run exactly: - // - a plain identifier the pattern does not itself bind (`{ p: {} = - // a } = a` with `a: any`) passes in as an extra parameter — - // pre-evaluation of a bare variable read is unobservable (no side - // effects, and the engine call is atomic); - // - an identifier bound by an EARLIER element of this pattern spells - // its own temp (`[{ ...a }, b = a]` — the engine's mid-pattern - // scope IS JS's, so the reference reads the just-bound value); - // same-element and later names have no honest form (TDZ vs the - // temps' var-undefined) and bail; - // - a CALL of such an identifier over transportable arguments - // (`{ [order(1)]: x } = order(0)` — the evaluation-order corpus) - // spells the call itself, so the engine runs it at exactly JS's - // pattern position: keys in pattern order, defaults lazily. The - // callee marshals through the host-function trampoline. - // `boundBefore` is the bind count when the current element's key/ - // default began — the earlier-element boundary. - const tempIndexOf = (name: string, boundBefore: number): number => { - for (let i = 0; i < boundBefore; i++) { - if (binds[i]!.text === name) return i; - } - return -1; - }; - const exprText = (init: ts.Expression, boundBefore: number): string | null => { - const t = transportableDefaultText(lowerer, init); - if (t !== null) return t; - let e = init; - while (ts.isParenthesizedExpression(e)) e = e.expression; - if (ts.isIdentifier(e)) { - if (ownNames.has(e.text)) { - const idx = tempIndexOf(e.text, boundBefore); - return idx >= 0 ? `__${idx}` : null; - } - extras.push(e); - return `__d${extras.length - 1}`; - } - if ( - ts.isCallExpression(e) && - !e.questionDotToken && - ts.isIdentifier(e.expression) && - e.typeArguments === undefined - ) { - const callee = exprText(e.expression, boundBefore); - if (callee === null) return null; - const args: string[] = []; - for (const a of e.arguments) { - if (ts.isSpreadElement(a)) return null; - const at = exprText(a, boundBefore); - if (at === null) return null; - args.push(at); - } - return `${callee}(${args.join(",")})`; - } - return null; - }; - const target = (name: ts.BindingName): string | null => { - if (ts.isIdentifier(name)) { - binds.push(name); - return `__${binds.length - 1}`; - } - return build(name); - }; - const build = (p: ts.ArrayBindingPattern | ts.ObjectBindingPattern): string | null => { - if (ts.isArrayBindingPattern(p)) { - const parts: string[] = []; - for (const el of p.elements) { - if (ts.isOmittedExpression(el) || el.name === undefined) { - parts.push(""); - continue; - } - const boundBefore = binds.length; - let sub = target(el.name); - if (sub === null) return null; - if (el.initializer) { - const d = exprText(el.initializer, boundBefore); - if (d === null) return null; - sub = sub + `=${d}`; - } - parts.push(el.dotDotDotToken ? `...${sub}` : sub); - } - return `[${parts.join(",")}]`; - } - const parts: string[] = []; - for (const el of p.elements) { - if (el.name === undefined) continue; - if (el.dotDotDotToken) { - const sub = target(el.name); - if (sub === null) return null; - parts.push(`...${sub}`); - continue; - } - const boundBefore = binds.length; - const prop = el.propertyName ?? el.name; - let key: string | null = null; - if (ts.isIdentifier(prop) || ts.isPrivateIdentifier(prop)) { - key = JSON.stringify(prop.text); - } else if ( - ts.isStringLiteral(prop) || - ts.isNumericLiteral(prop) || - ts.isNoSubstitutionTemplateLiteral(prop) - ) { - key = JSON.stringify(prop.text); - } else if (ts.isComputedPropertyName(prop)) { - // A computed key: a FOLDABLE one (pure single-name expression) - // spells its static name; anything else takes the transportable - // form — extras for compiled-scope identifiers, temps for - // earlier-bound names, calls run at exactly JS's key position - // (pattern order, before the element's read). - const folded = lowerer.foldedStringKeyOf(prop.expression); - key = folded !== null ? JSON.stringify(folded) : exprText(prop.expression, boundBefore); - } - if (key === null) { - return null; // an unfoldable computed key with no engine form - } - let sub = target(el.name); - if (sub === null) return null; - if (el.initializer) { - const d = exprText(el.initializer, boundBefore); - if (d === null) return null; - sub = sub + `=${d}`; - } - parts.push(`[${key}]:${sub}`); - } - return `{${parts.join(",")}}`; - }; - const text = build(pattern); - return text === null ? null : { text, binds, extras }; -} - -/** Declaration-position destructuring over an ISLAND source: the ENGINE - * runs the real pattern — a synthesized strict-mode - * `new Function("v", ...)` exactly like the assignment chain's - * (lowerJsvalDestructuringChain) — and the extracted values bind the - * declared names: a name whose declared type is a primitive exits - * eagerly (the island property-read rule), everything else stays a - * HANDLE whose use sites dispatch to engine ops. Holes, nesting, empty - * patterns (the object coercion check and the array iterator get+close - * both run — destructuring undefined throws Node's TypeError at Node's - * exit), rest, and transportable defaults all ride. False when the - * pattern has no engine form (the caller fences). */ -export function lowerJsvalBindingPattern( - lowerer: Lowerer, - pattern: ts.ArrayBindingPattern | ts.ObjectBindingPattern, - srcRef: () => IrExpr, - isLet: boolean, - out: IrStmt[], -): boolean { - const spec = enginePatternSpec(lowerer, pattern); - if (!spec) return false; - const loc = locOf(pattern); - const temps = spec.binds.map((_, i) => `__${i}`); - const body = - `"use strict";` + - (temps.length > 0 ? `var ${temps.join(",")};` : "") + - `(${spec.text} = v);return [${temps.join(",")}];`; - // Compiled-scope defaults (enginePatternSpec's extras) enter the - // synthesized function as additional parameters __d0..__dn, their - // values evaluated here and marshaled across. - const paramNames = ["v", ...spec.extras.map((_, i) => `__d${i}`)]; - const helper: IrExpr = { - kind: "jsOp", - op: "construct", - args: [ - { kind: "jsOp", op: "globalGet", name: "Function", args: [], type: JSVAL, loc }, - ...paramNames.map((p): IrExpr => ({ - kind: "jsMarshal", - value: { kind: "strLit", value: p, type: STRING, loc }, - type: JSVAL, - loc, - })), - { - kind: "jsMarshal", - value: { kind: "strLit", value: body, type: STRING, loc }, - type: JSVAL, - loc, - }, - ], - type: JSVAL, - loc, - }; - const extraArgs = spec.extras.map((e) => lowerer.jsvalIn(lowerer.lowerExpr(e), e)); - const run: IrExpr = { - kind: "jsOp", - op: "callFn", - args: [helper, srcRef(), ...extraArgs], - type: JSVAL, - loc, - }; - if (spec.binds.length === 0) { - out.push({ kind: "exprStmt", expr: run, loc }); - return true; - } - const res = lowerer.declareHiddenLocal("%dres", JSVAL); - out.push({ kind: "varDecl", localId: res.id, init: run, loc }); - spec.binds.forEach((name, i) => { - const bindLoc = locOf(name); - const read: IrExpr = { - kind: "jsOp", - op: "getIdx", - args: [ - { kind: "varRef", localId: res.id, type: JSVAL, loc: bindLoc }, - { - kind: "jsMarshal", - value: { kind: "numLit", value: i, type: F64, loc: bindLoc }, - type: JSVAL, - loc: bindLoc, - }, - ], - type: JSVAL, - loc: bindLoc, - }; - // The island property-read stance: a name the checker declares as a - // primitive exits eagerly to the static type; everything else stays - // a handle. - const declared = lowerer.mapTypeOf(lowerer.typeOf(name)); - const primitive = - declared && - (declared.kind === "f64" || declared.kind === "bool" || declared.kind === "string"); - const value: IrExpr = primitive - ? { kind: "jsExit", value: read, type: declared, loc: bindLoc } - : read; - const symbol = lowerer.checker.getSymbolAtLocation(name); - const g = symbol ? lowerer.globalsBySymbol.get(symbol) : undefined; - if (g) { - out.push({ - kind: "assign", - localId: g.id, - value: lowerer.coerceInto(name, value, g.type), - ...(g.tdz ? { initializes: true as const } : {}), - loc: bindLoc, - }); - return; - } - if (symbol && hostVariableDeclarationOf(name) !== null && isVarDeclared(name)) { - const hoisted = hoistVarBinding(lowerer, symbol, name); - out.push({ - kind: "assign", - localId: hoisted.id, - value: lowerer.coerceInto(name, value, hoisted.type), - loc: bindLoc, - }); - return; - } - const local = lowerer.declareLocal(name, name.text, value.type, isLet); - out.push({ kind: "varDecl", localId: local.id, init: value, loc: bindLoc }); - }); - return true; -} - -/** Binds one destructured name to its value — the identifier tail of - * lowerVarDecl (module-global assignment for pre-registered file-scope - * names, declareLocal otherwise), or a nested pattern through its own - * hidden temp. */ -/** An island-world ('any'-flavored) checker spelling: bare jsval or an - * array of jsvals (`(string | object)[]` absorbed by its jsval arm) — - * the shapes the runtime-world local rule keeps DYN when the value - * lowered checked-dynamic. */ -function jsvalFlavoredType(t: IrType): boolean { - return t.kind === "jsval" || (t.kind === "array" && t.elem.kind === "jsval"); -} - export function bindPatternTarget( lowerer: Lowerer, name: ts.BindingName, @@ -4214,20 +3780,13 @@ export function bindPatternTarget( }); return; } - // The runtime-world local rule, dyn side (383(d)'s dispatch stance): - // a pattern binding whose VALUE lowered checked-dynamic stays dyn - // where the checker spells an island-world type (`function f({ - // plugins = [] } = {})` over a JSDoc '(string | object)[]=' member — - // the read is a dyn keyed read whose members may be wrapped island - // values) or a type with no mapping at all (the varDecl rule's - // unmappable-declared-type stance, `string | object` bindings - // included). Marshaling here would fence or deep-copy; the value's - // world is the honest dispatch. + // Preserve checked-value pattern bindings when the inferred type + // cannot represent them without a refusal or an alias-breaking copy. const dynStays = value.type.kind === "dyn" && (() => { const mapped = lowerer.mapTypeOf(lowerer.typeOf(name)); - return mapped === null || (lowerer.dynamic && jsvalFlavoredType(mapped)); + return mapped === null; })(); let type = dynStays ? DYN @@ -4389,13 +3948,7 @@ function inferredEvolvingLetType(lowerer: Lowerer, decl: ts.VariableDeclaration) return "stop"; } const mapped = lowerer.mapTypeOf(lowerer.typeOf(node.right)); - if ( - !mapped || - mapped.kind === "dyn" || - mapped.kind === "jsval" || - mapped.kind === "void" || - isUnitType(mapped) - ) { + if (!mapped || mapped.kind === "dyn" || mapped.kind === "void" || isUnitType(mapped)) { invalid = true; return "stop"; } @@ -4679,9 +4232,8 @@ export function lowerVarDecl( // hoisting), and re-running the statement — a declaration inside // a loop — must NOT reset the persisting binding. if (isVarDeclared(decl)) return null; - // Checked-dynamic globals hold the dyn undefined from their - // declaration statement on; unions and jsval ride - // unassignedSlotInit's arms. + // Checked-value globals hold native undefined; typed slots use + // unassignedSlotInit's union arms. const wrapped = g.type.kind === "dyn" ? dynUndefinedExpr(locOf(decl)) @@ -4781,9 +4333,7 @@ export function lowerVarDecl( if (type.kind === "void") lowerer.badType(decl.name, lowerer.typeOf(decl.name)); const local = lowerer.declareLocal(decl.name, decl.name.text, type, isLet); // tsc's definite-assignment analysis never guards `any` reads, so - // uninitialized bindings must hold their world's undefined, never - // NULL: unions the interned arm, dyn the dyn undefined, jsval the - // engine's — all readable immediately, exactly Node. + // uninitialized checked-value bindings must hold native undefined. const init = type.kind === "dyn" ? dynUndefinedExpr(locOf(decl)) @@ -4855,41 +4405,11 @@ export function lowerVarDecl( // `any`, which a static build cannot hold): the VALUE is a dyn // subtree, so the local stays dyn — later narrowing tests and checked // casts read it like any JSON.parse result. - // `const p = import("./m")` / `const ns = await import("./m")`: the - // island promise/handle is the import expression's only production — - // the binding holds it, whatever the checker's namespace type mapped - // to (the island-HANDLE local story). Below that: a never-tainted JS - // binding type (`const cmd = ['pwd', []]` infers (string | never[])[]) + // A binding type (`const cmd = ['pwd', []]` infers (string | never[])[]) // is inference residue, not element information — unmappable, so the // dyn initializer keeps the binding checked-dynamic. const bindingTainted = neverTaintedJsType(lowerer, decl.name, lowerer.typeOf(decl.name)); let type = - (lowerer.dynamic && - (init.type.kind === "jsval" || - (init.type.kind === "promise" && init.type.inner.kind === "jsval")) - ? (importCallHandleType(decl.initializer) ?? - // An unchecked-overload call result (the resolved overload's - // return type was never checked against the jsval-returning - // implementation): the binding stores the handle — see - // uncheckedOverloadHandleCall. - (init.type.kind === "jsval" && uncheckedOverloadHandleCall(lowerer, decl.initializer) - ? JSVAL - : null)) - : null) ?? - // The runtime-world local rule, dyn side (383(d)'s dispatch stance — - // the island-HANDLE local rule's mirror): a binding whose - // INITIALIZER lowered checked-dynamic stays dyn even where the - // checker spells 'any' (`const parsers = options.parsers ?? {}` over - // an 'object'-typed bag — the read is a dyn keyed read). Marshaling - // into the engine here would deep-copy data and sever aliasing; the - // value's world is the honest dispatch, and every use site already - // handles dyn (validated exits, routed engine ops for wrapped - // island members). - (lowerer.dynamic && - init.type.kind === "dyn" && - jsvalFlavoredType(lowerer.mapTypeOf(lowerer.typeOf(decl.name)) ?? DYN) - ? DYN - : null) ?? (bindingTainted ? null : lowerer.mapTypeOf(lowerer.typeOf(decl.name))) ?? staticImportNamespaceType(lowerer, decl.initializer) ?? (init.type.kind === "moduleNs" ? init.type : null) ?? @@ -5102,7 +4622,6 @@ export function lowerVarDecl( (type === null && isJsSourceFile(decl.getSourceFile()))) && init.type.kind !== "void" && init.type.kind !== "caught" && - init.type.kind !== "jsval" && !isUnitType(init.type) ) { type = init.type; @@ -5186,42 +4705,7 @@ export function lowerVarDecl( settledType = unitOnlyUnion(lowerer.unions); } if (settledType.kind === "void") lowerer.badType(decl.name, lowerer.typeOf(decl.name)); - // A PACKAGE promise stored in a local stays an island HANDLE — the - // engine's promise has no static promise value to coerce into. Awaits - // and .catch/.finally chains on the local bridge per use site (each - // bridge is an independent observer of the same settlement). - if (init.type.kind === "jsval" && settledType.kind === "promise") settledType = JSVAL; - // An island value under an `any[]`-declared LOCAL spelling stays an - // island HANDLE too (the runtime-world rule): the jsval-element-array - // exit is a CALL-boundary conversion (the loadPlugins param ABI) — - // converting a local would strand the engine's own prototypes - // (join/map/... on a native handle-element array), where the handle - // routes every use engine-side. - if ( - init.type.kind === "jsval" && - settledType.kind === "array" && - settledType.elem.kind === "jsval" - ) { - settledType = JSVAL; - } - // A STATIC array of island HANDLES under an unannotated declared type - // spelling evolved elements (`const kept = fns.filter(...)` over an - // evolving-`any` receiver — the handle-element lowering keeps the - // elements jsval, while tsc's evolving-array analysis types the - // result by the pushed elements): the value's element type is the - // truth, so the binding keeps the handle-element array (the - // island-HANDLE local story, one level down) and later method calls - // ride the handle-element lowering. Explicit annotations keep the - // validated-boundary fence. - if ( - !decl.type && - init.type.kind === "array" && - init.type.elem.kind === "jsval" && - settledType.kind === "array" && - settledType.elem.kind !== "jsval" - ) { - settledType = init.type; - } + // `const runner = options.runner || defaultRunner`: the checker types // the || as the union/merge of two structurally-compatible function // types — a signature whose RETURN is the arms' union, or the @@ -6581,7 +6065,7 @@ export function lowerExprStatement(lowerer: Lowerer, expr: ts.Expression): IrStm lowerer.unsupported( "SC1090", expr.left.expression, - "writing the length of an array-typed value that remains an island handle", + "writing the length of an array-typed value without native array storage", ); } const length = lowerer.lowerExprExpecting(expr.right, F64); @@ -6620,51 +6104,7 @@ export function lowerExprStatement(lowerer: Lowerer, expr: ts.Expression): IrStm // this method's own `this` — super dispatch is static in JS. return lowerer.lowerSuperAccessorWrite(expr.left, expr.right, locOf(expr)); } - if (lowerer.isIslandExpr(expr.left.expression)) { - // o.x = v on an island receiver: engine property write; the - // value marshals in (a static RHS crosses by value/copy). - const obj = lowerer.lowerExpr(expr.left.expression); - const loc = locOf(expr); - // Dispatch follows the RUNTIME world (383(d)): a checker-'any' - // receiver whose value LOWERED checked-dynamic (`bag.nested.x - // = v` behind an 'object'-typed bag) takes the dyn keyed - // write — the routed JSVAL arm lands it on the real engine - // object. - if (obj.type.kind === "dyn") { - const key: IrExpr = { - kind: "strLit", - value: expr.left.name.text, - type: STRING, - loc: locOf(expr.left.name), - }; - const value = lowerer.coerceToExpected(lowerer.lowerExpr(expr.right), DYN); - if (value.type.kind !== "dyn") { - lowerer.unsupported( - "SC1100", - expr.right, - `assigning '${lowerer.fmt(value.type)}' values through 'unknown' receivers`, - ); - } - return { - kind: "exprStmt", - expr: { kind: "libCall", fn: "dyn.keySet", args: [obj, key, value], type: VOID, loc }, - loc, - }; - } - const value = lowerer.jsvalIn(lowerer.lowerExpr(expr.right), expr.right); - return { - kind: "exprStmt", - expr: { - kind: "jsOp", - op: "setProp", - name: expr.left.name.text, - args: [obj, value], - type: VOID, - loc, - }, - loc, - }; - } + // wrapper.close = fn — the net.Server close-override idiom // (routed to lower-server; the generic fences stay for // everything else). @@ -7021,14 +6461,6 @@ export function lowerExprStatement(lowerer: Lowerer, expr: ts.Expression): IrStm } } if (ts.isObjectLiteralExpression(expr.left) || ts.isArrayLiteralExpression(expr.left)) { - // Destructuring assignment (chains included) whose SOURCE is an - // island value: the ENGINE runs the pattern (JS-exact coercions - // — RequireObjectCoercible on object patterns, the iterator - // protocol on array patterns) and hands the extracted values - // back for the compiled targets. Static sources fall through to - // the general assignment lowering below. - const viaIsland = lowerJsvalDestructuringChain(lowerer, expr); - if (viaIsland) return viaIsland; // Destructuring ASSIGNMENT to existing bindings: // `({ dir, port } = await discoverState());`, `[a, b = 0, ...rest] = t` — // the RHS evaluates once into a hidden temp, then each target @@ -7249,210 +6681,6 @@ function lowerCompoundToTarget( }; } -/** One destructuring-assignment pattern the island can run: empty object/ - * array patterns and flat identifier targets — shorthand `{ x }`, - * renamed `{ a: x }`, FOLDED computed keys `{ [k]: x }` (2105's - * static-fold rule: a pure key expression whose checker type spells one - * property name — skipping its evaluation is exact), array elements - * `[x, y]`. Answers the source FIELD key (object patterns) and the - * target identifier per binding, in pattern order; null for any other - * pattern form (defaults, rest, nesting, holes, non-identifier targets, - * runtime-valued keys — the existing fences own those). */ -function islandRunnablePattern( - lowerer: Lowerer, - pattern: ts.ObjectLiteralExpression | ts.ArrayLiteralExpression, -): { - kind: "object" | "array"; - binds: { - field: string | number; - target: ts.Identifier; - shorthand: ts.ShorthandPropertyAssignment | null; - }[]; -} | null { - if (ts.isObjectLiteralExpression(pattern)) { - const binds: { - field: string | number; - target: ts.Identifier; - shorthand: ts.ShorthandPropertyAssignment | null; - }[] = []; - for (const prop of pattern.properties) { - if (ts.isShorthandPropertyAssignment(prop)) { - if (prop.objectAssignmentInitializer) return null; - // 7 types the shorthand's name as PropertyName; the grammar - // allows nothing but an Identifier there (lowerShorthandValue). - const name = prop.name as ts.Identifier; - binds.push({ field: name.text, target: name, shorthand: prop }); - } else if ( - ts.isPropertyAssignment(prop) && - ts.isIdentifier(prop.name) && - ts.isIdentifier(prop.initializer) - ) { - binds.push({ field: prop.name.text, target: prop.initializer, shorthand: null }); - } else if ( - ts.isPropertyAssignment(prop) && - ts.isComputedPropertyName(prop.name) && - ts.isIdentifier(prop.initializer) - ) { - const key = lowerer.foldedStringKeyOf(prop.name.expression); - if (key === null) return null; - binds.push({ field: key, target: prop.initializer, shorthand: null }); - } else { - return null; - } - } - return { kind: "object", binds }; - } - const binds: { field: string | number; target: ts.Identifier; shorthand: null }[] = []; - for (let i = 0; i < pattern.elements.length; i++) { - const el = pattern.elements[i]!; - if (!ts.isIdentifier(el)) return null; // holes, spreads, nesting - binds.push({ field: i, target: el, shorthand: null }); - } - return { kind: "array", binds }; -} - -/** `({} = {x, y} = a);` — destructuring assignment (chains included) from - * an ISLAND source, statement position (--dynamic). The ENGINE runs each - * pattern over the source value — a synthesized - * `new Function("v", "\"use strict\"; var __0…; ( = v); return [__0…]")` - * — so the coercions are JS-exact: object patterns RequireObjectCoercible - * (destructuring undefined throws Node's TypeError), array patterns run - * the real iterator protocol (empty patterns get-and-close). The - * extracted values come back as an engine array and assign the compiled - * targets in pattern order, inner assignment first (JS's right- - * associativity). Null when the innermost source is not jsval-typed or - * any pattern is outside the island-runnable set — the existing - * record-source path and fences own those. */ -function lowerJsvalDestructuringChain(lowerer: Lowerer, expr: ts.BinaryExpression): IrStmt | null { - if (!lowerer.dynamic) return null; - const strip = (e: ts.Expression): ts.Expression => { - while (ts.isParenthesizedExpression(e)) e = e.expression; - return e; - }; - const patterns: (ts.ObjectLiteralExpression | ts.ArrayLiteralExpression)[] = []; - let node: ts.Expression = expr; - for (;;) { - const s = strip(node); - if ( - ts.isBinaryExpression(s) && - s.operatorToken.kind === ts.SyntaxKind.EqualsToken && - (ts.isObjectLiteralExpression(strip(s.left)) || ts.isArrayLiteralExpression(strip(s.left))) - ) { - patterns.push(strip(s.left) as ts.ObjectLiteralExpression | ts.ArrayLiteralExpression); - node = s.right; - } else { - break; - } - } - if (patterns.length === 0) return null; - // A single pattern over a PLAIN-VARIABLE island source takes the - // general assignment lowering below, whose island arm throws V8's - // exact destructure TypeErrors — the spelling embeds the source - // text, which only a plain variable survives (corpus 2074). Chains - // and non-variable sources ride the engine here (corpus 2054); the - // general path fences those with SC1031. - if (patterns.length === 1 && ts.isIdentifier(strip(node))) return null; - const shapes: NonNullable>[] = []; - for (const p of patterns) { - const s = islandRunnablePattern(lowerer, p); - if (!s) return null; - shapes.push(s); - } - // Checker-type gate BEFORE lowering the source (a declined claim must - // not leave a discarded lowering behind): only island sources ride - // the engine; record/array sources keep their existing paths. - if (lowerer.mapTypeOf(lowerer.typeOf(node))?.kind !== "jsval") return null; - const source = lowerer.lowerExpr(node); - if (source.type.kind !== "jsval") return null; - const loc = locOf(expr); - const tmp = lowerer.declareHiddenLocal("%dsrc", JSVAL); - const out: IrStmt[] = [{ kind: "varDecl", localId: tmp.id, init: source, loc }]; - const srcRef = (): IrExpr => ({ kind: "varRef", localId: tmp.id, type: JSVAL, loc }); - // Inner pattern first: `A = B = v` runs B's destructure before A's. - for (let p = patterns.length - 1; p >= 0; p--) { - const shape = shapes[p]!; - const temps = shape.binds.map((_, i) => `__${i}`); - const patternSrc = - shape.kind === "object" - ? `({${shape.binds.map((b, i) => `[${JSON.stringify(String(b.field))}]: __${i}`).join(",")}} = v)` - : `([${temps.join(",")}] = v)`; - const body = - `"use strict";` + - (temps.length > 0 ? `var ${temps.join(",")};` : "") + - `${patternSrc};return [${temps.join(",")}];`; - const helper: IrExpr = { - kind: "jsOp", - op: "construct", - args: [ - { kind: "jsOp", op: "globalGet", name: "Function", args: [], type: JSVAL, loc }, - { - kind: "jsMarshal", - value: { kind: "strLit", value: "v", type: STRING, loc }, - type: JSVAL, - loc, - }, - { - kind: "jsMarshal", - value: { kind: "strLit", value: body, type: STRING, loc }, - type: JSVAL, - loc, - }, - ], - type: JSVAL, - loc, - }; - const run: IrExpr = { kind: "jsOp", op: "callFn", args: [helper, srcRef()], type: JSVAL, loc }; - if (shape.binds.length === 0) { - out.push({ kind: "exprStmt", expr: run, loc }); - continue; - } - const res = lowerer.declareHiddenLocal("%dres", JSVAL); - out.push({ kind: "varDecl", localId: res.id, init: run, loc }); - shape.binds.forEach((b, i) => { - // Shorthand names resolve to the PROPERTY symbol at their - // location; the VALUE symbol comes from the checker's shorthand - // query (lowerDestructuringAssign's rule). - let target: { id: string; type: IrType } | null; - if (b.shorthand) { - const valueSymbol = lowerer.checker.getShorthandAssignmentValueSymbol(b.shorthand) ?? null; - const local = valueSymbol ? lowerer.resolveKey(valueSymbol, b.target) : null; - const g = valueSymbol ? lowerer.globalsBySymbol.get(valueSymbol) : undefined; - target = local ? { id: local.id, type: local.type } : g ? { id: g.id, type: g.type } : null; - } else { - target = lowerer.resolveWritable(b.target); - } - if (!target) { - lowerer.rejectUnresolved( - b.target, - `assignment to '${b.target.text}' (not a writable local or module global)`, - ); - } - const read: IrExpr = { - kind: "jsOp", - op: "getIdx", - args: [ - { kind: "varRef", localId: res.id, type: JSVAL, loc }, - { - kind: "jsMarshal", - value: { kind: "numLit", value: i, type: F64, loc }, - type: JSVAL, - loc, - }, - ], - type: JSVAL, - loc, - }; - out.push({ - kind: "assign", - localId: target.id, - value: lowerer.coerceInto(b.target, read, target.type), - loc, - }); - }); - } - return { kind: "block", body: out, loc }; -} - /** `({ a, b: x } = e);`, `[a, b = 0, ...rest] = xs;` — destructuring * assignment to EXISTING writable bindings, statement position, from a * PRE-LOWERED source: for-of expression heads hand the per-iteration @@ -7597,12 +6825,11 @@ function destructuringAssignInto( lowerArrayAssignInto(lowerer, out, target, tmpRef, blame, loc); return { stmts: out, value }; } - if (init.type.kind === "dyn" || init.type.kind === "jsval") { - // Checked-dynamic and island sources: RequireObjectCoercible with + if (init.type.kind === "dyn") { // V8's exact destructuring TypeError (it names the SOURCE and, for // non-empty patterns, the first property), then keyed reads — GetV - // answers undefined for absent members and primitive receivers - // alike (the engine's own property semantics on the island side). + // answers undefined for absent members and primitive receivers. + // An RHS that is ITSELF a destructuring assignment (`({} = {x} = a)`) // already proved the value coercible — its own pattern threw first // if it wasn't — so the outer check is dead code and needs no @@ -7648,32 +6875,14 @@ function destructuringAssignInto( }); } for (const prop of target.properties) { - const piece = destructAssignPiece(lowerer, prop, init.type.kind === "jsval"); - const read: IrExpr = - piece.keyExpr !== undefined - ? { - kind: "jsOp", - op: "getIdx", - args: [tmpRef(), lowerer.jsvalIn(lowerer.lowerExpr(piece.keyExpr), piece.keyExpr)], - type: JSVAL, - loc: locOf(prop), - } - : init.type.kind === "jsval" - ? { - kind: "jsOp", - op: "getProp", - name: piece.field, - args: [tmpRef()], - type: JSVAL, - loc: locOf(prop), - } - : { - kind: "dynKeyGet", - key: { kind: "strLit", value: piece.field, type: STRING, loc: locOf(prop) }, - value: tmpRef(), - type: DYN, - loc: locOf(prop), - }; + const piece = destructAssignPiece(lowerer, prop); + const read: IrExpr = { + kind: "dynKeyGet", + key: { kind: "strLit", value: piece.field, type: STRING, loc: locOf(prop) }, + value: tmpRef(), + type: DYN, + loc: locOf(prop), + }; out.push({ kind: "assign", localId: piece.target.id, @@ -8110,21 +7319,6 @@ function destructuringAssignInto( return { stmts: out, value }; } -/** A destructuring-ASSIGNMENT target that is not a plain variable: - * PROPERTY targets (`({ a: this.x } = o)`, `[c.x, c.y] = t` — the - * receiver evaluates into a hidden temp at the element's pattern - * position, BEFORE the element's value read, JS's get-the-reference- - * then-GetV order), ELEMENT targets over arrays (runtime f64 index) - * and tuples/records (literal keys) with the same receiver/key temp - * discipline, and NESTED patterns (`({ p: { q } } = o)`, `[[a], b] = t` - * — the element's value destructures through the same assignment - * machinery, its own hidden temp included). `valueOf` builds the - * (defaulted) source value at the target's own type; it receives null - * exactly for nested patterns, which have no single binding type — - * defaults there keep a fence (JS would need the pattern's implied - * type to test against). Optional-chain targets are not assignment - * targets in JS at all; index-signature runtime keys and island/dyn - * receivers keep the fence below. */ function lowerAssignTargetInto( lowerer: Lowerer, out: IrStmt[], @@ -8233,18 +7427,11 @@ function lowerAssignTargetInto( ); } -/** One object-pattern property's pieces for the checked-dynamic path: - * the source FIELD name (or, over ISLAND sources, a runtime KEY - * expression the engine indexes with) and the resolved writable target. - * Shorthand (`{ a }`) and renamed (`{ a: x }`) identifier targets only — - * the record path's rules, shared fences. */ function destructAssignPiece( lowerer: Lowerer, prop: ts.ObjectLiteralElementLike, - islandSource: boolean, -): { field: string; keyExpr?: ts.Expression; target: { id: string; type: IrType } } { +): { field: string; target: { id: string; type: IrType } } { let fieldName: string; - let keyExpr: ts.Expression | undefined; let bindTo: ts.Expression; if (ts.isShorthandPropertyAssignment(prop)) { if (prop.objectAssignmentInitializer) { @@ -8257,23 +7444,14 @@ function destructAssignPiece( fieldName = (prop.name as ts.Identifier).text; bindTo = prop.name as ts.Identifier; } else if (ts.isPropertyAssignment(prop)) { - // Identifier keys spell themselves; literal and FOLDABLE computed - // keys resolve statically (the record path's rule) — the keyed read - // below takes the folded name. A RUNTIME-valued key over an ISLAND - // source reads through the engine's own indexing at the element's - // pattern position (`({ [key]: w } = src)`); over the checked-dynamic tree the fence - // stays. + // Identifier, literal, and foldable computed keys resolve statically. const folded = patternKeyNameOf(lowerer, prop.name); if (folded === null) { - if (islandSource && ts.isComputedPropertyName(prop.name)) { - keyExpr = prop.name.expression; - } else { - lowerer.unsupported( - "SC1031", - prop, - "destructuring assignment with computed keys that do not fold to one property name", - ); - } + lowerer.unsupported( + "SC1031", + prop, + "destructuring assignment with computed keys that do not fold to one property name", + ); } fieldName = folded ?? ""; bindTo = prop.initializer; @@ -8302,7 +7480,7 @@ function destructAssignPiece( `assignment to '${bindTo.text}' (not a writable local or module global)`, ); } - return { field: fieldName, ...(keyExpr !== undefined ? { keyExpr } : {}), target }; + return { field: fieldName, target }; } /** The ARRAY half of destructuring assignment: element assigns from a @@ -8359,10 +7537,9 @@ function lowerArrayAssignInto( const shape = srcType.kind === "record" ? lowerer.shapes.get(srcType.shapeId) : undefined; const isTuple = shape?.tuple === true; let elemsRef: (() => IrExpr) | null = null; - if (srcType.kind === "dyn" || srcType.kind === "jsval") { - // GetIterator + the pattern's width, V8's exact TypeErrors - // (dynIterN — the engine's real iterator protocol on the island - // side); the empty pattern is pure validation. + if (srcType.kind === "dyn") { + // Read the pattern's width through the native iterator with Node's + // TypeErrors. The empty pattern only validates iterability. const iterTmp = lowerer.declareHiddenLocal("%destrIter", srcType); out.push({ kind: "varDecl", @@ -8390,16 +7567,7 @@ function lowerArrayAssignInto( const elemRead = (i: number, at: ts.Node): IrExpr => { if (elemsRef) { const elems = elemsRef(); - if (elems.type.kind === "jsval") { - const key: IrExpr = { kind: "numLit", value: i, type: F64, loc: locOf(at) }; - return { - kind: "jsOp", - op: "getIdx", - args: [elems, lowerer.jsvalIn(key, at as ts.Expression)], - type: JSVAL, - loc: locOf(at), - }; - } + return { kind: "dynKeyGet", key: { kind: "strLit", value: String(i), type: STRING, loc: locOf(at) }, @@ -8448,8 +7616,8 @@ function lowerArrayAssignInto( if (ts.isSpreadElement(el)) { // `[a, ...rest]`: the tail packs FRESH (JS's surplus packing // builds a new array) — array slices, tuple tails under the - // target's own type. Checked-dynamic sources keep the fence (the - // engine's iterator would have to drain into a compiled array). + // target's own type. Checked-value sources keep the fence because + // this path has no native array drain. if (elemsRef) { lowerer.unsupported( "SC1031", @@ -8520,7 +7688,7 @@ function lowerArrayAssignInto( // undefined where the plain read would trap). let read = elemRead(i, el); if (defaultNode !== null) { - if (read.type.kind === "dyn" || read.type.kind === "jsval") { + if (read.type.kind === "dyn") { const boundary = read.type; const elemTmp = lowerer.declareHiddenLocal("%destrElem", boundary); out.push({ kind: "varDecl", localId: elemTmp.id, init: read, loc: locOf(el) }); @@ -8530,33 +7698,18 @@ function lowerArrayAssignInto( type: boundary, loc: locOf(el), }); - const isUndef: IrExpr = - boundary.kind === "jsval" - ? { - kind: "jsOp", - op: "eq", - args: [ - elemVar(), - { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc: locOf(el) }, - ], - type: BOOL, - loc: locOf(el), - } - : { - kind: "dynTest", - test: "undefined", - value: elemVar(), - type: BOOL, - loc: locOf(el), - }; + const isUndef: IrExpr = { + kind: "dynTest", + test: "undefined", + value: elemVar(), + type: BOOL, + loc: locOf(el), + }; const dflt = lowerer.lowerExpr(defaultNode); read = { kind: "ternary", cond: isUndef, - then: - boundary.kind === "jsval" - ? lowerer.jsvalIn(dflt, defaultNode) - : lowerer.coerceInto(defaultNode, dflt, DYN), + then: lowerer.coerceInto(defaultNode, dflt, DYN), else_: elemVar(), type: boundary, loc: locOf(el), @@ -8916,19 +8069,10 @@ export function lowerForOf(lowerer: Lowerer, stmt: ts.ForOfStatement): IrStmt { } tupleSource = { shapeId: iterable.type.shapeId, fields, elem }; } - // An ISLAND value (`for (const store of stores)` where stores is a - // package-typed array — one engine handle): the engine's OWN - // iterator protocol drives the loop — GetIterator through the - // pinned prelude helper (V8's not-iterable TypeError on refusal), - // next() through callMethod, done/value reads through getProp — so - // engine arrays, Maps, Sets, generators, and Symbol.iterator - // implementations all iterate exactly as Node runs them. - if (iterable.type.kind === "jsval") { - return lowerForOfIsland(lowerer, stmt, iterable, labels); - } + // A CHECKED-DYNAMIC iterable (`unknown[]`, the collapsed - // `(string | object)[]`, JSON-parsed values, wrapped engine - // values): a checked IteratorRecord binds each yielded dyn value. + // `(string | object)[]`, JSON-parsed values): a checked IteratorRecord + // binds each yielded dyn value. if (iterable.type.kind === "dyn") { return lowerForOfDyn(lowerer, stmt, iterable, labels); } @@ -8945,7 +8089,6 @@ export function lowerForOf(lowerer: Lowerer, stmt: ts.ForOfStatement): IrStmt { !privateSplit && !awaitArray && elementType.kind !== "dyn" && - elementType.kind !== "jsval" && lowerer.presentElementLoops.has(stmt); const yieldedT = tupleSource === null && !privateSplit && !presentElements @@ -8991,7 +8134,7 @@ export function lowerForOf(lowerer: Lowerer, stmt: ts.ForOfStatement): IrStmt { if ( promiseElem && yieldedT.kind === "union" && - !["void", "union", "dyn", "jsval", "undefinedT", "nullT"].includes(promiseElem.inner.kind) + !["void", "union", "dyn", "undefinedT", "nullT"].includes(promiseElem.inner.kind) ) { awaitPromiseTag = lowerer.armTag(yieldedT.unionId, promiseElem); elemValueT = lowerer.withUndefinedArm(promiseElem.inner); @@ -10196,140 +9339,6 @@ function lowerForOfDyn( } } -/** for-of over an ISLAND value (see lowerForOf's jsval arm): the - * engine's iterator protocol desugared over jsOps — - * - * it = iterNew(v); // GetIterator (prelude; may throw) - * while (true) { - * r = it.next(); // callMethod - * if (truthy(r.done)) break; - * // getProp - * ...body - * } - * - * The loop variable's ELEMENT is an island handle (jsval — exactly what - * the checker's package-typed element maps to); identifier heads bind - * it per iteration, destructuring heads run the jsval pattern desugar, - * pre-declared and var heads keep their fences (the array path's - * stories don't carry over mechanically). IteratorClose on early exit - * (break/return out of a partial iteration calling it.return()) is NOT - * run — a divergence only a custom island iterator with a return() - * method can observe. */ -function lowerForOfIsland( - lowerer: Lowerer, - stmt: ts.ForOfStatement, - iterable: IrExpr, - labels?: string[], -): IrStmt { - const loc = locOf(stmt); - if (!ts.isVariableDeclarationList(stmt.initializer)) { - lowerer.unsupported( - "SC1090", - stmt.initializer, - "for-of over a package ('any') iterable with a pre-declared loop variable (declare it in the loop: for (const x of ...))", - ); - } - const list = stmt.initializer; - if ((list.flags & ts.NodeFlags.Using) !== 0) { - lowerer.unsupported("SC1090", list, "'using' declarations (dispose-at-scope-exit semantics)"); - } - const isLet = - (list.flags & ts.NodeFlags.Let) !== 0 || (list.flags & ts.NodeFlags.BlockScoped) === 0; - const decl = list.declarations[0]!; - const itLocal = lowerer.declareHiddenLocal("%vofit", JSVAL); - const rLocal = lowerer.declareHiddenLocal("%vofr", JSVAL); - const itRef: IrExpr = { kind: "varRef", localId: itLocal.id, type: JSVAL, loc }; - const rRef: IrExpr = { kind: "varRef", localId: rLocal.id, type: JSVAL, loc }; - const valueOf: IrExpr = { - kind: "jsOp", - op: "getProp", - name: "value", - args: [rRef], - type: JSVAL, - loc, - }; - lowerer.scopes.push(new Map()); - try { - const binds: IrStmt[] = []; - if (ts.isArrayBindingPattern(decl.name) || ts.isObjectBindingPattern(decl.name)) { - const tmp = lowerer.declareHiddenLocal("%destr", JSVAL); - binds.push({ kind: "varDecl", localId: tmp.id, init: valueOf, loc }); - lowerer.lowerBindingPattern( - decl.name, - () => ({ kind: "varRef", localId: tmp.id, type: JSVAL, loc }), - JSVAL, - isLet, - binds, - ); - } else if (ts.isIdentifier(decl.name)) { - if (forOfVarTarget(lowerer, decl)) { - lowerer.unsupported( - "SC1090", - decl.name, - "for (var x of ...) over a package ('any') iterable (use const or let)", - ); - } - const local = lowerer.declareLocal(decl.name, decl.name.text, JSVAL, isLet); - binds.push({ kind: "varDecl", localId: local.id, init: valueOf, loc }); - } else { - lowerer.unsupported("SC1031", decl.name); - } - const body = lowerer.inCtl("loop", () => lowerer.lowerScopedBlock(stmt.statement), labels); - return { - kind: "block", - body: [ - { - kind: "varDecl", - localId: itLocal.id, - init: { kind: "jsOp", op: "iterNew", args: [iterable], type: JSVAL, loc }, - loc, - }, - { - kind: "while", - cond: { kind: "boolLit", value: true, type: BOOL, loc }, - body: [ - { - kind: "varDecl", - localId: rLocal.id, - init: { - kind: "jsOp", - op: "callMethod", - name: "next", - args: [itRef], - type: JSVAL, - loc, - }, - loc, - }, - { - kind: "if", - cond: { - kind: "jsOp", - op: "truthy", - args: [ - { kind: "jsOp", op: "getProp", name: "done", args: [rRef], type: JSVAL, loc }, - ], - type: BOOL, - loc, - }, - then: [{ kind: "break", loc }], - else_: null, - loc, - }, - ...binds, - ...body, - ], - ...(labels && { labels }), - loc, - }, - ], - loc, - }; - } finally { - lowerer.scopes.pop(); - } -} - function lowerForOfString( lowerer: Lowerer, stmt: ts.ForOfStatement, diff --git a/packages/compiler/src/frontend/lowering/lower-stream.ts b/packages/compiler/src/frontend/lowering/lower-stream.ts index b78204dfc..cd38c56ae 100644 --- a/packages/compiler/src/frontend/lowering/lower-stream.ts +++ b/packages/compiler/src/frontend/lowering/lower-stream.ts @@ -1660,11 +1660,7 @@ export function lowerStreamModuleCall( const argV = lowerer.lowerExpr(args[0]!); const argInfo = argV.type.kind === "object" ? lowerer.classes.get(argV.type.className) : undefined; - if ( - argV.type.kind !== "dyn" && - argV.type.kind !== "jsval" && - !streamSidesOf(lowerer, argInfo) - ) { + if (argV.type.kind !== "dyn" && !streamSidesOf(lowerer, argInfo)) { lowerer.noLowering( `stream/consumers.${bi.member} over a value that is not a stream`, call, diff --git a/packages/compiler/src/frontend/lowering/lowerer.test.ts b/packages/compiler/src/frontend/lowering/lowerer.test.ts index 8056f0f49..093c78632 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.test.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.test.ts @@ -1,86 +1,21 @@ import { expect, test, vi } from "vitest"; import { - BOOL, F64, - JSVAL, NULL_T, STRING, UNDEFINED_T, VOID, - type IrExpr, type IrFunction, - type IrStmt, type IrType, } from "../../ir/ir.js"; import type { Node, Program, SourceFile, Symbol, Type } from "../ts7/adapter.js"; -import { Lowerer, stmtUsesIsland } from "./lowerer.js"; +import { Lowerer } from "./lowerer.js"; import { classMethodValue } from "./class-method-values.js"; const loc = { file: "island.ts", start: 0, end: 1 }; -const island: IrExpr = { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc }; -const statement: IrStmt = { kind: "exprStmt", expr: island, loc }; - -test("accounts only the expressions owned by the current source statement", () => { - expect(stmtUsesIsland(statement)).toBe(true); - expect(stmtUsesIsland([statement])).toBe(true); - expect(stmtUsesIsland({ kind: "block", body: [statement], loc })).toBe(false); - expect( - stmtUsesIsland({ - kind: "if", - cond: { kind: "boolLit", value: true, type: BOOL, loc }, - then: [statement], - else_: null, - loc, - }), - ).toBe(false); - expect( - stmtUsesIsland({ - kind: "if", - cond: { kind: "jsExit", value: island, type: BOOL, loc }, - then: [], - else_: null, - loc, - }), - ).toBe(true); -}); - -test("inspects expression results without recounting embedded statement lists", () => { - const expr: IrExpr = { - kind: "seqExpr", - stmts: [statement], - result: { kind: "numLit", value: 0, type: F64, loc }, - type: F64, - loc, - }; - expect(stmtUsesIsland({ kind: "exprStmt", expr, loc })).toBe(false); - expr.result = { kind: "jsExit", value: island, type: F64, loc }; - expect(stmtUsesIsland({ kind: "exprStmt", expr, loc })).toBe(true); -}); - -test("retains accounting for island library calls and generated loop conditions", () => { - const call: IrExpr = { kind: "libCall", fn: "island.eval", args: [], type: JSVAL, loc }; - const loop: IrStmt = { - kind: "for", - init: null, - cond: { kind: "jsExit", value: call, type: BOOL, loc }, - update: null, - body: [], - loc, - }; - expect(stmtUsesIsland({ kind: "block", body: [loop], loc })).toBe(true); - expect( - stmtUsesIsland({ kind: "exprStmt", expr: { kind: "numLit", value: 1, type: F64, loc }, loc }), - ).toBe(false); -}); - const record = (shapeId: string): IrType => ({ kind: "record", shapeId }); const context = () => - new Lowerer( - { getTypeChecker: () => ({}) } as Program, - { fileName: loc.file } as SourceFile, - [], - false, - ); + new Lowerer({ getTypeChecker: () => ({}) } as Program, { fileName: loc.file } as SourceFile, []); test("reuses complete copy routes without repeating discriminator planning", () => { const lowerer = context(); @@ -303,7 +238,6 @@ test("optional union widening keeps refused and missing contracts current", () = expect(lowerer.unions.intern([F64, STRING])).toBe(missing.unionId); expect(lowerer.withUndefinedArmOf(missing)?.kind).toBe("union"); expect(lowerer.withUndefinedArmOf(VOID)).toBeNull(); - expect(lowerer.withUndefinedArmOf(JSVAL)).toBe(JSVAL); }); test("stdlib provenance is cached by symbol identity, including merged and shadowed declarations", () => { @@ -320,7 +254,6 @@ test("stdlib provenance is cached by symbol identity, including merged and shado { getTypeChecker: () => ({ declarationsOf }) } as unknown as Program, userFile, [], - false, ); vi.spyOn(lowerer, "isStdlibFile").mockImplementation((file) => file === library); for (let i = 0; i < 20; i++) { diff --git a/packages/compiler/src/frontend/lowering/lowerer.ts b/packages/compiler/src/frontend/lowering/lowerer.ts index 028afebc2..b7761d813 100644 --- a/packages/compiler/src/frontend/lowering/lowerer.ts +++ b/packages/compiler/src/frontend/lowering/lowerer.ts @@ -55,20 +55,12 @@ import { checkedNarrowOperand, deferredReadHelper, } from "./coercions/unions.js"; -import { - jsvalLiftable, - jsvalLiftExpr, - unionToJsvalHelper, - recordToJsvalHelper, - arrayToJsvalHelper, - arrayToJsvalArrayHelper, -} from "./coercions/island.js"; import { lowerUtilTypeValue, pathModuleValue, utilTypesModuleValue, } from "./lower-builtin-values.js"; -import { everyExprChild, everyStmtChild, transformStmtList } from "../../ir/traverse.js"; +import { transformStmtList } from "../../ir/traverse.js"; import { RuntimeOptionalProvenance } from "./runtime-optional-provenance.js"; import { presentAtUse, reassignedBindings } from "./runtime-optional-guards.js"; import { NarrowingStability } from "./narrowing-stability.js"; @@ -122,7 +114,7 @@ import { literalValues } from "../literal-values.js"; import { discriminantOwners, literalUnionArm, type UnionLiteral } from "../union-discriminants.js"; import type { ScrDiagnostic } from "../../diagnostics/diagnostic.js"; import { - anyOpRequiresDynamicDiag, + unsupportedAnyOperationDiag, blockedBindingUseDiag, checkerPanicDiag, componentTypeDiag, @@ -133,9 +125,8 @@ import { noLoweringDiag, overloadedSignatureTypeDiag, recordShapeMismatchDiag, - requiresDynamicApiDiag, - requiresDynamicPackageDiag, - requiresDynamicTypeDiag, + unsupportedNativeApiDiag, + unsupportedPackageValueDiag, unionMismatchDiag, UNSUPPORTED, unsupportedDiag, @@ -162,9 +153,6 @@ import { canAdaptDynFuncTo, canDynCheckTo, canConvertToDyn, - canCrossIslandBoundary, - canExitIslandToType, - canMarshalTypedFuncIntoIsland, DYN, DYN_HANDLE_KINDS, F64, @@ -176,7 +164,6 @@ import { isSupportedMapValue, isUndefinedArmedUnion, isUnitType, - JSVAL, NULL_T, RUNTIME_ERROR_CLASSES, STRING, @@ -184,7 +171,6 @@ import { UNDEFINED_T, VOID, } from "../../ir/ir.js"; -import type { DynamicImportResolution, NpmBuiltinUse, NpmLazyTrap } from "../npm.js"; import { provenanceActive } from "../provenance-registry.js"; import { ambientDtsPath, @@ -212,7 +198,7 @@ import { describeComponentBlocker, describeRecordMemberBlocker, formatIrType, - ISLAND_AMBIENT_TYPES, + FETCH_AMBIENT_TYPES, isUnitOnlyTsType, isWorkerHandleType, jsOpenObjectType, @@ -226,9 +212,7 @@ import { } from "../type-mapper.js"; import { type CompoundOp, - type IslandFnEntry, - boundaryIntoIslandMsg, - boundaryOutOfIslandMsg, + type StdlibFnEntry, type BuiltinModuleFn, builtinConstLit, builtinModuleConstOf, @@ -378,8 +362,6 @@ import { } from "./lower-event-emitter.js"; import { builtinImportOf, - createRequireBindingDecl, - createRequireNamespaceDecl, createRequireProgramModuleOf, createRequireSpecOf, fencedBuiltinImportOf, @@ -439,15 +421,9 @@ import { fenceStaticReadableStreamMember, fenceStaticResponseMember, fenceUnsupportedFetchConstructorMember, - isIslandExpr, - islandFuncValueFence, - islandRegexpOf, - jsvalIn, - requireDynamicApi, - islandGlobalFnOf, + refuseUnsupportedApi, + stdlibGlobalFnOf, lowerAbortControllerNew, - lowerDynamicHeadersIteratorCall, - lowerDynamicHeadersSpread, lowerDynamicImportCall, lowerFetchCall, lowerFetchElementMethodCall, @@ -461,12 +437,12 @@ import { lowerStaticReadableStreamNew, lowerStaticReadableStreamReaderCall, lowerStaticResponseCall, - lowerIslandMethodCall, + lowerStdlibMethodCall, lowerMathProperty, npmPackageOf, npmMemberFence, npmPackageOfSymbol, -} from "./lower-island.js"; +} from "./lower-stdlib.js"; import { lowerHttpHeadersElement, lowerNetModuleCall, @@ -504,7 +480,6 @@ import { lowerDestructuringDecl, lowerDestructuringAssignParts, lowerBindingPattern, - lowerJsvalBindingPattern, checkBindingElement, bindPatternTarget, isParseArgsDynCheckerType, @@ -599,57 +574,16 @@ export function own(table: Record, key: string): T | u return Object.hasOwn(table, key) ? table[key] : undefined; } -/* ── the island boundary, in one voice ──────────────────────────────── - * Whether a value can cross between the static world and the island is - * ONE question — canCrossIslandBoundary (ir.ts), asked here through - * boundarySafe() — and each rejected direction has ONE message builder, - * so the rule and its wording cannot drift apart across the implicit - * coercion path, the explicit marshal path, and the exact-type fence. */ - export interface LowerStats { /** Statements the lowerer attempted (nested statements count individually; * statements inside a poisoned construct were never reached and don't). */ statementsTotal: number; statementsFailed: number; - /** Statements that LOWERED but contain island constructs (jsOp/jsExit — - * package calls, island-backed lib members): they compile, but their - * work runs in the embedded engine. Only a --dynamic analysis produces - * these; coverage renders them as "compile dynamically". */ - statementsIsland: number; + /** Functions whose signature couldn't be analyzed (bodies not counted). */ functionsSkipped: number; } -/** IrStmt discriminants — the island walk below must not descend into - * NESTED statements (each is counted individually by its own lowerStmts - * visit; descending would attribute a nested island statement to every - * enclosing construct too). The top-level statement object itself is - * always visited. */ -const IR_STMT_KINDS = new Set([ - "varDecl", - "assign", - "exprStmt", - "if", - "while", - "doWhile", - "switch", - "arraySet", - "arraySetLength", - "arraySetUndefined", - "arrayDelete", - "forOf", - "return", - "fieldSet", - "recordSet", - "break", - "continue", - "block", - "tryCatch", - "throw", - "rethrow", - "runtimeFence", -]); - /** Every identifier a binding name binds: the identifier itself, or all * identifiers of a (possibly nested) destructuring pattern in source * order. */ @@ -665,31 +599,6 @@ export function boundIdentifiersOf(name: ts.BindingName): ts.Identifier[] { return out; } -/** Inspect executable children directly, without boxing the statement tree - * into checked-dynamic storage just to calculate coverage. */ -export function stmtUsesIsland(stmts: IrStmt | IrStmt[]): boolean { - // Keep the accounting boundary at the source statement: nested statement - // lists are counted by their own lowerStmts invocation. - const nested = (stmt: IrStmt): boolean => - IR_STMT_KINDS.has(stmt.kind) || everyStmtChild(stmt, expr, nested); - const expr = (node: IrExpr): boolean => { - if ( - node.kind === "jsOp" || - node.kind === "jsExit" || - node.kind === "jsBridgePromise" || - (node.kind === "libCall" && - (node.fn === "island.eval" || - node.fn === "island.import" || - node.fn === "island.importDyn" || - node.fn === "island.castFail")) - ) - return false; - return everyExprChild(node, expr, nested); - }; - if (Array.isArray(stmts)) return !stmts.every((stmt) => everyStmtChild(stmt, expr, nested)); - return !everyStmtChild(stmts, expr, nested); -} - /** Statements a never-lowered body would have contributed to the coverage * totals: every element of a statement list (blocks, case clauses), plus * the single-statement bodies of control flow, nested functions included — @@ -737,7 +646,7 @@ export interface LowerResult { stats: LowerStats; /** --provenance-sources only: per-file statement attribution (the * coverage report aggregates it per provenance package). */ - statsByFile?: Map; + statsByFile?: Map; /** --provenance-sources only: diagnostics of elided pure-annotated dead * consts in fetched source modules — off the build, on the report. */ provenanceElided?: ScrDiagnostic[]; @@ -747,22 +656,11 @@ export interface LowerResult { /** Compile-time-detectable behavior differences from Node (SC6xxx * divergence warnings) in the program's own modules. Never failures. */ divergences?: ScrDiagnostic[]; - /** --dynamic only: every Node builtin the embedded npm graph imports, - * shimmed or not — the coverage report's island honesty. */ - npmBuiltins?: NpmBuiltinUse[]; - /** --dynamic only: unresolvable specifiers reached ONLY by require()/ - * import() edges — the build embeds Node's call-time error as a runtime - * trap; the coverage report lists them beside the builtins. */ - npmLazyTraps?: NpmLazyTrap[]; } export interface LowerOptions { /** Parser/checker services owned by the load; required for npm graph analysis. */ frontendServices?: FrontendServices | undefined; - /** --dynamic: the island engine is linked, so island constructs - * (__island_eval) may lower. Off by default — without it they produce a - * requires-dynamic diagnostic instead. */ - dynamic?: boolean; /** Coverage: additionally lower the unreached remainder (bodies nothing * on the entry path reaches) in a throwaway pass and report its * diagnostics and stats under `unreached` — the whole-program analysis @@ -932,13 +830,12 @@ export function lowerToIr( process.stderr.write(`scriptc lowering ${JSON.stringify(event)}\n`); phaseLast = now; }; - const dynamic = options.dynamic ?? false; const targetPlatform = options.targetPlatform ?? process.platform; const startupCrash = options.startupCrash ?? null; // Modules reachable only through literal import() of the program's own // files join the compiled graph here, ONCE, before any // pass constructs (nothing calls their %init at startup — the import() - // site's namespace builder does, on the engine microtask, Node's + // site's namespace builder does, on the native microtask, Node's // evaluation point for them). Inadmissible static cycles inside the // added subgraph are minted here and handed to reachable emit after this // extension of the shared array; no later pass re-walks the subgraph. @@ -971,7 +868,7 @@ export function lowerToIr( const externalTypes = options.externalTypes ?? new Map(); const externalTypeSpecifiersByFile = options.externalTypeSpecifiersByFile ?? directExternalTypeSpecifiersByFile(externalTypes); - const validation = new Lowerer(program, entry, moduleOrder, dynamic, { + const validation = new Lowerer(program, entry, moduleOrder, { frontendServices: options.frontendServices, targetPlatform, startupCrash, @@ -992,7 +889,7 @@ export function lowerToIr( const reachableEmit = ffiImports.length === 0 ? validation - : new Lowerer(program, entry, moduleOrder, dynamic, { + : new Lowerer(program, entry, moduleOrder, { frontendServices: options.frontendServices, targetPlatform, startupCrash, @@ -1019,7 +916,7 @@ export function lowerToIr( // historical compiler. This is a rare compatibility fallback; programs // without such a settled fence retain checker-backed IR exactly once. if (reachableEmit.requiresHistoricalOrderRelower) { - const emit = new Lowerer(program, entry, moduleOrder, dynamic, { + const emit = new Lowerer(program, entry, moduleOrder, { frontendServices: options.frontendServices, reachable, targetPlatform, @@ -1075,7 +972,7 @@ export function lowerToIr( }; else if (contracts.count > 0) result = { ...result, contracts }; if (options.coverage !== true) return result; - const remainder = new Lowerer(program, entry, moduleOrder, dynamic, { + const remainder = new Lowerer(program, entry, moduleOrder, { frontendServices: options.frontendServices, reachable, remainder: true, @@ -1103,31 +1000,6 @@ export function lowerToIr( }; } -/** The island-handle type a `import(...)` initializer gives a binding - * whose DECLARED type has no static mapping (`Promise` — module-namespace types don't map): the direct form - * holds the static promise-of-handle, the awaited form holds the handle - * itself. Null for every other initializer shape. */ -export function importCallHandleType(expr: ts.Expression | undefined): IrType | null { - if (!expr) return null; - let e = expr; - let awaited = false; - for (;;) { - if (ts.isParenthesizedExpression(e)) { - e = e.expression; - } else if (ts.isAwaitExpression(e)) { - awaited = true; - e = e.expression; - } else { - break; - } - } - if (ts.isCallExpression(e) && e.expression.kind === ts.SyntaxKind.ImportKeyword) { - return awaited ? JSVAL : { kind: "promise", inner: JSVAL }; - } - return null; -} - /** The native namespace type produced by a literal static import() of a * compiled program module or supported Node builtin. This syntax-level * fallback is used where the checker exposes an anonymous builtin-module @@ -1137,7 +1009,7 @@ export function staticImportNamespaceType( lowerer: Lowerer, expr: ts.Expression | undefined, ): IrType | null { - if (!expr || lowerer.dynamic) return null; + if (!expr) return null; let e = expr; let awaited = false; for (;;) { @@ -1173,47 +1045,11 @@ export function staticImportNamespaceType( return awaited ? ns : { kind: "promise", inner: ns }; } -/** True when `expr` is a call that resolved to an overload SIGNATURE of a - * source-implemented function whose implementation returns an island value - * (`any` under --dynamic): tsc never checks overload return types against - * the body — only the implementation signature is checked — so the - * overload's return is an unverifiable claim about an island value. The - * binding stores the HANDLE instead of trap-extracting the claimed type - * (reconcileOverloadReturn keeps the call jsval by the same rule), and - * uses dispatch to engine ops — exactly the value Node's binding holds. - * Ambient (.d.ts) declarations never reach this: they have no compiled - * implementation, so their calls lower through the island/builtin paths - * whose validated exits keep the checker-trust trap. */ export function uncheckedOverloadHandleCall( - lowerer: Lowerer, - expr: ts.Expression | undefined, + _lowerer: Lowerer, + _expr: ts.Expression | undefined, ): boolean { - if (!lowerer.dynamic || !expr) return false; - let e = expr; - while (ts.isParenthesizedExpression(e)) e = e.expression; - // Tagged templates are calls too (tag(strings, ...values)) and resolve - // overload sets the same way — foo1`${1}` against a TemplateStringsArray - // overload of an any-returning implementation stores the handle. - if (!ts.isCallExpression(e) && !ts.isTaggedTemplateExpression(e)) return false; - const rsig = lowerer.checker.getResolvedSignature(e); - const rdecl = rsig ? lowerer.checker.signatureDeclaration(rsig) : undefined; - if (!rsig || !rdecl) return false; - if (!(ts.isFunctionDeclaration(rdecl) || ts.isMethodDeclaration(rdecl)) || rdecl.body) - return false; - const name = rdecl.name; - const symbol = name ? lowerer.checker.getSymbolAtLocation(name) : undefined; - if (!symbol) return false; - const impl = lowerer.checker - .declarationsOf(symbol) - .find( - (d) => - (ts.isFunctionDeclaration(d) || ts.isMethodDeclaration(d)) && - (d as ts.FunctionDeclaration).body !== undefined, - ); - if (!impl) return false; - const implSig = lowerer.checker.getSignatureFromDeclaration(impl); - if (!implSig) return false; - return lowerer.mapTypeOf(lowerer.checker.getReturnTypeOfSignature(implSig))?.kind === "jsval"; + return false; } /** The JavaScript declaration fallback for unmappable binding types (see @@ -1274,29 +1110,6 @@ export function ladderFenceExpr( }; } -/** The checked-dynamic declaration fallback for unmappable binding types - * (see irTypeOf), two gates over one story: - * - * JAVASCRIPT files: `any` and every other inference residue is the - * checked-dynamic 'unknown' kind, and array types keep their array-ness - * with the fallback applied to the ELEMENT (any[]/never[] evolving arrays - * become unknown[], so length/push/index still lower). - * - * TYPESCRIPT files: genuine checker-`any` residue ONLY — a bare `any` - * binding (`flags & Any`), or a single-call-signature function type whose - * only unmappable pieces are `any` (`(value: any) => value is string` — - * the arrow the binding holds lowers those params to dyn, so the binding - * keeps its func-ness with the same per-piece fallback). The honest - * static subset of `any` is a binding whose VALUES are dyn-representable: - * the binding is 'unknown' storage with the boundary conversions - * coerceToExpected already applies (dynFrom into the slot, validated - * dynCheck out) and per-site SC2011 fences for the operations the checked-dynamic tree - * cannot carry JS-exactly (the island still lifts those). Every OTHER - * unmappable TS type keeps its own diagnostic — annotations exist there, - * and the fence names the real blocker. `--dynamic` builds never reach - * this fallback for `any` (mapType answers jsval first). - * - * Null for void (no value exists to represent). */ export function dynFallbackType(lowerer: Lowerer, node: ts.Node, t: ts.Type): IrType | null { if (t.flags & ts.TypeFlags.Void) return null; if (!isJsSourceFile(node.getSourceFile())) { @@ -1462,12 +1275,7 @@ function jsFallbackFunctionType(lowerer: Lowerer, node: ts.Node, t: ts.Type): Ir decl !== undefined && ts.isParameter(decl) && (decl.questionToken !== undefined || decl.initializer !== undefined); - if ( - optional && - mapped.kind !== "dyn" && - mapped.kind !== "jsval" && - !lowerer.bareUndefinedArmedUnion(mapped) - ) { + if (optional && mapped.kind !== "dyn" && !lowerer.bareUndefinedArmedUnion(mapped)) { mapped = lowerer.withUndefinedArm(mapped); } return mapped; @@ -2201,8 +2009,7 @@ export class Lowerer { runtimeOptionalType(t: IrType): IrType { if (t.kind === "union") return this.armTag(t.unionId, UNDEFINED_T) >= 0 ? t : (this.withUndefinedArmOf(t) ?? t); - if (t.kind === "void" || t.kind === "dyn" || t.kind === "jsval" || t.kind === "generator") - return t; + if (t.kind === "void" || t.kind === "dyn" || t.kind === "generator") return t; return this.withUndefinedArm(t); } @@ -2480,33 +2287,21 @@ export class Lowerer { * falls back through the shared node (collectGlobals registers both). */ readonly globalsByDeclNode = new Map(); readonly globalsList: IrGlobal[] = []; - /** npm-import init statements (--dynamic), keyed by file AND import - * declaration: the island.import assignments/side-effect loads for that - * statement. lowerFileInit splices them into the importing file's %init - * header at the statement's position — Node evaluates each imported - * module (island packages included) where the import appears, so an - * `import "polyfill"` before an `import "./app.js"` runs the package - * top-level BEFORE app's init, not after. */ + readonly npmInitActions = new Map>(); /** Per-file %init PRELUDE statements for JSON imports: bakeable DATA * assignments with no observable evaluation order of their own — * prepended by lowerFileInit so the bindings are live before any * top-level statement runs. */ readonly jsonInitActions = new Map(); - /** The embedded npm runtime graph (collectNpmImports), attached to the - * emitted module. Null without npm imports or without --dynamic. */ - npmEmbedded: IrModule["embedded"] | null = null; - npmBuiltins: NpmBuiltinUse[] | null = null; - npmLazyTraps: NpmLazyTrap[] | null = null; /** Dynamic `import("literal")` resolutions, keyed * `fileName\u0000specifier` (collectDynamicImports fills it during npm * collection; lowerDynamicImportCall reads it per site). */ - readonly dynImports = new Map(); - /** createRequire-require resolutions of BARE npm specifiers, keyed - * `fileName\u0000specifier` (collectCreateRequires fills it during npm - * collection under --dynamic — the require-condition entry key plus its - * embedded format; lowerCreateRequireCall reads it per site; "" marks a - * failed resolution already reported at collection). */ + readonly dynImports = new Map< + string, + { kind: "program-module" } | { kind: "static-builtin"; module: string } + >(); + readonly createRequireImports = new Map< string, { entryKey: string; format: "esm" | "cjs" | "json" } | "" @@ -2515,11 +2310,7 @@ export class Lowerer { * (lowerOwnModuleImport): every `import()` of the same program module * shares one builder. */ readonly dynNsBuilders = new Map(); - /** Parameters forced to the island-handle type (jsval) regardless of - * their checker type: then-handler params whose settled value is an - * engine handle (a dynamic import's namespace object) — paramShape's - * early-out. */ - readonly jsvalParamOverrides = new Set(); + readonly checkedCallbackParams = new Set(); /** Inline Promise.then parameters whose contextual type is a builtin * module namespace anonymous object. The settled native token is the @@ -2609,7 +2400,7 @@ export class Lowerer { readonly stats: LowerStats = { statementsTotal: 0, statementsFailed: 0, - statementsIsland: 0, + functionsSkipped: 0, }; @@ -2748,25 +2539,23 @@ export class Lowerer { * "did the PACKAGE's statements compile static?" per provenance * package. Only populated while the registry is active; the remainder * pass skips it (attribution describes the build). */ - readonly statsByFile = new Map(); + readonly statsByFile = new Map(); /** Bumps the per-file attribution counter (no-op unless provenance is * active and this is the emit/discovery lane — mirror the CALLER's * suppressStats guard, this method only gates remainder). */ - bumpFileStat(file: string, kind: "total" | "failed" | "island"): void { + bumpFileStat(file: string, kind: "total" | "failed"): void { if (this.remainder || !provenanceActive()) return; let s = this.statsByFile.get(file); - if (!s) this.statsByFile.set(file, (s = { total: 0, failed: 0, island: 0 })); + if (!s) this.statsByFile.set(file, (s = { total: 0, failed: 0 })); if (kind === "total") s.total += 1; else if (kind === "failed") s.failed += 1; - else s.island += 1; } constructor( readonly program: ts.Program, readonly entry: ts.SourceFile, readonly moduleOrder: ts.SourceFile[], - readonly dynamic: boolean, mode: LowererMode = {}, ) { this.frontendServices = mode.frontendServices; @@ -2868,7 +2657,6 @@ export class Lowerer { isNpmFile: this.isNpmFile, isExternalTypeFile: (sf) => this.externalTypeSpecifiersByFile.has(tsgoPath(resolve(sf.fileName))), - dynamic: this.dynamic, typeMemo: this.typeMemo, canMemoizeType: () => this.typeParamBindings === null && @@ -4071,7 +3859,6 @@ export class Lowerer { !element || element.kind === "void" || element.kind === "dyn" || - element.kind === "jsval" || element.kind === "generator" ) return null; @@ -4104,13 +3891,12 @@ export class Lowerer { return false; const object = init.arguments[0]; const objectType = object ? this.mapTypeOf(this.typeOf(object)) : null; - return objectType?.kind === "dyn" || objectType?.kind === "jsval"; + return objectType?.kind === "dyn"; }; const addUndefined = (t: IrType): IrType => { if (t.kind === "union") return this.armTag(t.unionId, UNDEFINED_T) >= 0 ? t : (this.withUndefinedArmOf(t) ?? t); - if (t.kind === "void" || t.kind === "dyn" || t.kind === "jsval" || t.kind === "generator") - return t; + if (t.kind === "void" || t.kind === "dyn" || t.kind === "generator") return t; return this.withUndefinedArm(t); }; const fieldName = (node: ts.PropertyAccessExpression): string => node.name.text; @@ -4335,12 +4121,7 @@ export class Lowerer { // checker. The array's element ABI describes every value a // position may hold after that call, so bind from that type. const mapped = sourceType.elem; - if ( - mapped && - mapped.kind !== "void" && - mapped.kind !== "dyn" && - mapped.kind !== "jsval" - ) { + if (mapped && mapped.kind !== "void" && mapped.kind !== "dyn") { const widened = mapped.kind === "union" ? this.withUndefinedArmOf(mapped) @@ -4700,7 +4481,7 @@ export class Lowerer { if (mapped?.kind === "promise") mapped = mapped.inner; const anyElements = mapped?.kind === "array" - ? mapped.elem.kind === "dyn" || mapped.elem.kind === "jsval" + ? mapped.elem.kind === "dyn" : mapped === null && this.checker.isArrayType(checkerType) && !this.checker.isTupleType(checkerType) && @@ -4882,7 +4663,6 @@ export class Lowerer { mapped.kind === "record" || mapped.kind === "object" || mapped.kind === "dyn" || - mapped.kind === "jsval" || mapped.kind === "union" ); }, @@ -5304,10 +5084,7 @@ export class Lowerer { } const restAt = sig.params.findIndex( (shape) => - shape.mode === "rest" || - shape.mode === "dynRest" || - shape.mode === "islandRest" || - shape.mode === "arguments", + shape.mode === "rest" || shape.mode === "dynRest" || shape.mode === "arguments", ); node.arguments.forEach((arg, argumentIndex) => { const i = restAt >= 0 && argumentIndex >= restAt ? restAt : argumentIndex; @@ -5780,8 +5557,7 @@ export class Lowerer { } // Each file's top-level statements form its run-once init function. - // %main calls only the ENTRY's init: each init's hoisted import header - // runs its dependencies (npm island loads at their import positions), + // %main calls only the entry's init. Hoisted imports call their inits; // inline require statements call theirs mid-body, and the guards make // revisits cache hits — Node's evaluation order over the WHOLE graph // falls out of the nesting. The coverage remainder skips them — they @@ -5873,8 +5649,6 @@ export class Lowerer { stats: this.stats, ...(this.statsByFile.size > 0 ? { statsByFile: this.statsByFile } : {}), ...(this.provenanceElided.length > 0 ? { provenanceElided: this.provenanceElided } : {}), - ...(this.npmBuiltins ? { npmBuiltins: this.npmBuiltins } : {}), - ...(this.npmLazyTraps ? { npmLazyTraps: this.npmLazyTraps } : {}), }; } @@ -5978,14 +5752,13 @@ export class Lowerer { this.diags.length > 0 ? null : { - irVersion: 15, + irVersion: 16, sourceFile: this.entry.fileName, functions, classes: artifacts.classes, records: artifacts.records, unions: artifacts.unions, globals: this.globalsList, - ...(this.npmEmbedded ? { embedded: this.npmEmbedded } : {}), entry: ENTRY_NAME, ...(this.usesWorkers ? { workers: true } : {}), ...(isNodeEsmFile(this.entry, this.program) ? {} : { commonJsEntry: true }), @@ -6000,8 +5773,6 @@ export class Lowerer { stats: this.stats, ...(this.statsByFile.size > 0 ? { statsByFile: this.statsByFile } : {}), ...(this.provenanceElided.length > 0 ? { provenanceElided: this.provenanceElided } : {}), - ...(this.npmBuiltins ? { npmBuiltins: this.npmBuiltins } : {}), - ...(this.npmLazyTraps ? { npmLazyTraps: this.npmLazyTraps } : {}), }; } @@ -6729,23 +6500,14 @@ export class Lowerer { ); } - /** The dynamic-family fence for an OPERATION on an `any`-origin - * checked-dynamic value that only the engine can execute (operators, - * iteration, computed member names, ...). Carries SC2011 — the same - * code as the `any` type fence — so the coverage report groups it with - * the dynamic-capable family and the two-tier retry knows the island - * lifts the site. Use exactly when the blocking operand IS dyn-typed - * and its checker type is `any`-flavored; genuine `unknown` keeps the - * SC1100-family fences (tsc constrains what unknown can do, so those - * sites are checker-error territory, not engine territory). */ anyOpFence(feature: string, node: ts.Node): never { - this.pushDiag(anyOpRequiresDynamicDiag(feature, locOf(node))); + this.pushDiag(unsupportedAnyOperationDiag(feature, locOf(node))); throw new PoisonError(); } /** True when this expression's CHECKER type is `any`-flavored — the * gate anyOpFence's call sites use to tell `any`-origin dyn values - * (the engine could run the operation) from genuine `unknown` ones. */ + * with an unsupported operation from genuine `unknown` ones. */ anyOrigin(node: ts.Node): boolean { return (this.typeOf(node).flags & ts.TypeFlags.Any) !== 0; } @@ -6769,12 +6531,11 @@ export class Lowerer { // fetch values map earlier to checked-dynamic handles and do not reach // here; constructor objects such as Headers still can. if ( - !this.dynamic && typeSym && - (ISLAND_AMBIENT_TYPES as readonly string[]).includes(typeSym.name) && + (FETCH_AMBIENT_TYPES as readonly string[]).includes(typeSym.name) && this.isStdlibSymbol(typeSym) ) { - this.pushDiag(requiresDynamicApiDiag(`a value of type '${typeSym.name}'`, locOf(node))); + this.pushDiag(unsupportedNativeApiDiag(`a value of type '${typeSym.name}'`, locOf(node))); throw new PoisonError(); } // ENUM OBJECTS (`typeof e` — a numeric enum's type carries the @@ -6826,32 +6587,15 @@ export class Lowerer { this.pushDiag(noLoweringDiag(this.checker.typeToString(type), locOf(node))); throw new PoisonError(); } - // The MEASURED island probe, same mechanism as the general dynamic - // reroute below: an index-signature shape the dynamic mapping - // accepts (an `any`-valued signature absorbing into an island - // object, jsval-entangled members) reports the retry-eligible - // SC2011 choice instead of the static recitation. - if ( - !this.dynamic && - !(widened.flags & ts.TypeFlags.Any) && - mapType(widened, { ...this.typeCtx, dynamic: true }) !== null - ) { - this.pushDiag(requiresDynamicTypeDiag(this.checker.typeToString(type), locOf(node))); - throw new PoisonError(); - } + this.pushDiag(indexSignatureTypeDiag(this.checker.typeToString(type), locOf(node))); throw new PoisonError(); } - // Package-declared types in a STATIC build: name the package, not the - // type — the per-package requires-dynamic diagnostic (and the coverage - // report's one-line-per-package attribution). Under --dynamic these - // types map to jsval, so reaching here means the type is genuinely - // unrepresentable (a jsval union arm, a jsval array element) — the - // generic type message tells that story better. - if (!this.dynamic) { + // Attribute an unsupported package type to its package. + { const pkg = this.npmPackageOf(widened); if (pkg) { - this.pushDiag(requiresDynamicPackageDiag(pkg, locOf(node))); + this.pushDiag(unsupportedPackageValueDiag(pkg, locOf(node))); throw new PoisonError(); } } @@ -6872,26 +6616,6 @@ export class Lowerer { throw new PoisonError(); } } - // A type the DYNAMIC mapping accepts (`any[]`, records/functions with - // `any`-typed members, .d.ts-declared shapes whose values are island - // handles): the honest per-site story is the dynamic-family choice, not - // the supported-types recitation — proved by re-running mapType with - // `dynamic: true`, never guessed from the type text. Probing is safe - // here: a diagnostic means this build already failed, so anything the - // probe interns or registers on the way is never emitted. Checked LAST - // so every more specific story above (island ambients, index - // signatures, per-package attribution, generic signatures) keeps its - // own fence class. Bare `any` is excepted: unsupportedTypeDiag's own - // SC2011 arm tells that story with the stronger stay-static remedy - // ('unknown' + a checked cast). - if ( - !this.dynamic && - !(widened.flags & ts.TypeFlags.Any) && - mapType(widened, { ...this.typeCtx, dynamic: true }) !== null - ) { - this.pushDiag(requiresDynamicTypeDiag(this.checker.typeToString(type), locOf(node))); - throw new PoisonError(); - } // STANDARD-LIBRARY nominal provenance, decided once: interface/class // declarations in the lib's own files (Date, ArrayBuffer, WeakMap, the // iterator/constructor interfaces). Such types report the SC2020 story @@ -7032,17 +6756,6 @@ export class Lowerer { return fenceFetchObjectAssignment(this, target, source); } - lowerDynamicHeadersIteratorCall( - call: ts.CallExpression, - access: ts.ElementAccessExpression, - ): IrExpr | null { - return lowerDynamicHeadersIteratorCall(this, call, access); - } - - lowerDynamicHeadersSpread(node: ts.Expression, type: IrType & { kind: "array" }): IrExpr | null { - return lowerDynamicHeadersSpread(this, node, type); - } - fenceStaticReadableStreamMember( access: ts.PropertyAccessExpression | ts.ElementAccessExpression, use: "read" | "call", @@ -7262,34 +6975,6 @@ export class Lowerer { return isUndefinedArmedUnion(t, (id) => this.unions.get(id)); } - /** canCrossIslandBoundary with this Lowerer's registries — THE test - * behind every marshal/exit decision (the implicit coercions, jsvalIn, - * the checked island-exit cast). Rejections that follow a false answer - * speak through boundaryIntoIslandMsg / boundaryOutOfIslandMsg. */ - boundarySafe(t: IrType): boolean { - return canCrossIslandBoundary( - t, - (id) => this.shapes.get(id), - (id) => this.unions.get(id), - ); - } - - /** canExitIslandToType with this Lowerer's registries — the EXIT - * direction's slightly wider test (bare undefined-armed unions of - * JSON-safe data arms exit; the engine's undefined takes the undefined - * arm before the JSON round trip). */ - boundaryExitSafe(t: IrType): boolean { - return canExitIslandToType( - t, - (id) => this.shapes.get(id), - (id) => this.unions.get(id), - ); - } - - isIslandExpr(node: ts.Expression): boolean { - return isIslandExpr(this, node); - } - /** True when this node's CHECKER type is proven `any[]`/`unknown[]`, * directly or through the intersection tsc builds for a readonly tuple * union (`(Model | readonly [Model, Command]) & any[]`; TS7 distributes @@ -7430,14 +7115,7 @@ export class Lowerer { } this.unsupported("SC1101", node); } - // jsval mismatches surviving coerceToExpected involve a type with no - // island representation (in) or no validated exit (out). - if (actual.kind === "jsval") { - this.unsupported("SC1090", node, boundaryOutOfIslandMsg(this.fmt(expected))); - } - if (expected.kind === "jsval") { - this.unsupported("SC1090", node, boundaryIntoIslandMsg(this.fmt(actual))); - } + // Class-value mismatches: the pointed stories — a widening whose // constructor ABIs differ (construction through the slot would // dispatch a mismatched signature), or a structural flow between @@ -7618,105 +7296,14 @@ export class Lowerer { const adapted = iteratorSlotAdapter(this, expr, expected); if (adapted) return adapted; } - // Island boundary, both directions. IN: any static value flowing into + // an any-typed slot marshals implicitly (tsc allows the assignment; // the marshal is where its semantics live). OUT: an 'any' value // flowing into a typed slot compiles to a VALIDATED exit — like every // dyn→static edge, trust-but-verify: a lying `any` throws a catchable // TypeError instead of corrupting memory (SEMANTICS.md). Unmarshalable // and unextractable types fall through to requireExactShape's fences. - if (expected.kind === "jsval" && expr.type.kind !== "jsval") { - // Bare unit literals: the engine's own undefined/null (units have no - // other producers, so dropping the operand loses nothing). - if (isUnitType(expr.type)) { - return { - kind: "jsOp", - op: expr.type.kind === "undefinedT" ? "undefLit" : "nullLit", - args: [], - type: JSVAL, - loc: expr.loc, - }; - } - // A CHECKED-DYNAMIC (dyn/'unknown') value entering the island (the - // `isJson ? JSON.parse(text) : islandParser(text)` config ternary): - // the dyn tree deep-copies into engine values — data kinds only; a - // dyn carrying a boxed function/handle/promise throws the catchable - // TypeError at runtime (trust-but-verify, like every boundary). - if (expr.type.kind === "dyn") { - return { kind: "jsMarshal", value: expr, type: JSVAL, loc: expr.loc }; - } - if (this.boundarySafe(expr.type)) { - return { kind: "jsMarshal", value: expr, type: JSVAL, loc: expr.loc }; - } - // Closures cross as host functions when their signature marshals — - // the same shapes jsvalIn admits at call arguments (`const f: any = - // (x: number) => x * 3` is the declaration-slot spelling of the - // package-callback pattern). - if ( - expr.type.kind === "func" && - canMarshalTypedFuncIntoIsland( - expr.type, - (id) => this.shapes.get(id), - (id) => this.unions.get(id), - ) - ) { - return { kind: "jsMarshal", value: expr, type: JSVAL, loc: expr.loc }; - } - // jsval-BEARING composites (a record holding `any` fields, an array - // of such records) have no JSON marshal but an honest per-field - // island construction — see jsvalLiftExpr. - if (this.jsvalLiftable(expr.type)) { - return this.jsvalLiftExpr(expr, expr.loc); - } - // A RegExp flowing into an 'any' slot: the fresh-engine-RegExp - // rebuild (see jsvalIn's regex rule); computed regex values fall - // through to requireExactShape's fence. - if (expr.type.kind === "regex") { - const re = islandRegexpOf(expr); - if (re) return re; - } - return expr; - } - if (expr.type.kind === "jsval" && expected.kind !== "jsval") { - // The jsval→dyn crossing (the world unification's engine-handle - // kind): an 'any'-typed engine value flowing into an 'unknown'/ - // 'object'/JS-residue slot wraps BY REFERENCE as the checked-dynamic tree's island - // kind — engine scalars normalize to native dyn kinds at wrap time, - // typeof/truthiness/String()/=== route to the engine, un-armed dyn - // walks fence loudly, and the value unwraps back identity-preserved - // (scr_jsval_from_dyn). Monotone under evolution/widening: a value - // wraps once at its first dyn edge and stays valid through every - // subsequent dyn slot; narrowing never changes representation. - // This wrap RETIRES the silent-wrong-answer fence-closure box for - // jsval members of dyn object literals (lowerDynObjectLiteral's - // coercion lands here first). - if (expected.kind === "dyn") { - return { kind: "dynFromJsval", value: expr, type: DYN, loc: expr.loc }; - } - // An island value flowing into a PROMISE-typed slot (the inferred - // `loadPlugins` return — `Promise.all(...)` lowered engine-side - // against a Promise inference): the island→static promise - // bridge — the engine promise settles a fresh static promise (void - // fulfillments drop, `any[]`-declared fulfillments exit - // Array.isArray-gated by reference at the settle, 'any' parks as an - // island handle). Only inner shapes the bridge can deliver take the - // arm; the rest keep the exit fence with the type named. - if ( - expected.kind === "promise" && - (expected.inner.kind === "void" || - expected.inner.kind === "jsval" || - (expected.inner.kind === "array" && expected.inner.elem.kind === "jsval")) - ) { - return { kind: "jsBridgePromise", value: expr, type: expected, loc: expr.loc }; - } - // The exit set: everything round-trippable, plus bare undefined-armed - // unions of JSON-safe data arms (the engine's undefined takes the - // undefined arm before the JSON detour) — canExitIslandToType. - if (this.boundaryExitSafe(expected)) { - return { kind: "jsExit", value: expr, type: expected, loc: expr.loc }; - } - return expr; - } + // A TYPED value flowing into an 'unknown' slot (`const u: unknown = 5`, // an unknown-typed param/return, a dyn-valued index slot): the // static→dyn conversion — dynFrom, a DEEP COPY (the jsMarshal aliasing @@ -7807,8 +7394,7 @@ export class Lowerer { // A dyn ('unknown') ACTUAL flowing into a typed slot the checker // approved (an assertion function's narrowing, the error-any world's // forgiven chains): the VALIDATED extraction — dynCheck, the - // checked-cast machinery, applied automatically. Trust-but-verify, - // exactly the island exit's stance: a value that doesn't match the + // checked-cast machinery, applied automatically. A value outside the // slot's type throws a catchable TypeError instead of misreading the // payload. Only dynCheck's own domain (JSON-representable types, // undefined-armed unions of those, bytes, the %Error root) @@ -8129,18 +7715,16 @@ export class Lowerer { if (lift) return this.applyWidthLift(lift, expr, expected, expr.loc); // Arms OUTSIDE widthLiftPlan's domain keep the historic per-arm // widthCoerce probe (first match): index-signature record arms (the - // overflow CAPTURE helper owns their reshapes) and `any[]` arms - // (the island-boundary per-element lift). Bounded to those arm - // shapes so the plan's ambiguity rule for record/array lifts is - // never undone by a first-match fallback. + // overflow CAPTURE helper owns their reshapes). Exclude shapes + // already owned by the plan so first-match fallback cannot undo + // its ambiguity rule for record/array lifts. { const def = this.unions.get(expected.unionId); if (def) { for (let i = 0; i < def.arms.length; i++) { const arm = def.arms[i]!; const boundaryArm = - (arm.kind === "record" && this.shapes.get(arm.shapeId)?.indexValue !== undefined) || - (arm.kind === "array" && arm.elem.kind === "jsval"); + arm.kind === "record" && this.shapes.get(arm.shapeId)?.indexValue !== undefined; if (!boundaryArm) continue; const w = this.widthCoerce(expr, arm); if (w) { @@ -8348,34 +7932,6 @@ export class Lowerer { return deferredReadHelper(this, fromId, target, loc); } - jsvalLiftable(t: IrType, visiting: Set = new Set()): boolean { - return jsvalLiftable(this, t, visiting); - } - - jsvalLiftExpr(e: IrExpr, loc: SrcLoc): IrExpr { - return jsvalLiftExpr(this, e, loc); - } - - unionToJsvalHelper(unionId: string, loc: SrcLoc): string { - return unionToJsvalHelper(this, unionId, loc); - } - - recordToJsvalHelper(shapeId: string, loc: SrcLoc): string { - return recordToJsvalHelper(this, shapeId, loc); - } - - arrayToJsvalHelper(elem: IrType, loc: SrcLoc): string { - return arrayToJsvalHelper(this, elem, loc); - } - - arrayToJsvalArrayHelper(fromElem: IrType, loc: SrcLoc): string | null { - return arrayToJsvalArrayHelper(this, fromElem, loc); - } - - jsvalIn(e: IrExpr, node: ts.Node): IrExpr { - return jsvalIn(this, e, node); - } - /** THE coercion path for values flowing into a typed slot: union arms * wrap implicitly (coerceToExpected), then the exact-type fence runs * (SC2002 for record shapes, SC2003 for unions). Every slot-directed @@ -8446,18 +8002,7 @@ export class Lowerer { } } } - let e = - this.dynamic && - expr.type.kind === "dyn" && - expected.kind === "array" && - expected.elem.kind === "jsval" - ? { - kind: "jsExit" as const, - value: this.jsvalIn(expr, node), - type: expected, - loc: expr.loc, - } - : this.coerceToExpected(expr, expected); + let e = this.coerceToExpected(expr, expected); // Keep storage intact when ordinary widening already accepts it. Only // a destination needing a more specific class layout uses the site's // refinement and checked extraction. @@ -8484,31 +8029,6 @@ export class Lowerer { ) { e = { ...e, liveRef: true }; } - // An 'any' value PROVABLY null/undefined (the unit literal itself, or - // a read of a binding nothing ever assigns a non-unit value) flowing - // implicitly into a primitive slot: the validated exit refuses units - // unconditionally, so every run would throw the boundary TypeError - // where Node proceeds silently. A failure certain at compile time is - // a fence, not a runtime surprise. Explicit casts keep their runtime - // checked-cast semantics (the cast lowering builds its own jsExit - // before this runs, so `e !== expr` skips them), and union/composite - // targets keep the runtime exit (an undefined-armed union ACCEPTS the - // engine's undefined; composite validation is dynCheck's business). - if ( - e !== expr && - e.kind === "jsExit" && - (e.type.kind === "f64" || e.type.kind === "string" || e.type.kind === "bool") - ) { - const unit = this.provenUnitAnyOf(node, e.value); - if (unit !== null) { - this.unsupported( - "SC1090", - node, - `an 'any' value that is always ${unit} flowing into a '${this.fmt(expected)}' slot (nothing in the program gives this value another shape, and the island boundary's validated exit refuses ${unit} — every run would throw a TypeError where Node proceeds silently)`, - `give the binding a value other than ${unit} before this use, or keep the slot's type 'any'`, - ); - } - } // A closure that just BOXED into dyn takes its best-effort JS name // from the source node (identifier reads, named function expressions, // NamedEvaluation through a variable initializer) — inspect prints @@ -8552,32 +8072,14 @@ export class Lowerer { } } } - // A JS FUNC value outside the island marshal set flowing into a - // jsval slot (`withPlugins(getSupportInfoWithoutPlugins, 0)` — a - // wrapper built at module init around a function the run may never - // call): the crossing defers to a call-time fence closure instead of - // stopping the statement — jsvalIn's deferral, the implicit-coercion - // spelling. - if (expected.kind === "jsval" && e.type.kind === "func" && !typeEquals(e.type, expected)) { - const diagsBefore = this.diags.length; - try { - this.requireExactShape(node, e.type, expected); - } catch (err) { - if (!(err instanceof PoisonError)) throw err; - const fence = islandFuncValueFence(this, diagsBefore, node); - if (fence) return fence; - throw err; - } - return e; - } + this.requireExactShape(node, e.type, expected); return e; } /** The unit an 'any' expression PROVABLY holds on every run, or null - * when no proof exists. Two spellings prove: the lowered value IS the - * engine unit literal (`null as any`, an any-contextual `undefined`), - * or the node is an identifier whose every declaration is a plain, + * when no proof exists. The node must be an identifier whose every + * declaration is a plain, * non-ambient `var`/`let`/`const` declarator under a variable STATEMENT * (catch bindings, for-of/for-in cursors, parameters, and imports all * fail this shape test — each receives values from elsewhere), each @@ -8588,11 +8090,7 @@ export class Lowerer { * bindings are read-only, so cross-file writes don't exist). A hoisted * `var` read before its unit-initialized statement holds undefined — * also a unit — so the mixed case reports both names. */ - provenUnitAnyOf(node: ts.Node, value: IrExpr): string | null { - if (value.kind === "jsOp" && value.args.length === 0) { - if (value.op === "undefLit") return "undefined"; - if (value.op === "nullLit") return "null"; - } + provenUnitAnyOf(node: ts.Node, _value: IrExpr): string | null { let n: ts.Node = node; while (ts.isParenthesizedExpression(n)) n = n.expression; if (!ts.isIdentifier(n)) return null; @@ -8709,7 +8207,6 @@ export class Lowerer { const to = this.mapTypeOf(this.checker.getTypeFromTypeNode(asserted.type)); if ( from?.kind === "dyn" || - from?.kind === "jsval" || (from?.kind === "record" && to?.kind === "record" && !typeEquals(from, to)) ) { this.noLowering( @@ -8737,7 +8234,7 @@ export class Lowerer { this.isSubclassOf(from.className, to.className)), ), ); - if (!preservesIdentity || value.kind === "dynCheck" || value.kind === "jsExit") { + if (!preservesIdentity || value.kind === "dynCheck") { this.noLowering( `collection key conversion from '${this.fmt(value.type)}' to '${this.fmt(expected)}' requiring a structural copy or dynamic conversion`, node, @@ -8956,11 +8453,7 @@ export class Lowerer { if (value.kind === "unitLit") { return { kind: "dynFrom", value, type: DYN, loc: value.loc }; } - // An ISLAND ('any') value: the by-reference jsval→dyn wrap — the same - // edge coerceToExpected converts (dyn slots accept engine values). - if (value.type.kind === "jsval") { - return { kind: "dynFromJsval", value, type: DYN, loc: value.loc }; - } + if (!this.dynConvertible(value.type)) { this.unsupported( "SC1100", @@ -9196,18 +8689,7 @@ export class Lowerer { return { kind: "boolLit", value: true, type: BOOL, loc }; } - /** The entry value of a binding JS initializes to `undefined` (an - * initializer-less declaration, a hoisted `var` before its statement): - * undefined-armed unions hold the interned undefined arm, and 'any' - * slots hold the ENGINE's undefined — tsc's definite-assignment - * analysis never guards `any` reads, so a jsval slot IS readable before - * any assignment and must never stay a C-level NULL (a validated exit - * or engine op on NULL is memory-unsafe, not a TypeError). Null for - * every other type: tsc rejects their pre-assignment reads. */ unassignedSlotInit(type: IrType, loc: SrcLoc): IrExpr | null { - if (type.kind === "jsval") { - return { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc }; - } return this.wrappedUndefined(type, loc); } @@ -9844,25 +9326,19 @@ export class Lowerer { // identifier-param prologue's ternary), then destructure the // picked value. const abi = shape.type; - if (abi.kind === "dyn" || abi.kind === "jsval") { - // A DYNAMIC-TIER pattern source (`function f({} = a)` with - // `a: any` — jsval for island values, dyn for the checked- - // dynamic dyn): the slot holds its tier's undefined directly, - // so the default test is the runtime undefined test — then - // the pattern destructures the picked value. + if (abi.kind === "dyn") { + // The checked-value slot holds native undefined directly. + // Test it at runtime, then destructure the selected value. const dflt = defaultValue(decl.initializer, abi); const src = this.declareHiddenLocal("%psrc", abi); const inRef = (): IrExpr => ({ kind: "varRef", localId: slot.id, type: abi, loc }); - const isUndef: IrExpr = - abi.kind === "jsval" - ? { - kind: "jsOp", - op: "eq", - args: [inRef(), { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc }], - type: BOOL, - loc, - } - : { kind: "dynTest", test: "undefined", value: inRef(), type: BOOL, loc }; + const isUndef: IrExpr = { + kind: "dynTest", + test: "undefined", + value: inRef(), + type: BOOL, + loc, + }; prologue.push({ kind: "varDecl", localId: src.id, @@ -9959,25 +9435,20 @@ export class Lowerer { const name = (decl.name as ts.Identifier).text; if (shape.mode === "omittable" && shape.bodyType && decl.initializer) { const abi = shape.type; - if (abi.kind === "dyn" || abi.kind === "jsval") { - // A DYNAMIC-TIER defaulted param (`function f(x = a)` with - // `a: any` — jsval for island values, dyn for the checked- - // dynamic dyn): the slot holds its tier's undefined directly — - // the body local picks the default on the runtime test. + if (abi.kind === "dyn") { + // The checked-value slot holds native undefined directly; + // the body local selects the default with a runtime test. const loc = locOf(decl); const slot = this.declareHiddenLocal(name, abi); params.push({ localId: slot.id, name, type: abi }); const inRef = (): IrExpr => ({ kind: "varRef", localId: slot.id, type: abi, loc }); - const isUndef: IrExpr = - abi.kind === "jsval" - ? { - kind: "jsOp", - op: "eq", - args: [inRef(), { kind: "jsOp", op: "undefLit", args: [], type: JSVAL, loc }], - type: BOOL, - loc, - } - : { kind: "dynTest", test: "undefined", value: inRef(), type: BOOL, loc }; + const isUndef: IrExpr = { + kind: "dynTest", + test: "undefined", + value: inRef(), + type: BOOL, + loc, + }; const dflt = defaultValue(decl.initializer, abi); const body = this.declareLocal(decl.name, name, abi, true); prologue.push({ @@ -10169,13 +9640,6 @@ export class Lowerer { return this.resolveKey(undefined); } - /** READ-ONLY twin of resolveLocal for PROBES (isIslandExpr): answers - * the nearest binding entry without boxing, threading, or predeclaring. - * resolveKey mutates capture state as a side effect, and a speculative - * island-ness query through a context that takes no captures (a plain - * declared function between the origin and the reference) was an ICE — - * the REAL lowering path still resolves (and diagnoses) the reference - * itself. */ peekLocal(ident: ts.Identifier): IrLocal | null { let symbol = this.checker.getSymbolAtLocation(ident); if ( @@ -10387,88 +9851,7 @@ export class Lowerer { allowDynObject ||= srcType.kind === "dyn" && isParseArgsDynCheckerType(this, this.typeOf(pattern)); } - // An ISLAND source (`const { readFileSync } = await import("fs")` — - // a namespace handle, or any 'any'-typed object): each bound name is - // an engine property read, mirroring the island property-read rule — - // a member the .d.ts declares as a primitive exits eagerly to the - // static type; everything else (including members whose declared - // types have no static mapping, like @types/node's function types) - // stays a HANDLE, and its use sites dispatch to engine ops. Patterns - // the element-wise walk cannot spell — ARRAY patterns (the iterator - // protocol), empty patterns (the coercion checks), holes, rest, - // defaults — run the REAL pattern in a synthesized engine function - // instead (lowerJsvalBindingPattern). - const elementWise = - srcType.kind === "jsval" && - ts.isObjectBindingPattern(pattern) && - pattern.elements.length > 0 && - pattern.elements.every( - (el) => - !el.dotDotDotToken && - !el.initializer && - el.name !== undefined && - ts.isIdentifier(el.propertyName ?? el.name), - ); - if (srcType.kind === "jsval" && !elementWise) { - if (lowerJsvalBindingPattern(this, pattern, srcRef, isLet, out)) return; - // No engine form (computed keys, untransportable defaults): fall - // through to the static fences below. - } - if (srcType.kind === "jsval" && ts.isObjectBindingPattern(pattern)) { - for (const el of pattern.elements) { - this.checkBindingElement(el); - // 7's BindingElement declares name optional (array elisions are - // nameless there); object-pattern elements always carry one. - if (el.name === undefined) continue; - const prop = el.propertyName ?? el.name; - if (!ts.isIdentifier(prop)) { - this.unsupported("SC1031", el, "destructuring with computed or non-identifier keys"); - } - const loc = locOf(el); - const read: IrExpr = { - kind: "jsOp", - op: "getProp", - name: prop.text, - args: [srcRef()], - type: JSVAL, - loc, - }; - if (!ts.isIdentifier(el.name)) { - // A nested pattern reads through its own handle temp. - const tmp = this.declareHiddenLocal("%destr", JSVAL); - out.push({ kind: "varDecl", localId: tmp.id, init: read, loc }); - this.lowerBindingPattern( - el.name, - () => ({ kind: "varRef", localId: tmp.id, type: JSVAL, loc }), - JSVAL, - isLet, - out, - ); - continue; - } - const declared = this.mapTypeOf(this.typeOf(el.name)); - const primitive = - declared && - (declared.kind === "f64" || declared.kind === "bool" || declared.kind === "string"); - const value: IrExpr = primitive - ? { kind: "jsExit", value: read, type: declared, loc } - : read; - const symbol = this.checker.getSymbolAtLocation(el.name); - const g = symbol ? this.globalsBySymbol.get(symbol) : undefined; - if (g) { - out.push({ - kind: "assign", - localId: g.id, - value: this.coerceInto(el.name, value, g.type), - loc, - }); - continue; - } - const local = this.declareLocal(el.name, el.name.text, value.type, isLet); - out.push({ kind: "varDecl", localId: local.id, init: value, loc }); - } - return; - } + return lowerBindingPattern( this, pattern, @@ -10500,106 +9883,6 @@ export class Lowerer { } lowerVarDecl(decl: ts.VariableDeclaration, isLet: boolean): IrStmt | null { - // ISLAND-HANDLE rescue (--dynamic): `const factory = (await - // import("./x.mjs")).default` / `const buf = islandReadFileSync(p)` — - // a binding whose DECLARED type either has no static mapping or has - // one no island value can EXIT to (bytes, functions, promises), but - // whose initializer is an island value. The declared type is a .d.ts - // surface over an engine value; the binding stays a HANDLE (jsval - // local) and typed use sites go through engine ops and validated - // exits like any island value. Exit-CAPABLE declared types (numbers, - // strings, JSON-safe composites, their undefined-armed unions) keep - // the standard path and its validated-exit machinery; so does - // everything non-island — including badType here when the - // initializer turns out not to be island-typed, which is exactly - // what the standard path would have reported. - // Only reference-shaped initializers are candidates (awaits, calls, - // member reads, identifiers, casts/parens over those): they are the - // island producers, and re-lowering one on the fall-through emits - // nothing twice — a lambda or literal initializer would (each - // lowering mints a fresh %fn), and is never an island value anyway. - const islandCandidate = (e: ts.Expression): boolean => { - let cur = e; - while ( - ts.isParenthesizedExpression(cur) || - ts.isAsExpression(cur) || - ts.isTypeAssertion(cur) || - ts.isNonNullExpression(cur) - ) { - cur = cur.expression; - } - if ( - !ts.isAwaitExpression(cur) && - !ts.isCallExpression(cur) && - !ts.isPropertyAccessExpression(cur) && - !ts.isElementAccessExpression(cur) && - !ts.isIdentifier(cur) - ) { - return false; - } - // A lambda ANYWHERE inside (a call argument) would emit its %fn - // twice across the fall-through's re-lowering — skip those. - let lambda = false; - const scan = (n: ts.Node): void => { - if (lambda) return; - if (ts.isArrowFunction(n) || ts.isFunctionExpression(n)) { - lambda = true; - return; - } - ts.forEachChild(n, scan); - }; - scan(cur); - return !lambda; - }; - if ( - this.dynamic && - ts.isIdentifier(decl.name) && - decl.initializer !== undefined && - // `var` stays out: the rescue's block-positioned jsval local can't - // model the function-scoped hoisted binding (a redeclaration or an - // out-of-block read would split the variable in two) — vars take the - // standard path and its own fences. - (ts.getCombinedNodeFlags(decl) & ts.NodeFlags.BlockScoped) !== 0 && - islandCandidate(decl.initializer) && - // createRequire's plumbing decls are COMPILE-TIME erasures (the - // require binding and its builtin-namespace bindings) — never - // island values; the standard path's skips own them. - !createRequireBindingDecl(this, decl.name, decl.initializer) && - !createRequireNamespaceDecl(this, decl.name, decl.initializer) - ) { - const mapped = this.mapTypeOf(this.typeOf(decl.name)); - const handleOnly = - mapped === null || - (mapped.kind !== "jsval" && - mapped.kind !== "void" && - !canExitIslandToType( - mapped, - (id) => this.shapes.get(id), - (id) => this.unions.get(id), - )); - const symbol = this.checker.getSymbolAtLocation(decl.name); - if (handleOnly && (!symbol || !this.globalsBySymbol.has(symbol))) { - const init = this.lowerExpr(decl.initializer); - if (init.type.kind === "jsval") { - const local = this.declareLocal(decl.name, decl.name.text, JSVAL, isLet); - return { kind: "varDecl", localId: local.id, init, loc: locOf(decl) }; - } - // The CHECKED-DYNAMIC twin of the handle rescue (the runtime-world - // local rule): an unmappable declared type over a dyn initializer - // (`const first = plugins[0]` — the checker spells 'string | - // object' while the read is a dyn keyed read) keeps the binding - // dyn; typed use sites ride validated extractions and the routed - // engine ops, exactly the JSON.parse-binding story. - if (mapped === null && init.type.kind === "dyn") { - const local = this.declareLocal(decl.name, decl.name.text, DYN, isLet); - return { kind: "varDecl", localId: local.id, init, loc: locOf(decl) }; - } - if (mapped === null) this.badType(decl.name, this.typeOf(decl.name)); - // A mappable declared type with a non-island initializer: the - // standard path owns it (the initializer lowered clean; re-running - // it re-produces the same IR with no duplicate diagnostics). - } - } return lowerVarDecl(this, decl, isLet); } @@ -10683,13 +9966,6 @@ export class Lowerer { return nodeTypesOnlySymbol(this, sym); } - /** True for an npm package's shipped declaration files — under - * node_modules but NOT the standard library (typescript's own lib files - * live under node_modules too), or inside a registered workspace-linked - * package (a node_modules symlink whose realpath'd files carry no - * node_modules segment — workspace-registry.ts). The provenance half of the npm - * typing rule (package types are island handles) and of the per-package - * requires-dynamic attribution. */ readonly isNpmFile = (sf: ts.SourceFile): boolean => sf.isDeclarationFile && (sf.fileName.includes("/node_modules/") || workspacePackageOfPath(sf.fileName) !== null) && @@ -10843,40 +10119,6 @@ export class Lowerer { } lowerAsExpression(expr: ts.AsExpression | ts.TypeAssertion): IrExpr { - // ISLAND value cast to a PROMISE type (`factory(opts) as Promise` - // — the Node-typed async-API shape): promises never have a validated - // exit, so instead of refusing the build the cast DEFERS the failure - // to runtime — island.castFail evaluates the value (its side effects - // are real) and throws a catchable TypeError naming the target, so - // typed-but-never-executed code (a wasm decode path behind a - // rejecting import) still compiles and a reached cast fails loudly at - // the exact site. Claimed only when the source is island-typed by the - // checker (jsval, or a promise whose inner is a handle); a source - // that lowers to a real static promise keeps erasure — the standard - // path's rule for non-island inners. Static builds keep their - // per-site diagnostics. - if (this.dynamic) { - const srcMapped = this.mapTypeOf(this.typeOf(expr.expression)); - const island = - srcMapped?.kind === "jsval" || - (srcMapped?.kind === "promise" && srcMapped.inner.kind === "jsval"); - if (island) { - const targetTs = this.checker.getTypeFromTypeNode(expr.type); - const target = this.mapTypeOf(targetTs); - if (target?.kind === "promise") { - const inner = this.lowerExpr(expr.expression); - if (inner.type.kind !== "jsval") return inner; // static promise: erasure - const loc = locOf(expr); - const name: IrExpr = { - kind: "strLit", - value: this.fmt(target), - type: STRING, - loc, - }; - return { kind: "libCall", fn: "island.castFail", args: [inner, name], type: target, loc }; - } - } - } return lowerAsExpression(this, expr); } @@ -11028,8 +10270,6 @@ export class Lowerer { } lowerCall(expr: ts.CallExpression): IrExpr { - // Ambient fetch (native in static builds, island-backed under - // --dynamic) and dynamic import() claim their calls before the general // dispatch. The general identifier-call paths have no lowering for a // promise-returning ambient global, and `import` is a keyword callee no // identifier path matches. @@ -11253,37 +10493,6 @@ export class Lowerer { } lowerNew(expr: ts.NewExpression): IrExpr { - // `new Uint8Array(handle)` (and the other typed-array ctors) over an - // ISLAND argument: the construction is an ENGINE operation — the - // engine's own constructor over the engine's own value (an Emscripten - // factory's `wasmBinary: new Uint8Array(buf)` where buf came off an - // island readFileSync) — and the instance stays a handle. The static - // bytes ctor cannot claim it (bytes never cross the boundary), so - // this preempts only when the single argument is island-typed; - // every static form keeps the standard path. - if ( - this.dynamic && - ts.isIdentifier(expr.expression) && - expr.arguments?.length === 1 && - !ts.isSpreadElement(expr.arguments[0]!) && - /^(Uint8|Uint8Clamped|Int8|Uint16|Int16|Uint32|Int32|Float32|Float64|BigInt64|BigUint64)Array$/.test( - expr.expression.text, - ) && - this.isStdlibSymbol(this.resolveValueSymbol(expr.expression) ?? undefined) && - this.isIslandExpr(expr.arguments[0]!) - ) { - const loc = locOf(expr); - const ctor: IrExpr = { - kind: "jsOp", - op: "globalGet", - name: expr.expression.text, - args: [], - type: JSVAL, - loc, - }; - const arg = this.lowerExpr(expr.arguments[0]!); - return { kind: "jsOp", op: "construct", args: [ctor, arg], type: JSVAL, loc }; - } const builtin = lowerAbortControllerNew(this, expr) ?? lowerFetchWebNew(this, expr) ?? @@ -12145,24 +11354,22 @@ export class Lowerer { return lowerNumberStaticProperty(this, expr); } - /* ── the island-backed ambient surface (ISLAND_SURFACE) ───────────── */ - - requireDynamicApi(feature: string, node: ts.Node, hint?: string): void { - return requireDynamicApi(this, feature, node, hint); + refuseUnsupportedApi(feature: string, node: ts.Node, hint?: string): never { + return refuseUnsupportedApi(this, feature, node, hint); } lowerMathProperty(expr: ts.PropertyAccessExpression): IrExpr | null { return lowerMathProperty(this, expr); } - islandGlobalFnOf(ident: ts.Identifier): IslandFnEntry | null { - return islandGlobalFnOf(this, ident); + stdlibGlobalFnOf(ident: ts.Identifier): StdlibFnEntry | null { + return stdlibGlobalFnOf(this, ident); } - lowerIslandMethodCall( + lowerStdlibMethodCall( call: ts.CallExpression, access: ts.PropertyAccessExpression, ): IrExpr | null { - return lowerIslandMethodCall(this, call, access); + return lowerStdlibMethodCall(this, call, access); } } diff --git a/packages/compiler/src/frontend/lowering/narrowing-stability.ts b/packages/compiler/src/frontend/lowering/narrowing-stability.ts index a1585a24b..9c7850ceb 100644 --- a/packages/compiler/src/frontend/lowering/narrowing-stability.ts +++ b/packages/compiler/src/frontend/lowering/narrowing-stability.ts @@ -406,7 +406,7 @@ export class NarrowingStability { const facts: ProgramFacts = { mutable: new Set(), accessors: new Set(), - wildcard: this.lowerer.dynamic, + wildcard: false, conversion: false, iteration: false, }; diff --git a/packages/compiler/src/frontend/lowering/optional-arguments.ts b/packages/compiler/src/frontend/lowering/optional-arguments.ts index f2467fddd..637c080d1 100644 --- a/packages/compiler/src/frontend/lowering/optional-arguments.ts +++ b/packages/compiler/src/frontend/lowering/optional-arguments.ts @@ -149,8 +149,6 @@ export function positionNumber( return numLit(0, loc); case "undefinedT": return defaultValue; - case "jsval": - return { kind: "jsExit", value, type: F64, loc }; case "union": { const unionId = value.type.unionId; const arms = lowerer.unions.get(unionId)!.arms; diff --git a/packages/compiler/src/frontend/lowering/sanitize-class-types.test.ts b/packages/compiler/src/frontend/lowering/sanitize-class-types.test.ts index d80499ef3..7e7a97182 100644 --- a/packages/compiler/src/frontend/lowering/sanitize-class-types.test.ts +++ b/packages/compiler/src/frontend/lowering/sanitize-class-types.test.ts @@ -21,7 +21,7 @@ test("fenced instance slots are erased throughout signatures, storage and nested }; const ref = (type: IrType): IrExpr => ({ kind: "varRef", localId: "x", type, loc }); const module: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", globals: [{ id: "g", name: "g", type: composite, mutable: false }], @@ -110,7 +110,7 @@ test("modules without optional tables and registered class types retain their st const loc = { file: "registered.ts", start: 0, end: 1 }; const type: IrType = { kind: "object", className: "Registered" }; const module: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [ diff --git a/packages/compiler/src/frontend/lowering/strict-equality.ts b/packages/compiler/src/frontend/lowering/strict-equality.ts index 471526735..7b9b6902b 100644 --- a/packages/compiler/src/frontend/lowering/strict-equality.ts +++ b/packages/compiler/src/frontend/lowering/strict-equality.ts @@ -37,11 +37,7 @@ function atomicEquality( ): IrExpr | null { const a = left.type, b = right.type; - if ( - [a.kind, b.kind].some( - (kind) => kind === "dyn" || kind === "jsval" || kind === "caught" || kind === "void", - ) - ) + if ([a.kind, b.kind].some((kind) => kind === "dyn" || kind === "caught" || kind === "void")) return null; if (isUnitType(a) || isUnitType(b)) return boolLit(a.kind === b.kind, loc); if (a.kind === "object" && b.kind === "object" && !typeEquals(a, b)) { diff --git a/packages/compiler/src/frontend/lowering/surfaces.ts b/packages/compiler/src/frontend/lowering/surfaces.ts index 91ef6c4b5..c69c180f2 100644 --- a/packages/compiler/src/frontend/lowering/surfaces.ts +++ b/packages/compiler/src/frontend/lowering/surfaces.ts @@ -1,9 +1,3 @@ -/* Surface tables and provenance predicates of the lowerer: the island - * surface (Math/number/string/global functions marshalable through the - * dynamic island), the node builtin-module call tables and their fence - * hints, the string/array/map/set method-name sets, the unsupported-syntax - * diagnostic tables, and the "which world declared this symbol" predicates - * (ambient scriptc.d.ts / standard lib / @types/node provenance). */ import * as ts from "../ts7/adapter.js"; import type { Lowerer } from "./lowerer.js"; import { UNSUPPORTED } from "../../diagnostics/diagnostic.js"; @@ -27,7 +21,7 @@ import { VOID, arrayOf, } from "../../ir/ir.js"; -import { isJsSourceFile, isNodeTypesPath, requireSpecOf } from "../program.js"; +import { isNodeTypesPath, requireSpecOf } from "../program.js"; /** Statement-level constructs rejected wholesale, keyed by syntax kind. */ export const UNSUPPORTED_STMT: Partial< @@ -580,14 +574,12 @@ export const STR_METHODS: Record< // lowering so the IR/runtime always see the spec's effective value. // Empty separator splits per UTF-16 code unit — // astral halves become U+FFFD (SEMANTICS.md divergence 2, the same - // substitution the island's boundary marshal applied). + split: { method: "split", result: arrayOf(STRING), minArgs: 0, maxArgs: 2 }, // Padding completes omitted lengths and fill strings in its lowering. padStart: { method: "padStart", result: STRING, minArgs: 0, maxArgs: 2 }, padEnd: { method: "padEnd", result: STRING, minArgs: 0, maxArgs: 2 }, - // The lre-backed pair (ECMA Default Case Conversion, final sigma - // included — scr_regex.c): static now, no island needed; their presence - // flips the regex LINK switch (moduleUsesRegex). + // Unicode case conversion shares the libregexp/libunicode link inputs. toLowerCase: { method: "toLowerCase", result: STRING, minArgs: 0, maxArgs: 0 }, toUpperCase: { method: "toUpperCase", result: STRING, minArgs: 0, maxArgs: 0 }, normalize: { method: "normalize", result: STRING, minArgs: 0, maxArgs: 1 }, @@ -605,18 +597,14 @@ export const STRING_INDEX_METHODS = new Set(["at", "codePointAt"]); /** String-pattern replacement composes native search, slice, and callback operations. */ export const STRING_REPLACE_METHODS = new Set(["replace", "replaceAll"]); -/** One member of the island-backed ambient surface: declared argument - * types (tsc enforces them at call sites; the arity double-checks the - * table against the ambient file) and the validated island-exit target the - * engine's result must satisfy. */ -export interface IslandFnEntry { +export interface StdlibFnEntry { args: IrType[]; ret: IrType; } -const ISL_N1: IslandFnEntry = { args: [F64], ret: F64 }; +const ISL_N1: StdlibFnEntry = { args: [F64], ret: F64 }; -const ISL_N2: IslandFnEntry = { args: [F64, F64], ret: F64 }; +const ISL_N2: StdlibFnEntry = { args: [F64, F64], ret: F64 }; export const boundaryIntoIslandMsg = (typeName: string): string => `passing a value of type '${typeName}' into dynamically-executed ('any'-typed) code ` + @@ -628,27 +616,7 @@ export const boundaryOutOfIslandMsg = (typeName: string): string => `(an 'any' value can only exit to numbers, strings, booleans, JSON-safe records/arrays/unions, ` + `and 'T | undefined' over those)`; -/** The island-backed surface — standard-library APIs with no static - * runtime implementation (Math methods outside STATIC_MATH_FNS, - * number/string methods beyond the - * intrinsic set, parseFloat, ...). ONE table drives both sides of the - * gate: under --dynamic each entry lowers to marshal → engine execution → - * validated exit to the declared return type; without the flag each use - * site is a per-site SC2012. Membership here is only half the check — the - * resolved symbol must be declared by the standard library (provenance, - * never names), so a user's own `parseFloat` or `.toFixed` takes the - * ordinary paths. The lib declares MORE than this table (extra members, - * optional-parameter forms): everything untabled falls through to the - * SC2020 lib fence — never an ICE, never a link error. Exported so the - * table-vs-lib consistency test can check every entry against the lib's - * own declarations — a drifted entry fails a test instead of surprising a - * user. */ -export const ISLAND_SURFACE = { - /** `Math.(...)` lowers to callMethod(globalGet("Math"), fn, args); - * Math constants are compile-time numeric literals in STATIC_MATH_PROPS; - * remaining Math properties retain island/fence behavior. - * The entries here handle untabled scalar call shapes where --dynamic is - * available; STATIC_MATH_FNS handles the ordinary typed calls first. */ +export const STDLIB_SURFACE = { math: { // The static table below handles these methods at its admitted arities. fns: { @@ -683,8 +651,8 @@ export const ISLAND_SURFACE = { tan: ISL_N1, tanh: ISL_N1, trunc: ISL_N1, - } as Record, - // Math constants are compile-time literals, not island properties. + } as Record, + props: {} as Record, }, /** Methods on `number` receivers. The receiver marshals by value; the @@ -695,7 +663,7 @@ export const ISLAND_SURFACE = { toFixed: { args: [F64], ret: STRING }, toPrecision: { args: [F64], ret: STRING }, toString: { args: [F64], ret: STRING }, - } as Record, + } as Record, /** Methods on `string` receivers beyond the static strIntrinsic set * (split/pad/trimStart/trimEnd moved to STR_METHODS — static now). * replace/replaceAll take STRING patterns (no regex is declared). `at` @@ -706,24 +674,14 @@ export const ISLAND_SURFACE = { replace: { args: [STRING, STRING], ret: STRING }, replaceAll: { args: [STRING, STRING], ret: STRING }, at: { args: [F64], ret: STRING }, - } as Record, - /** Global functions: parseInt and isNaN are STATIC (lower-calls.ts → - * num.parseInt/num.isNaN), and parseFloat/isFinite lower statically - * over EXACTLY-typed arguments (a string for parseFloat, a number for - * isFinite — num.parseFloat/number.isFinite); these island entries - * carry every OTHER argument shape, where the ToNumber/ToString - * coercions stay engine territory. */ + } as Record, + globals: { parseFloat: { args: [STRING], ret: F64 }, isFinite: { args: [F64], ret: BOOL }, - } as Record, + } as Record, }; -/** Math properties with a STATIC lowering: each read becomes the exact - * JavaScript numeric constant in the typed IR. No runtime Math object read or - * dynamic-engine dependency is involved. Remaining Math properties retain - * their island/fence behavior through ISLAND_SURFACE.math.props and the - * generic standard-library member fence. */ export const STATIC_MATH_PROPS: Record = { E: 2.718281828459045, LN10: 2.302585092994046, @@ -735,10 +693,6 @@ export const STATIC_MATH_PROPS: Record = { SQRT2: 1.4142135623730951, }; -/** Math members with a STATIC lowering. Most use the tabled arity; min/max - * accept any plain arity, and hypot accepts any arity including number[] - * spreads. Checked before the island table by lowerIslandMethodCall and - * included in the methods-as-values fence by lowerMathProperty. */ export const STATIC_MATH_FNS: Record = { floor: { fn: "math.floor", arity: 1 }, abs: { fn: "math.abs", arity: 1 }, @@ -2441,7 +2395,7 @@ export const BUILTIN_MODULE_FENCE_HINTS: Record< createRequire: "the lowered shape is a const binding (or a proven stable top-level let/var) over createRequire(import.meta.url) (or __filename) " + "whose require calls take STATIC string literals — builtins, project modules (including #imports), " + - "relative .json documents, --npm-static packages, and installed npm packages under --dynamic resolve at build time; " + + "relative .json documents and natively compiled npm packages resolve at build time; " + "dynamic specifiers cannot exist in a compiled binary's fixed module graph", isBuiltin: "the lowered call checks a string against the baked Node v24 list, including bare/node: aliases and prefix-only builtins", @@ -2568,7 +2522,7 @@ export function stdlibMemberFence(lowerer: Lowerer, access: ts.PropertyAccessExp "with an INLINE handler, and p.finally(cb) compile) — try { await p } catch (e) is the general form"; } else if (recvIr?.kind === "f64" && member === "toString") { hint = - "radix-free conversion is a template literal away: `${x}`; toString(radix) runs under --dynamic"; + "radix-free conversion is a template literal away: `${x}`; toString(radix) is unsupported"; } else if (container === "Math" && (member === "min" || member === "max")) { hint = `Math.${member} lowers with any number of plain arguments or ONE number[] spread — ` + @@ -2860,22 +2814,6 @@ export function stdlibGlobalAliasNameOf( ? "process" : stdlibGlobalNameOf(lowerer, aliasExpr); if (name === null) return null; - // An explicitly any-typed globalThis binding in dynamic TypeScript - // holds the engine's global object. Keep the static alias for JS files - // (their bare-global value path uses identity tokens) and for the - // `globalThis || global` guard that the static alias path folds. - let directInit = init; - while (ts.isParenthesizedExpression(directInit)) directInit = directInit.expression; - if ( - name === "globalThis" && - lowerer.dynamic && - !isJsSourceFile(init.getSourceFile()) && - ts.isIdentifier(directInit) && - directInit.text === "globalThis" && - ts.isVariableDeclaration(init.parent) && - (lowerer.typeOf(init.parent.name).flags & ts.TypeFlags.Any) !== 0 - ) - return null; // These globals have provenance-aware call or member lowering, so a // stable snapshot keeps the same dispatch as the original global. // Other callable globals still use their ordinary value paths. diff --git a/packages/compiler/src/frontend/module-syntax.ts b/packages/compiler/src/frontend/module-syntax.ts index 30f58da05..6812e98e4 100644 --- a/packages/compiler/src/frontend/module-syntax.ts +++ b/packages/compiler/src/frontend/module-syntax.ts @@ -25,9 +25,7 @@ export interface SpecifierUse { requireViaHelper: boolean; /** import("x") — evaluation-time. */ dynamicImport: boolean; - /** import.meta.resolve("x") — resolves synchronously without loading. - * It still needs an emitted edge for bare package names so the island can - * answer from its fixed graph; relative and URL-like names need no edge. */ + importMetaResolve: boolean; } diff --git a/packages/compiler/src/frontend/npm-fetch-analysis.test.ts b/packages/compiler/src/frontend/npm-fetch-analysis.test.ts deleted file mode 100644 index 317b34fd2..000000000 --- a/packages/compiler/src/frontend/npm-fetch-analysis.test.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { mkdtempSync, rmSync, writeFileSync } from "node:fs"; -import { join } from "node:path"; -import { tmpdir } from "node:os"; -import { afterEach, expect, test, vi } from "vitest"; -import { NpmFetchAnalyzer, type FetchAnalysisModule } from "./npm-fetch-analysis.js"; -import { Ts7Api } from "./ts7/rpc-api.js"; -import type { Ts7FileSystem } from "./ts7/rpc-filesystem.js"; - -const directories: string[] = []; -afterEach(() => { - for (const dir of directories.splice(0)) rmSync(dir, { recursive: true, force: true }); -}); -function directory(): string { - const dir = mkdtempSync( - join(process.platform === "win32" ? tmpdir() : "/tmp", "scriptc-fetch-analysis-"), - ); - directories.push(dir); - return dir; -} -function module(key: string, source: string): FetchAnalysisModule { - return { key, source, format: "cjs" }; -} - -test("preserves original loader keys, ignores JSON, and isolates each module's bindings", () => { - const analyzer = new NpmFetchAnalyzer((options) => new Ts7Api(options), directory()); - try { - const files = [ - module("local", "const fetch = () => 1; fetch();"), - module("bare", "fetch();"), - module("C:\\包\\main.js", "globalThis.fetch();"), - module("工作.mjs", "global.fetch();"), - module("typed.ts", "module.exports = fetch;"), - module("scr:import-trap:0", "globalThis.fetch;"), - { key: "data.json", source: "fetch()", format: "json" as const }, - ]; - expect([...analyzer.analyze(files)]).toEqual([ - "bare", - "C:\\包\\main.js", - "工作.mjs", - "typed.ts", - "scr:import-trap:0", - ]); - } finally { - analyzer.close(); - } -}); - -test("repeated analysis sees edits, removals, and reused names without retaining symbols", () => { - const analyzer = new NpmFetchAnalyzer((options) => new Ts7Api(options), directory()); - try { - expect([...analyzer.analyze([module("same.js", "fetch();")])]).toEqual(["same.js"]); - expect([...analyzer.analyze([module("same.js", "const fetch = () => 1; fetch();")])]).toEqual( - [], - ); - expect([...analyzer.analyze([])]).toEqual([]); - expect([...analyzer.analyze([module("same.js", "globalThis.fetch();")])]).toEqual(["same.js"]); - } finally { - analyzer.close(); - } - analyzer.close(); - expect(() => analyzer.analyze([])).toThrow("closed"); -}); - -test("a closed filesystem never reads ambient declarations or packages from disk", () => { - const dir = directory(); - writeFileSync(join(dir, "ambient.d.ts"), "declare const fetch: () => void;"); - writeFileSync( - join(dir, "tsconfig.json"), - JSON.stringify({ compilerOptions: { types: ["node"] } }), - ); - let fs!: Ts7FileSystem; - const analyzer = new NpmFetchAnalyzer((options) => { - fs = options.fs; - return new Ts7Api(options); - }, dir); - try { - expect([ - ...analyzer.analyze([module("main.js", "/// \nfetch();")]), - ]).toEqual(["main.js"]); - expect(fs.readFile(join(dir, "ambient.d.ts"))).toBeNull(); - expect(fs.fileExists(join(dir, "ambient.d.ts"))).toBe(false); - expect(fs.getAccessibleEntries(dir)).toEqual({ files: [], directories: [] }); - expect(fs.readFile(join(dir, "main.js"))).toBeNull(); - } finally { - analyzer.close(); - } -}); - -test("rejects path aliases instead of attributing a capability to a different loader key", () => { - const factory = vi.fn((options) => new Ts7Api(options)); - const analyzer = new NpmFetchAnalyzer(factory, directory()); - expect(() => - analyzer.analyze([module("same", "fetch();"), module("same.js", "const fetch = 1;")]), - ).toThrow("share a TypeScript path"); - expect(factory).not.toHaveBeenCalled(); -}); - -test("closes an opened API after failure and allows a fresh subsequent analysis", () => { - const dir = directory(); - let fail = true; - const closes: ReturnType[] = []; - const analyzer = new NpmFetchAnalyzer((options) => { - const api = new Ts7Api(options); - closes.push(vi.spyOn(api, "close")); - if (fail) - vi.spyOn(api, "updateSnapshot").mockImplementation(() => { - throw new Error("snapshot failed"); - }); - return api; - }, dir); - try { - expect(() => analyzer.analyze([module("main.js", "fetch();")])).toThrow("snapshot failed"); - expect(closes[0]).toHaveBeenCalledTimes(1); - fail = false; - expect([...analyzer.analyze([module("main.js", "fetch();")])]).toEqual(["main.js"]); - expect(closes[1]).toHaveBeenCalledTimes(1); - } finally { - analyzer.close(); - } -}); - -test("relative imports bind local names in mixed ESM and CommonJS graphs", () => { - const analyzer = new NpmFetchAnalyzer((options) => new Ts7Api(options), directory()); - try { - expect([ - ...analyzer.analyze([ - { key: "dep.js", source: "export const fetch = () => 1;", format: "esm" }, - { - key: "importer.mjs", - source: "import { fetch } from './dep.js'; export const result = fetch();", - format: "esm", - }, - module("cjs.cjs", "const {fetch} = require('./dep.js'); fetch();"), - module("global.js", "fetch();"), - ]), - ]).toEqual(["global.js"]); - } finally { - analyzer.close(); - } -}); diff --git a/packages/compiler/src/frontend/npm-fetch-analysis.ts b/packages/compiler/src/frontend/npm-fetch-analysis.ts deleted file mode 100644 index f7703f4ba..000000000 --- a/packages/compiler/src/frontend/npm-fetch-analysis.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { resolve } from "node:path"; -import { Ts7Api } from "./ts7/api.js"; -import type { Ts7SourceApiFactory } from "./ts7/source-parser.js"; -import { Ts7Paths, tsgoPath } from "./ts7/session-path.js"; -import { sourceFilesUsingGlobalFetch } from "./npm-fetch-syntax.js"; - -export interface FetchAnalysisModule { - key: string; - source: string; - format: "esm" | "cjs" | "json"; -} - -/** A closed semantic project over the source strings already owned by an - * embedded module graph. Every call binds a fresh graph: no AST, symbol or - * filesystem overlay survives disposal, including after a failed query. */ -export class NpmFetchAnalyzer { - private closed = false; - - constructor( - private readonly createApi: Ts7SourceApiFactory, - private readonly cwd = process.cwd(), - ) {} - - analyze(modules: readonly FetchAnalysisModule[]): ReadonlySet { - if (this.closed) throw new Error("npm fetch analyzer is closed"); - const paths = new Ts7Paths(tsgoPath(resolve(this.cwd)), process.platform !== "win32"); - const files = new Map(); - const keys = new Map(); - for (const mod of modules) { - if (mod.format === "json") continue; - // Embedded modules may have virtual loader keys without a JS suffix. - // Their source is JavaScript regardless of the loader's key spelling. - const path = paths.canonical(/\.[cm]?js$/.test(mod.key) ? mod.key : mod.key + ".js"); - const existing = keys.get(path); - if (existing !== undefined && existing !== mod.key) - throw new Error(`npm module keys share a TypeScript path: ${existing}, ${mod.key}`); - files.set(path, mod.source); - keys.set(path, mod.key); - } - if (files.size === 0) return new Set(); - const roots = [...files.keys()]; - let config = paths.canonical("__scriptc-fetch.tsconfig.json"); - while (files.has(config)) config += ".json"; - files.set( - config, - JSON.stringify({ - compilerOptions: { - allowJs: true, - checkJs: false, - noLib: true, - types: [], - noEmit: true, - target: "esnext", - module: "esnext", - moduleDetection: "force", - }, - files: roots, - include: [], - }), - ); - let api: Ts7Api | undefined; - try { - api = this.createApi({ - cwd: resolve(this.cwd), - fs: { - readFile: (path) => files.get(paths.canonical(path)) ?? null, - fileExists: (path) => files.has(paths.canonical(path)), - directoryExists: (path) => { - const dir = paths.canonical(path); - const prefix = dir.endsWith("/") ? dir : dir + "/"; - for (const file of files.keys()) if (file.startsWith(prefix)) return true; - return false; - }, - realpath: (path) => path, - getAccessibleEntries: () => ({ files: [], directories: [] }), - }, - }); - const snapshot = api.updateSnapshot({ openProjects: [config] }); - try { - const project = snapshot.getProject(config); - if (project === undefined) throw new Error("could not bind embedded npm module graph"); - const sources = roots.map((path) => { - const file = project.program.getSourceFile(path); - if (file === undefined) throw new Error(`could not bind npm module ${keys.get(path)}`); - return file; - }); - const found = new Set(); - for (const file of sourceFilesUsingGlobalFetch(sources, project.checker)) { - const key = keys.get(paths.canonical(file)); - if (key !== undefined) found.add(key); - } - return found; - } finally { - snapshot.dispose(); - } - } finally { - try { - api?.close(); - } finally { - files.clear(); - } - } - } - - close(): void { - this.closed = true; - } -} diff --git a/packages/compiler/src/frontend/npm-fetch-node.ts b/packages/compiler/src/frontend/npm-fetch-node.ts deleted file mode 100644 index 35942d1be..000000000 --- a/packages/compiler/src/frontend/npm-fetch-node.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { NpmFetchAnalyzer, type FetchAnalysisModule } from "./npm-fetch-analysis.js"; -import { Ts7Api } from "./ts7/rpc-api.js"; - -export function embeddedModulesUsingGlobalFetch( - modules: readonly FetchAnalysisModule[], -): ReadonlySet { - const analyzer = new NpmFetchAnalyzer((options) => new Ts7Api(options)); - try { - return analyzer.analyze(modules); - } finally { - analyzer.close(); - } -} diff --git a/packages/compiler/src/frontend/npm-fetch-syntax.ts b/packages/compiler/src/frontend/npm-fetch-syntax.ts deleted file mode 100644 index e8771d9fb..000000000 --- a/packages/compiler/src/frontend/npm-fetch-syntax.ts +++ /dev/null @@ -1,232 +0,0 @@ -/** Read global-fetch capabilities from a bound, no-library module graph. - * Symbol identity keeps parameters, imports and same-named locals distinct - * from global reads and from aliases captured in another scope. */ -import * as ts from "./ts7/syntax.js"; -import { SemanticChecker } from "./ts7/semantic-checker.js"; -import { SemanticSymbol } from "./ts7/semantic-model.js"; -export function sourceFilesUsingGlobalFetch( - files: readonly ts.SourceFile[], - checker: SemanticChecker, -): Set { - const found = new Set(); - const unwrapParentheses = (node: ts.Expression): ts.Expression => { - let current = node; - while (ts.isParenthesizedExpression(current)) current = current.expression; - return current; - }; - - const unboundGlobalObject = (candidate: ts.Expression): boolean => { - const node = unwrapParentheses(candidate); - if (!ts.isIdentifier(node) || (node.text !== "globalThis" && node.text !== "global")) { - return false; - } - const symbol = checker.getSymbolAtLocation(node); - // TypeScript synthesizes a declaration-less globalThis symbol even in a - // no-lib program. A source shadow (parameter/local/import) always carries - // at least one declaration; the Node `global` alias remains unresolved. - return ( - symbol === undefined || symbol.declarations === undefined || symbol.declarations.length === 0 - ); - }; - - const globalObjectExpression = ( - candidate: ts.Expression, - aliases: ReadonlySet, - ): boolean => { - const node = unwrapParentheses(candidate); - if (unboundGlobalObject(node)) return true; - if (ts.isIdentifier(node)) { - const symbol = checker.getSymbolAtLocation(node); - if (symbol === undefined) return false; - if (aliases.has(symbol)) return true; - return ( - (symbol.flags & ts.SymbolFlags.Alias) !== 0 && aliases.has(checker.getAliasedSymbol(symbol)) - ); - } - if (ts.isConditionalExpression(node)) { - return ( - globalObjectExpression(node.whenTrue, aliases) || - globalObjectExpression(node.whenFalse, aliases) - ); - } - if (ts.isBinaryExpression(node)) { - switch (node.operatorToken.kind) { - case ts.SyntaxKind.BarBarToken: - case ts.SyntaxKind.QuestionQuestionToken: - case ts.SyntaxKind.AmpersandAmpersandToken: - // A platform selector can yield either operand. Treat either - // global-object arm as capability provenance; over-linking a - // dead arm is safer than silently omitting fetch at runtime. - return ( - globalObjectExpression(node.left, aliases) || - globalObjectExpression(node.right, aliases) - ); - case ts.SyntaxKind.CommaToken: - return globalObjectExpression(node.right, aliases); - } - } - return false; - }; - - const staticPropertyName = (name: ts.PropertyName | ts.BindingName): string | null => { - if (ts.isIdentifier(name) || ts.isStringLiteralLike(name)) return name.text; - if (ts.isComputedPropertyName(name) && ts.isStringLiteralLike(name.expression)) { - return name.expression.text; - } - return null; - }; - - /** `const { fetch } = globalThis` binds a local identifier, so the - * checker quite correctly resolves every later `fetch` read to that local. - * The capability read happens at the binding pattern itself. The same is - * true for aliases, computed literal keys, and defaulted parameters. */ - const bindingReadsGlobalFetch = ( - node: ts.BindingElement, - aliases: ReadonlySet, - ): boolean => { - const pattern = node.parent; - if (!ts.isObjectBindingPattern(pattern)) return false; - const key = node.propertyName ?? (ts.isIdentifier(node.name) ? node.name : null); - if (key === null || staticPropertyName(key) !== "fetch") return false; - - const owner = pattern.parent; - if ( - (ts.isVariableDeclaration(owner) || ts.isParameter(owner) || ts.isBindingElement(owner)) && - owner.name === pattern && - owner.initializer !== undefined - ) { - return globalObjectExpression(owner.initializer, aliases); - } - return false; - }; - - /** Assignment destructuring is represented as an object-literal-shaped - * assignment target rather than an ObjectBindingPattern. */ - const assignmentReadsGlobalFetch = ( - node: ts.BinaryExpression, - aliases: ReadonlySet, - ): boolean => { - if ( - node.operatorToken.kind !== ts.SyntaxKind.EqualsToken || - !globalObjectExpression(node.right, aliases) - ) { - return false; - } - const target = unwrapParentheses(node.left); - if (!ts.isObjectLiteralExpression(target)) return false; - return target.properties.some((property) => { - if (ts.isShorthandPropertyAssignment(property)) return property.name.text === "fetch"; - return ts.isPropertyAssignment(property) && staticPropertyName(property.name) === "fetch"; - }); - }; - - const bareIdentifierRead = (node: ts.Identifier): boolean => { - const parent = node.parent; - // Binding-element names and aliases are declarations/property keys; the - // global-object destructuring case is handled explicitly above. - if (ts.isBindingElement(parent) && (parent.name === node || parent.propertyName === node)) - return false; - if ( - (ts.isLabeledStatement(parent) || - ts.isBreakStatement(parent) || - ts.isContinueStatement(parent)) && - parent.label === node - ) { - return false; - } - if (ts.isQualifiedName(parent) && parent.right === node) return false; - // Imported/exported names are module member names or declarations, - // never reads of Node's global binding. This matters when the custom - // no-lib program cannot resolve the referenced package and therefore - // has no checker symbol for an ImportSpecifier.propertyName. - if (ts.isImportSpecifier(parent) || ts.isExportSpecifier(parent)) return false; - - // Named declarations and object/class property names are not reads. - // A shorthand property is the exception: `{ fetch }` evaluates the - // identifier and therefore needs the global when it is unbound. - if (parent?.name === node && !ts.isShorthandPropertyAssignment(parent)) return false; - return true; - }; - - const bareIdentifierIsUnbound = (node: ts.Identifier): boolean => { - const parent = node.parent; - // The binder gives `{ fetch }` a symbol for the PROPERTY it creates; - // the value-side symbol is the one that answers whether the shorthand - // reads a local binding or Node's global. - if (ts.isShorthandPropertyAssignment(parent) && parent.name === node) { - return checker.getShorthandAssignmentValueSymbol(parent) === undefined; - } - return checker.getSymbolAtLocation(node) === undefined; - }; - - for (const sourceFile of files) { - // Package bootstraps commonly snapshot or select the global object before - // reading capabilities (`const root = globalThis || global; root.fetch`). - // Resolve alias chains by symbol, so a same-named parameter/local in - // another scope cannot inherit the classification. Mutable declarations - // are conservative: a global initializer means some executable path can - // retain that value. Iterate to a fixed point so declaration order does - // not matter. - const globalObjectAliases = new Set(); - let addedAlias = true; - while (addedAlias) { - addedAlias = false; - const collectAliases = (node: ts.Node): void => { - if ( - ts.isVariableDeclaration(node) && - ts.isIdentifier(node.name) && - node.initializer !== undefined && - globalObjectExpression(node.initializer, globalObjectAliases) - ) { - const symbol = checker.getSymbolAtLocation(node.name); - if (symbol !== undefined && !globalObjectAliases.has(symbol)) { - globalObjectAliases.add(symbol); - addedAlias = true; - } - } - }; - ts.walkPreorder(sourceFile, collectAliases); - } - - let usesFetch = false; - const visit = (node: ts.Node): void => { - if (usesFetch) return; - if ( - (ts.isBindingElement(node) && bindingReadsGlobalFetch(node, globalObjectAliases)) || - (ts.isBinaryExpression(node) && assignmentReadsGlobalFetch(node, globalObjectAliases)) - ) { - usesFetch = true; - return; - } - if ( - ts.isPropertyAccessExpression(node) && - node.name.text === "fetch" && - globalObjectExpression(node.expression, globalObjectAliases) - ) { - usesFetch = true; - return; - } - if ( - ts.isElementAccessExpression(node) && - ts.isStringLiteralLike(node.argumentExpression) && - node.argumentExpression.text === "fetch" && - globalObjectExpression(node.expression, globalObjectAliases) - ) { - usesFetch = true; - return; - } - if (ts.isIdentifier(node) && node.text === "fetch") { - // Every real bare read has no symbol in this no-lib program unless - // source syntax binds it. Syntactic names without symbols (labels, - // destructuring keys) are filtered separately. - if (bareIdentifierRead(node) && bareIdentifierIsUnbound(node)) { - usesFetch = true; - return; - } - } - }; - ts.walkPreorder(sourceFile, visit); - if (usesFetch) found.add(sourceFile.fileName); - } - return found; -} diff --git a/packages/compiler/src/frontend/npm-node.ts b/packages/compiler/src/frontend/npm-node.ts index 07c26947a..fb7758601 100644 --- a/packages/compiler/src/frontend/npm-node.ts +++ b/packages/compiler/src/frontend/npm-node.ts @@ -1,16 +1,8 @@ /** Standalone Node helpers. Compiler clients pass their owned services to * the core graph builder so its parsing work follows the load lifecycle. */ -import { NpmGraphBuilder as CoreGraphBuilder, type NpmGraphHost } from "./npm.js"; import { nodeFrontendServices } from "./services-node.js"; import { moduleSpecifiersOfFile, type ModuleSpecifiers } from "./module-syntax.js"; export * from "./npm.js"; -export { embeddedModulesUsingGlobalFetch } from "./npm-fetch-node.js"; - -export class NpmGraphBuilder extends CoreGraphBuilder { - constructor(host?: NpmGraphHost) { - super(nodeFrontendServices(), host); - } -} export function moduleSpecifiersOf(source: string, fileName: string): ModuleSpecifiers { return moduleSpecifiersOfFile(nodeFrontendServices().parse(fileName, source, "js")); diff --git a/packages/compiler/src/frontend/npm-static-rewrite-syntax.ts b/packages/compiler/src/frontend/npm-static-rewrite-syntax.ts index 596bcbcf5..778608b22 100644 --- a/packages/compiler/src/frontend/npm-static-rewrite-syntax.ts +++ b/packages/compiler/src/frontend/npm-static-rewrite-syntax.ts @@ -1,77 +1,3 @@ -/* --npm-static's bundler-emitted-CJS export surface: the getter-table - * shapes. A bundler-emitted CJS dist exports through runtime plumbing the - * checker cannot model — the `__export(target, { name: () => value, ... })` - * getter table behind `module.exports = __toCommonJS(target)`, the - * `Object.defineProperty(exports, 'n', { get })` family, and the - * transpiler star re-exports (`__exportStar(require('./x'), exports)`, - * `__reExport(target, require('./x'), module.exports)`). Node's CJS lexer - * SEES those named exports (cjs-lexer.ts mirrors it exactly), so named - * imports link under Node — but the inferred surface the opted-in - * resolution feeds the checker is an opaque object, and every import site - * reports "X has no exported member" (the SC0001 storm that used to gate - * the whole build). - * - * THE REWRITE. For an opted-in package's CJS file whose exports come from - * these shapes, the fs shadow (npm-static.ts) serves BOTH worlds — the - * checker and the lowering ride one program — a text rewrite that spells - * the same export surface in the plain CJS the whole existing machinery - * already models: - * - * - the recognized plumbing statements are SPACE-PADDED in place - * (newlines kept, so every original line/offset survives): the - * `module.exports = __toCommonJS(target)` assignment, the - * `__export(target, {...})` call, the star-pattern calls, the - * recognized defineProperty exports, and the dead esbuild annotation - * `0 && (module.exports = {...})` (left live it poisons the checker's - * alias resolution — multiple module.exports assignments make import - * aliases land on properties no lowering path resolves); - * - one canonical export table is APPENDED at the tail: - * `module.exports = { ...require("./star"), own: local, ... };` - * Each getter body the chase can follow types the export by its - * resolved VALUE (`() => localBinding` resolves to the binding's - * inferred type; member chains and scalar literals hoist to a tail - * const first), and every lexer-visible name the chase cannot follow - * falls back to a checked-dynamic `any` binding (value undefined — - * exactly what Node's import binds for a lexer-visible name the - * runtime export object never carries). - * - * LEXER PARITY IS THE CONTRACT: the rewritten text must answer the SAME - * name set to cjs-lexer.ts that the original answers to Node — named - * imports must link exactly where Node's would. The table is formatted - * for merve's byte rules (`name: IDENT,` — value ident runs directly - * followed by ','), star re-exports ride spread entries (recorded as - * reexports and resolved recursively, exactly Node's union), and the - * esbuild `__esModule: !0` marker is spelled as a deliberate SCAN STOPPER - * so it stays lexer-invisible (Node never lexes __esModule out of - * __toCommonJS) while member-access star entries after it are covered by - * the spread records. - * - * SNAPSHOT SEMANTICS (the documented divergence): the getter table reads - * its locals LIVE at every access; the canonical table captures values - * ONCE, at module tail — after every top-level statement ran, so ordinary - * modules see identical values, and only post-evaluation reassignment of - * an exported local (the lazy-cache counter idiom) can diverge. Star - * re-export targets load at module tail instead of their original - * statement positions (visible only to load-order-sensitive side - * effects). Node's __esModule marker survives on the rewritten object. - * - * THE IMPORT-SIDE TWIN: the same pass erases esbuild's __toESM interop - * wrapper around EXTERNAL dependencies (`var import_x = - * __toESM(require("x"))`, the `, 1` node-mode variant, inline - * member-accessed forms) — see the section header at planToEsmInterop. - * The wrapper pads down to the bare require it wraps and module-valued - * `.default` accesses pad down to their binding, so member accesses model - * on the required package's canonical table through the ordinary require - * machinery. Interop the recognizers cannot finish answers `{ degrade }`: - * the caller reports the package as an offender (naming the construct) - * and it serves from the island — never a failed build. - * - * Everything here is SYNTACTIC (the owned native TypeScript AST): the chase decides only what TEXT to emit — the - * checker then infers the types from the emitted spellings. A file whose - * export mechanism the recognizers cannot fully account for is left - * untouched (null): its import-site errors stay, and the frontend's - * offender attribution degrades the PACKAGE to the island with a note. */ - import * as ts from "./ts7/syntax.js"; import { bareRequireSpecOf, @@ -245,28 +171,6 @@ function isPlainName(name: string): boolean { return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name); } -/* ── the __toESM(require(…)) interop import ────────────────────────────── - * esbuild's CJS output wraps every import of an EXTERNAL (unbundled) - * dependency in its __toESM helper: `var import_x = __toESM(require("x"))` - * (a trailing `, 1` in node mode). The wrapper's runtime semantics are - * static facts the required target decides: `default` binds the required - * module.exports itself (node mode, or a target whose __esModule is not - * truthy — the plain-CJS answer) or passes through to the target's own - * `default` export (the transpiled-ESM stamps), and every other member is - * a getter passthrough of the target's export. So the wrapper ERASES: the - * call pads down to the bare `require("x")` it wraps (a require binding - * the whole existing machinery models — the edge, the inline %init, the - * canonical-table member reads), and `.default` accesses on the binding - * pad down to the binding itself exactly where Node's answer is the - * module. The helper is recognized BY STRUCTURE (the cjs-lexer precedent: - * a quirk-faithful recognizer over the vendored text, never a general - * JS-semantics engine); a file whose interop deviates beyond recognition - * answers a DEGRADE reason and the package falls back to the island with - * the note — never a failed build, and never the silent alternative (an - * unrecognized-but-live helper keeps `var __create = Object.create;` - * alive, whose value declaration fences AT MODULE LOAD — the package - * would crash on its first import while the report claimed it static). */ - interface ToEsmPlan { /** Wrapper/`.default` spans to space-pad (they join `neutralize`, so the * helper sweep sees the erased call sites as dead references). */ @@ -276,8 +180,7 @@ interface ToEsmPlan { * and TEXT COPIED off the source (the canonical table's hoisted getter * bodies) must drop the member spelling the same way. */ moduleBindings: Set; - /** Non-null: the file's interop deviates beyond recognition — the reason - * the offender note carries (the package degrades to the island). */ + degrade: string | null; } @@ -354,17 +257,15 @@ function recognizedToEsmDecl(stmt: ts.Statement): boolean { const TO_ESM_SHAPE_DEGRADE = "its shipped JS calls the __toESM bundler-interop helper but spells it in a shape the " + - "recognizer cannot verify — the package serves from the island instead"; + "recognizer cannot verify"; const TO_ESM_ESCAPE_DEGRADE = "a __toESM(require(…)) bundler-interop object escapes into a use the static rewrite cannot " + - "follow (only module-scope bindings and direct member reads compile) — the package serves " + - "from the island instead"; + "follow (only module-scope bindings and direct member reads compile)"; const TO_ESM_ARG_DEGRADE = "it calls the __toESM bundler-interop helper on something other than require(…) of a string " + - "literal — the package serves from the island instead"; + "literal"; const TO_ESM_MIXED_DEGRADE = - "its bundler-emitted export surface cannot be respelled around its __toESM interop imports " + - "— the package serves from the island instead"; + "its bundler-emitted export surface cannot be respelled around its __toESM interop imports"; /** The interop-erasure plan for one CJS file (see the section header). */ function planToEsmInterop(sf: ts.SourceFile, filePath: string, host: CjsRewriteHost): ToEsmPlan { @@ -554,7 +455,7 @@ const RESERVED_KEYS = new Set(["__proto__"]); * nothing to fix) — serve the file untouched. A `{ degrade }` answer means * the file carries a bundler-interop construct the recognizers cannot * finish: the caller reports the PACKAGE as an offender with the reason - * and the fallback loop islands it — never a failed build. */ + * and the selection loop records a package refusal. */ export function rewriteBundlerCjsSyntax( sf: ts.SourceFile, filePath: string, @@ -572,8 +473,7 @@ export function rewriteBundlerCjsSyntax( ? { degrade: "its ES-module dist routes an external dependency through the __toESM " + - "bundler-interop helper, which has no static story in ESM output — the " + - "package serves from the island instead", + "bundler-interop helper, which cannot compile natively in ESM output", } : null; } diff --git a/packages/compiler/src/frontend/npm-static.ts b/packages/compiler/src/frontend/npm-static.ts index 16387d8e4..1f83a12d4 100644 --- a/packages/compiler/src/frontend/npm-static.ts +++ b/packages/compiler/src/frontend/npm-static.ts @@ -1,65 +1,7 @@ -/* The --npm-static opt-in: compile a named npm package's shipped JS - * STATICALLY, as ordinary program modules, instead of island-running it - * under --dynamic. - * - * The doctrine (slice 2 of the npm story): a package that ships readable, - * unminified JS alongside its .d.ts can compile through the same - * JS/CommonJS frontend the program's own JS files use — inference (JSDoc - * included) types the bodies, and every statement the lowering cannot - * honor becomes the standard JS runtime fence (the trap throws AT the - * statement if the program ever drives it — trust-but-verify, never - * silent trust). The .d.ts is deliberately DROPPED from module resolution: - * a declaration is a CLAIM about the body, and the compiled artifact must - * be built from what the body provably is, not from declaration-only - * values. One bounded part of that claim survives: complete non-generic - * overload groups over representation-safe types and zero-argument - * string/number/boolean return contracts project as JSDoc onto their - * matching exported runtime class. Calls retain authored overload - * precision while the implementation body, its union ABI, and every - * runtime fence still come from JavaScript. - * - * MECHANISM. Resolution is the single lever: - * - tsgo's server-side resolution reads package.json and probes sibling - * .d.ts files through the host's virtual-FS hooks, so an opted-in - * package's package.json is SHADOWED (its "types"/"typings" fields and - * every "types" condition inside "exports" removed), its shipped - * declaration files are HIDDEN (fileExists answers false), and its - * @types twin is hidden whole — the bundler resolution then lands on - * the shipped JS, which allowJs + maxNodeModuleJsDepth admit into the - * program as checkable source. - * - Before that shadow is enabled, the package's own declaration entry - * and relative declaration barrels are scanned for safe overload groups. - * The runtime entry binds each class to its direct or one-hop re-export - * file, including named ESM aliases; only that class in that file - * receives the generated JSDoc projection. - * - scriptc's own resolver (resolve.ts) mirrors the same answer: for an - * opted-in package the types pass is skipped, the "types" export - * condition is dropped, and the @types mangling never runs. - * Both worlds agreeing, the package's entry (and its internal relative - * graph) joins userFiles/moduleOrder exactly like program JS, and the - * whole existing CJS/ESM module machinery — require discipline, the CJS - * lexer link check, export-identity analysis, %init ordering — applies - * unchanged. - * - * FAILURE MODE: all-or-nothing per package, island fallback. A preflight - * diagnostic anchored in an opted-in package's files (an unsupported - * require form, an unshimmed builtin, a resolution miss) marks the - * package as an OFFENDER; the frontend rebuilds without it and the - * import takes today's island path (--dynamic) or the requires-dynamic - * diagnostic (static builds). The fallback is reported in the coverage - * report, never as a build failure. Checker errors inside opted-in - * package files do NOT fail preflight and do NOT trigger fallback: the - * package's author checked it under a different tsconfig, the program's - * author cannot fix it, and the JS design already says where inference - * gaps land — the per-statement runtime fences. - * - * STATE. One compile at a time: the active set is module state, written - * by loadProgram (empty when the flag is off) and read by resolve.ts, - * program.ts, and the lowering. The CLI and the test harness both drive - * whole compiles sequentially per process, and every loadProgram resets - * the state, so a flagless compile after a flagged one sees a clean - * slate. */ - +/** Compile selected package implementations as program modules. The filesystem + * shadow hides declaration-only entry points so lowering sees runtime source; + * safe declaration contracts are projected onto that source before inference. + * Eligibility failures and package preflight errors become explicit refusals. */ import { dirname } from "node:path"; import type { FrontendServices } from "./services.js"; import type { @@ -120,7 +62,7 @@ export function isNpmStaticPackage(name: string | null): boolean { * node_modules (the symlinked-install shape), and they are that package's * files for every consumer of this answer: the fallback loop's offender * attribution, the checker-error suppression, and the program-source - * classification (islandJsFile/userFiles) all agree the opt-in claims + * classification (unselectedPackageJsFile/userFiles) all agree the opt-in claims * them. */ export function npmStaticPackageOfPath(path: string): string | null { const pkg = npmPackageNameOf(path); @@ -382,7 +324,7 @@ export function npmStaticFsShadow(services: FrontendServices): NpmStaticFsShadow // diagnostics rendering; original line offsets survive by // construction). A `degrade` answer (a __toESM interop construct the // recognizers cannot finish) marks the PACKAGE an offender with the - // reason — the fallback loop islands it, never a failed build — and + // reason — the selection loop records a package refusal — and // the file serves untouched for the doomed load. if (path.endsWith(".js") || path.endsWith(".cjs")) { const hit = rewriteCache.get(path); @@ -442,15 +384,6 @@ export function npmStaticFsShadow(services: FrontendServices): NpmStaticFsShadow }; } -/* ── auto-detection (--npm-static=auto) ───────────────────────────────── - * The criteria the design doc names: the package ships its OWN .d.ts (a - * declaration surface its author maintains against the JS — @types twins - * are third-party claims and do not qualify), the runtime JS is readable - * (unminified: real lines, ordinary line lengths), and the source shows - * no build-transform markers (a bundled/transpiled dist is not the code - * the author checked). Best-effort: a package that slips through and - * fails preflight falls back to the island like any offender. */ - /* Only a bundler RUNTIME disqualifies now: webpack's module registry has * no static story (the graph lives in numbered closures). The tsc/babel * __esModule stamp and esbuild's helper preambles used to disqualify too, diff --git a/packages/compiler/src/frontend/npm.test.ts b/packages/compiler/src/frontend/npm.test.ts index 1325f792a..3e647712a 100644 --- a/packages/compiler/src/frontend/npm.test.ts +++ b/packages/compiler/src/frontend/npm.test.ts @@ -1,130 +1,13 @@ import { join } from "node:path"; -import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs"; -import { tmpdir } from "node:os"; import { fileURLToPath } from "node:url"; import { expect, test } from "vitest"; import { moduleSpecifiersOf } from "./npm-node.js"; -import { NpmGraphBuilder } from "./npm-node.js"; +import { NodePackageResolver } from "./npm.js"; const fixturesRoot = fileURLToPath(new URL("../../../../tests/fixtures/npm/", import.meta.url)); const fixture = (...parts: string[]): string => join(fixturesRoot, ...parts); const portable = (path: string): string => path.replaceAll("\\", "/"); -test("ESM percent escapes preserve module paths and distinct CommonJS filename rules", () => { - const builder = new NpmGraphBuilder(); - builder.addImport( - fixture("cases", "node24-esm-metadata", "main.ts"), - "node24-esm-metadata-fixture", - ); - const graph = builder.finish(); - expect(graph.errors).toEqual([]); - const encodedChild = graph.edges.find( - (edge) => edge.specifier === "./child%20%25%20%23%20%C3%BC.js", - ); - expect(encodedChild?.to).toMatch(/child % # ü\.js$/); - const pair = graph.edges.filter((edge) => edge.specifier === "./pair%20file.cjs"); - expect(pair).toHaveLength(2); - expect(pair.find((edge) => edge.kind === "import")?.to).toMatch(/pair file\.cjs$/); - expect(pair.find((edge) => edge.kind === "require")?.to).toMatch(/pair%20file\.cjs$/); -}); - -test.each(["?version=1", "#fragment"])( - "escaped ESM module identity %s stays explicitly refused", - (suffix) => { - const dir = mkdtempSync(join(tmpdir(), "scriptc-esm-identity-")); - try { - writeFileSync(join(dir, "index.mjs"), `import './child%20file.mjs${suffix}';`); - writeFileSync(join(dir, "child file.mjs"), "export const value = 1;"); - const builder = new NpmGraphBuilder(); - builder.addFileImport(join(dir, "main.mjs"), "./index.mjs"); - expect(builder.finish().errors).toEqual([ - { - message: expect.stringContaining( - "distinct URL query or fragment module instances are not supported", - ), - }, - ]); - } finally { - rmSync(dir, { recursive: true, force: true }); - } - }, -); - -test("TypeScript runtime entries embed emitted JS and only its runtime dependencies", () => { - const entry = fixture("typescript", "main.ts"); - const builder = new NpmGraphBuilder(); - builder.addImport(entry, "tsruntime"); - builder.addImport(entry, "tsruntime/common"); - const graph = builder.finish(); - expect(graph.errors).toEqual([]); - const modules = graph.modules.map((module) => ({ ...module, key: portable(module.key) })); - expect(modules.map((module) => module.key.split("/").at(-1)).sort()).toEqual([ - "common.cts", - "export-side.ts", - "index.ts", - "side.ts", - "unused.ts", - "value.mts", - ]); - const root = modules.find((module) => module.key.endsWith("/tsruntime/index.ts")); - expect(root).toBeDefined(); - if (root === undefined) return; - expect(root.format).toBe("esm"); - expect(root.source).not.toContain("import type"); - expect(root.source).not.toContain("export type"); - expect(root.source).not.toContain(": number"); - expect(root.source).not.toContain("./types.ts"); - const edges = graph.edges.filter((edge) => portable(edge.from) === root.key); - expect(edges.map((edge) => edge.specifier).sort()).toEqual([ - "./export-side.ts", - "./side.ts", - "./unused.ts", - "./value.mts", - ]); - expect(edges.every((edge) => portable(edge.to).endsWith(edge.specifier.slice(2)))).toBe(true); - expect(modules.find((module) => module.key.endsWith("/value.mts"))?.format).toBe("esm"); - const common = modules.find((module) => module.key.endsWith("/common.cts")); - expect(common).toBeDefined(); - if (common === undefined) return; - expect(common.format).toBe("cjs"); - expect(common.source).not.toContain(": number"); - expect(common.esm).toContain("value"); -}); - -test.for([ - ["index.ts", "export function broken(: number) {}", "TS"], - ["index.d.ts", "export declare const value: number;", "declaration files"], - ["index.d.mts", "export declare const value: number;", "declaration files"], - ["index.d.cts", "export declare const value: number;", "declaration files"], - ["index.tsx", "export const value =
;", "TSX runtime modules"], -] as const)( - "invalid runtime source %s produces an attributed graph error", - ([name, source, message]) => { - const dir = mkdtempSync(join(tmpdir(), "scriptc-npm-typescript-")); - try { - const pkg = join(dir, "node_modules", "invalid-typescript"); - mkdirSync(pkg, { recursive: true }); - writeFileSync( - join(pkg, "package.json"), - JSON.stringify({ name: "invalid-typescript", type: "module", main: name }), - ); - writeFileSync(join(pkg, name), source); - const builder = new NpmGraphBuilder(); - builder.addImport(join(dir, "main.ts"), "invalid-typescript"); - const graph = builder.finish(); - expect(graph.modules).toEqual([]); - expect(graph.errors).toHaveLength(1); - const diagnostic = graph.errors[0]?.message; - expect(diagnostic).toContain(name); - expect(diagnostic).toContain(message); - expect(diagnostic).toContain("dependency chain: invalid-typescript"); - expect(diagnostic).not.toContain("scriptc-typescript-"); - } finally { - rmSync(dir, { recursive: true, force: true }); - } - }, -); - test("collects import.meta.resolve literals as resolution-only edges", () => { const result = moduleSpecifiersOf( 'export const relative = import.meta.resolve("./asset.js");\n' + @@ -153,51 +36,9 @@ test("collects import.meta.resolve literals as resolution-only edges", () => { ]); }); -test("emits an import-condition edge for an embedded bare import.meta.resolve", () => { - const entry = fixture("cases", "dual-entry", "main.ts"); - const builder = new NpmGraphBuilder(); - builder.addImport(entry, "dual"); - const graph = builder.finish(); - const dual = graph.modules.find((module) => portable(module.key).endsWith("/dual/index.mjs")); - expect(dual).toBeDefined(); - if (dual === undefined) return; - const edges = graph.edges.map((edge) => ({ - ...edge, - from: portable(edge.from), - to: portable(edge.to), - })); - expect(edges).toContainEqual({ - from: portable(dual.key), - specifier: "cjszoo", - to: expect.stringMatching(/\/cjszoo\/index\.js$/), - kind: "import", - }); -}); - -test("embeds dependencies reached only through CommonJS module.require", () => { - const entry = fixture("cases", "node24-commonjs-metadata", "main.ts"); - const builder = new NpmGraphBuilder(); - builder.addImport(entry, "node24-commonjs-fixture"); - const graph = builder.finish(); - expect(graph.errors).toEqual([]); - expect( - graph.modules.some((module) => - portable(module.key).endsWith("/node24-commonjs-fixture/method-only.cjs"), - ), - ).toBe(true); - expect( - graph.edges.map((edge) => ({ ...edge, from: portable(edge.from), to: portable(edge.to) })), - ).toContainEqual({ - from: expect.stringMatching(/\/node24-commonjs-fixture\/index\.cjs$/), - specifier: "./method-only.cjs", - to: expect.stringMatching(/\/node24-commonjs-fixture\/method-only\.cjs$/), - kind: "any", - }); -}); - test("runtime introspection keeps import and require export conditions separate", () => { const entry = fixture("cases", "dual-entry", "main.ts"); - const builder = new NpmGraphBuilder(); + const builder = new NodePackageResolver(); const imported = builder.resolveForIntrospection(entry, "dual", "import"); const required = builder.resolveForIntrospection(entry, "dual", "require"); expect(imported).not.toBeNull(); @@ -206,66 +47,3 @@ test("runtime introspection keeps import and require export conditions separate" expect(portable(imported)).toMatch(/\/dual\/index\.mjs$/); expect(portable(required)).toMatch(/\/dual\/index\.cjs$/); }); - -test("embedded package imports resolve with edge-specific conditions", () => { - const entry = fixture("cases", "package-imports", "main.ts"); - const builder = new NpmGraphBuilder(); - builder.addImport(entry, "importmapped"); - const graph = builder.finish(); - const packageEntry = graph.modules.find((module) => - portable(module.key).endsWith("/importmapped/index.js"), - ); - const edges = graph.edges.map((edge) => ({ - ...edge, - from: portable(edge.from), - to: portable(edge.to), - })); - expect(graph.errors).toEqual([]); - expect(packageEntry).toBeDefined(); - if (packageEntry === undefined) return; - expect(edges).toContainEqual({ - from: portable(packageEntry.key), - specifier: "#exact", - to: expect.stringMatching(/\/importmapped\/internal\/exact\.js$/), - kind: "import", - }); - expect(edges).toContainEqual({ - from: portable(packageEntry.key), - specifier: "#pattern/value", - to: expect.stringMatching(/\/importmapped\/internal\/value\.js$/), - kind: "import", - }); - expect(edges).toContainEqual({ - from: portable(packageEntry.key), - specifier: "#external", - to: expect.stringMatching(/\/dual\/index\.mjs$/), - kind: "import", - }); - expect(edges).toContainEqual({ - from: portable(packageEntry.key), - specifier: "#mode", - to: expect.stringMatching(/\/importmapped\/internal\/require-mode\.cjs$/), - kind: "require", - }); - expect(edges).toContainEqual({ - from: portable(packageEntry.key), - specifier: "#mode", - to: expect.stringMatching(/\/importmapped\/internal\/import-mode\.js$/), - kind: "import", - }); -}); - -test("an unmapped embedded package import reports its package scope", () => { - const entry = fixture("cases", "package-imports", "main.ts"); - const builder = new NpmGraphBuilder(); - builder.addFileImport(entry, "../../node_modules/importmapped/missing.js"); - const graph = builder.finish(); - expect(graph.errors).toHaveLength(1); - const error = graph.errors[0]; - expect(error).toBeDefined(); - if (error === undefined) return; - expect(error.message).toContain( - `package import '#missing' is not defined by "imports" in ${fixture("node_modules", "importmapped", "package.json")}`, - ); - expect(error.message).not.toContain("cannot find package"); -}); diff --git a/packages/compiler/src/frontend/npm.ts b/packages/compiler/src/frontend/npm.ts index f4eafc991..0afd1a59a 100644 --- a/packages/compiler/src/frontend/npm.ts +++ b/packages/compiler/src/frontend/npm.ts @@ -1,97 +1,6 @@ -/* The npm RUNTIME graph: what --dynamic builds embed. - * - * Types come from declarations or TypeScript source (program.ts resolves - * those through TypeScript itself); the CODE that runs is the package's shipped - * JS (or JavaScript emitted from a TypeScript runtime entry), resolved - * HERE at build time with Node's own resolution algorithm — - * for every (importer, specifier) pair, node_modules directories are - * probed from the importing FILE upward to the filesystem root, symlinks - * are resolved with realpath (pnpm/bun virtual stores are symlink farms — - * a package's dependencies live next to its REAL location, not its link), - * package.json "exports" and package-scoped "imports" maps are honored - * (import/require conditions, subpath patterns with '*'), with main/module - * fallbacks and extension/directory-index resolution for the rest. The internal module graph - * (the package's own relative imports/requires plus its dependencies') - * is scanned with a real TypeScript parse collecting every module edge — - * import/export declarations (including `export * as ns from`, which - * ts.preProcessFile silently drops), dynamic import() of string literals, - * and CommonJS require() calls — never a regex. - * - * Every reached module's SOURCE is embedded into the emitted LLVM as a static - * string keyed by its REALPATH — one physical module embeds once, however - * many symlink aliases reach it; scr_island.c serves the engine's module - * loader (and a CommonJS require shim) from that map, so binaries never - * read node_modules at runtime. Each CommonJS module additionally embeds a - * synthesized ESM FACADE — default plus the named exports lexed from its - * source with the compiler's quirk-faithful port of Node's vendored CJS - * lexer (cjs-lexer.ts, the merve port program.ts also answers with) — so - * ES modules inside the graph named-import CJS files exactly like under - * Node, including the failures: a name Node's lexer cannot see is absent - * from the facade and the embedded import fails at engine link time just - * as Node's instantiate would. - * Node builtins are NOT embedded: the island - * ships shims for the set CLIs actually drive — the pure-JS tier (util, - * assert, buffer, string_decoder, querystring, punycode, console, timers, - * readline, async_hooks' two classes, events, module, tty) and the host - * bridges riding the same C implementations the static lowerings use - * (fs + fs/promises, path both families, url's WHATWG parser and file - * converters, crypto's hashing/random slice, zlib, process, os) — the - * worker_threads tier stays unshimmed (SHIMMED_BUILTINS is - * the source of truth). - * - * EDGE-KIND SEMANTICS match Node's per kind, TRANSITIVELY. A STATIC - * import/export edge in an eagerly-reached module is EAGER — Node links the - * whole static graph before anything evaluates — so a static edge that - * reaches an unshimmed builtin or does not resolve is a build-time - * diagnostic naming the builtin/specifier, the requiring package, and the - * dependency chain that reached it. A require() or dynamic import() edge is - * LAZY — Node fails require at the CALL and import() at evaluation — and so - * is EVERY edge of a module only reachable through lazy edges: Node links - * that whole subgraph at the boundary call (a CLI's launcher shim - * import()s its real CLI, so the CLI graph's own static imports fail at - * that import(), never sooner). A blocked lazy edge embeds a runtime trap - * instead of failing the build: - * an unshimmed builtin keeps the island's own lazy throw (the edge embeds - * pointing at the "node:x" key the shim table refuses at the call), an - * unresolvable require() gets Node's MODULE_NOT_FOUND shape from the - * island's require shim (message carrying the live Require stack, code, - * requireStack — NO edge embeds; the shim owns the throw), and an - * unresolvable import() embeds a throwing ESM stub with Node's - * ERR_MODULE_NOT_FOUND shape (the addDynamicImport - * ERR_UNKNOWN_FILE_EXTENSION stub's pattern). Blocked-but-lazy edges stay in - * the build-time inventory (builtins/lazyTraps) so the coverage report says - * exactly what the binary cannot reach. esbuild-published bundles route - * external requires through a `__require` helper; its literal call sites - * collect as require edges too, so esbuild dists get the same honest - * build-time inventory. A specifier that RESOLVES to a .node native addon - * embeds a throwing ERR_DLOPEN_FAILED stub instead of the addon's machine - * code (the island has no process.dlopen; napi binding packages require() - * their .node lazily next to a fallback, so the stub is the "addon - * missing" path they already handle) — those keep an inventory row too - * (lazyTraps, native: true). - * - * CONDITION SETS come from the CALL FORM, never the importer's format — - * Node resolves import/export declarations and import() with - * ["node","import"] and require() with ["node","require"] — so a DUAL - * package (smol-toml's shape: "exports" whose "import" and "require" - * conditions name different files) embeds BOTH entries, each behind its - * own kind-tagged edge; the island's module loader looks edges up with - * the import kind, its require shim with the require kind (the dual- - * package hazard included: the two entries are distinct module - * instances, exactly Node). And a require edge ATTRIBUTES to the module - * whose scope defines the require function being called: esbuild's - * `__require` lives in a shared chunk whose banner createRequire it - * closed over, so a call site in ANOTHER chunk resolves — at build time - * here and at runtime in Node — from the DEFINING chunk, and the edge - * lives under its key (requireHelperOriginOf follows the import and - * re-export hops). - */ -import { dirname, extname, join, resolve } from "node:path"; -import { fileURLToPath, pathToFileURL } from "node:url"; -import type { FrontendServices } from "./services.js"; -import { moduleSpecifiersOfFile, type ModuleSpecifiers } from "./module-syntax.js"; +/** Node package resolution shared by preflight and native module introspection. */ +import { dirname, join, resolve } from "node:path"; import { packageNameOfSpecifier as packageNameOf } from "./workspace-registry.js"; -import { cjsLexedExportsOfFile } from "./cjs-syntax.js"; import { trackedDirectoryExists, trackedFileExists, @@ -100,288 +9,14 @@ import { } from "./input-tracker.js"; import { resolveExports, resolvePackageImports } from "./resolve.js"; -const LAZY_CALL_FORMS: readonly ("require" | "import()" | "import")[] = [ - "require", - "import()", - "import", -]; - const NODE_IMPORT_CONDITIONS = new Set(["import", "node", "default"]); + const NODE_REQUIRE_CONDITIONS = new Set(["require", "node", "default"]); function nodeExportConditions(mode: "import" | "require"): ReadonlySet { return mode === "import" ? NODE_IMPORT_CONDITIONS : NODE_REQUIRE_CONDITIONS; } -export type EmbeddedFormat = "esm" | "cjs" | "json"; - -export interface EmbeddedModule { - /** The resolved REAL path (symlinks followed) — the loader's cache key. */ - key: string; - source: string; - format: EmbeddedFormat; - /** The parsed source reaches Node's global fetch binding. This is a - * semantic capability fact, unlike the old whole-source word scan: comments, - * strings, property names, and locally-bound `fetch` identifiers do not set - * it. The IR/link gates consume this bit without reparsing embedded text. */ - usesFetch?: true; - /** CommonJS only: the synthesized ESM facade the island's module loader - * evaluates when an ES module imports this file — default plus the LEXED - * named exports (cjsEsmFacadeSource). ESM sources compile natively and - * JSON keeps the loader's default-only wrapper, so both leave this - * unset. */ - esm?: string; -} - -/* Node synthesizes named exports for CommonJS modules imported from ESM by - * LEXING the CJS source at link time: `exports.x =` / `module.exports.x =` - * assignments, `module.exports = {…}` object literals including esbuild's - * dead `0 && (module.exports = {…})` annotation, - * `Object.defineProperty(exports, "x", …)`, `module.exports = require(…)` - * re-export forwarding, and the tsc/babel star-copy patterns. scriptc - * holds every embedded CJS source at BUILD time, so the same detection - * runs here through cjs-lexer.ts — the compiler's probed port of merve, - * Node v24.15.0's vendored lexer. The npm package cjs-module-lexer is NOT - * that lexer anymore and disagrees with it (a phantom "get" export for - * `{ get a() {…} }` tables, missed `k: require(…)` value reexports), so - * the port is the single source of truth for program CJS files and - * embedded npm modules alike. */ - -/** The ESM facade for an embedded CommonJS module, matching Node's interop - * exactly (verified against Node 24): `default` IS module.exports; - * "module.exports" is a named alias for it (Node ships that export name); - * every lexed name binds the exports object's OWN property when one exists - * at facade evaluation (getters read once — a snapshot, like Node's - * loop over the lexed set) and stays undefined otherwise (a lexed-but- - * never-assigned name is a live binding of undefined, not an error; - * inherited properties do NOT leak through, hence the hasOwnProperty - * guard). Export names that aren't identifiers ("dash-name") use string - * ModuleExportNames — every name does, uniformly; the locals are e0, e1, … - * temps. */ -function cjsEsmFacadeSource(key: string, names: readonly string[]): string { - const uniq = [...new Set(names)].filter((n) => n !== "default" && n !== "module.exports"); - const parts = [`const m=globalThis.__scr_require(${JSON.stringify(key)});`, `export default m;`]; - if (uniq.length > 0) parts.push(`const H=Object.prototype.hasOwnProperty;`); - const bound = uniq.map((n, i) => { - const name = JSON.stringify(n); - parts.push(`let e${i};if(H.call(m,${name}))e${i}=m[${name}];`); - return `,e${i} as ${name}`; - }); - parts.push(`export{m as "module.exports"${bound.join("")}};`); - return parts.join("\n"); -} - -export interface EmbeddedEdge { - /** Importer's key. */ - from: string; - /** The specifier as written in the importer's source. */ - specifier: string; - /** Resolved target: an embedded module's key, or a "node:*" builtin. */ - to: string; - /** Which call forms this resolution serves — Node picks the "exports" - * condition set from the EDGE KIND, not the importer's format, so one - * (from, specifier) can name TWO targets: a dual package's "import" - * condition for import/import() sites and its "require" condition for - * require() sites. "any" (relative files, builtins, edges whose kinds - * agree) answers both lookups. */ - kind: "any" | "import" | "require"; -} - -/** What a dynamic import() specifier resolves to at build time. */ -export type DynamicImportResolution = - /** An embedded module's key or a shimmed builtin's "node:x" key — - * island.importDyn loads it through the engine's module system. */ - | { kind: "module"; key: string } - /** A Node builtin the island ships no shim for — a build diagnostic, - * exactly like a static import of it. */ - | { kind: "unsupported-builtin"; builtin: string } - /** The specifier resolves into the compiled program's own TypeScript. - * Static builds expose its nominal live namespace; dynamic builds - * marshal a snapshot namespace into the island. */ - | { kind: "program-module" } - /** A supported Node builtin imported by a static build. Its namespace - * token routes member reads through the existing builtin tables. */ - | { kind: "static-builtin"; module: string } - /** No resolution — a build diagnostic, like static imports. */ - | { kind: "unresolved"; message: string }; - -export interface NpmGraphError { - /** Human-readable failure ("package 'x' requires 'node:stream', which - * the island does not provide"). The caller attaches the import site. */ - message: string; -} - -/** One Node builtin the embedded graph imports — the coverage report's - * honesty about what the island must (or cannot) provide. */ -export interface NpmBuiltinUse { - /** Canonical "node:x" key. */ - builtin: string; - /** Whether the island ships a shim for it. */ - shimmed: boolean; - /** Unshimmed AND only require()/import() edges reach it: the build - * embeds the island's lazy throw at the call instead of failing — - * Node's laziness for those edge kinds (Node itself would LOAD the - * builtin; the trap is the island's honest refusal at the only point - * Node would have loaded it). Always false when shimmed or when any - * static import reaches it (static keeps the eager build error). */ - lazy: boolean; - /** The packages whose embedded code imports it (sorted). */ - packages: string[]; -} - -/** One unresolvable specifier reached ONLY by require()/dynamic import() - * edges: the build embeds a runtime trap with Node's call-time error shape - * (MODULE_NOT_FOUND for require, ERR_MODULE_NOT_FOUND for import()) instead - * of failing — the coverage report lists these beside the builtins so the - * build output stays honest about what the binary cannot reach. */ -export interface NpmLazyTrap { - /** The specifier as written at the call site. */ - specifier: string; - /** The call forms that reach it (sorted, require first). "import" is a - * STATIC import inside a lazily-reached module — Node links that whole - * subgraph at the require()/import() boundary that reaches it, so the - * failure surfaces there, at the call. */ - via: ("require" | "import()" | "import")[]; - /** The packages whose embedded code holds the call sites (sorted). */ - packages: string[]; - /** The specifier RESOLVED — to a native .node addon the island cannot - * dlopen. The build embeds a throwing stub (Node's ERR_DLOPEN_FAILED - * code) instead of the addon's raw bytes; the require/import() throws - * at the call. Unset for the unresolvable rows above. */ - native?: boolean; -} - -export interface NpmRuntimeGraph { - modules: EmbeddedModule[]; - edges: EmbeddedEdge[]; - /** (importing file dir + specifier) → the package's runtime entry key. */ - entryOf: (fromFile: string, specifier: string) => string | null; - /** Every Node builtin the embedded graph imports, shimmed or not. */ - builtins: NpmBuiltinUse[]; - /** Unresolvable lazily-reached specifiers embedded as runtime traps. */ - lazyTraps: NpmLazyTrap[]; - errors: NpmGraphError[]; -} - -/** Builtins the island provides shims for (scr_island.c). Both spellings - * resolve to the canonical "node:" key. Subpath forms ("fs/promises") are - * NOT shimmed unless listed here explicitly. */ -const SHIMMED_BUILTINS = new Set([ - "events", - "path", - "process", - "fs", - "child_process", - "os", - "diagnostics_channel", - "module", - "url", - "tty", - "util", - "util/types", - "buffer", - "string_decoder", - "crypto", - "stream", - "stream/promises", - "stream/consumers", - "stream/web", - "fs/promises", - "async_hooks", - "readline", - "path/posix", - "path/win32", - "assert", - "assert/strict", - "punycode", - "querystring", - "constants", - "console", - "timers", - "timers/promises", - "zlib", - // The deprecated legacy module, kept loadable because @sentry/node (the - // a crash reporter) requires it at load on every path while - // only driving it on Node < 14. - "domain", - // DNS imports load before any lookup. The callback and promise APIs - // fence network queries through their own error channels at the call. - "dns", - "dns/promises", - // The main-thread worker_threads surface (real in-process MessageChannel - // ports, Worker fences at construction) and perf_hooks' performance — - // undici requires both UNGUARDED at load. - "worker_threads", - "perf_hooks", - // The socket tier (scr_net_island.c + the bootstrap's shims): http/https - // are working CLIENTS over the socket units; net/tls load and fence - // their socket surfaces loudly at the call (isIP and friends are real). - "http", - "https", - "net", - "tls", - // Loadable with Node's surface: startupSnapshot answers for real (never - // a snapshot build; the mutators throw Node's ERR_NOT_BUILDING_SNAPSHOT), - // heap statistics are inert-but-typed, and the V8 serialization format - // fences at the call. Prettier's bundled error helpers call - // startupSnapshot.isBuildingSnapshot() on every CLI start. - "v8", -]); - -/** Node builtins importable WITHOUT the "node:" prefix — used to tell - * "missing builtin shim" apart from "missing package" for bare specifiers. - * ("node:"-prefixed specifiers are always builtins: the prefix cannot name - * an npm package.) */ -const KNOWN_BUILTINS = new Set([ - ...SHIMMED_BUILTINS, - "assert", - "async_hooks", - "buffer", - "cluster", - "console", - "constants", - "crypto", - "dgram", - "diagnostics_channel", - "dns", - "domain", - "http", - "https", - "http2", - "inspector", - "module", - "net", - "os", - "perf_hooks", - "punycode", - "querystring", - "readline", - "repl", - "stream", - "string_decoder", - "sys", - "timers", - "tls", - "trace_events", - "tty", - "url", - "util", - "v8", - "vm", - "wasi", - "worker_threads", - "zlib", -]); - -export type { SpecifierUse, ModuleSpecifiers } from "./module-syntax.js"; - -function builtinKeyOf(specifier: string): string | null { - if (specifier.startsWith("node:")) return specifier; // forced builtin - const root = specifier.split("/")[0]!; // fs/promises → fs - if (!KNOWN_BUILTINS.has(root)) return null; - return `node:${specifier}`; -} - export interface NpmGraphHost { readFile: (path: string) => string | null; isFile: (path: string) => boolean; @@ -408,9 +43,6 @@ interface PkgJson { imports?: unknown; } -/** Package name from a PATH into node_modules ("…/node_modules/@s/p/d/x.js" - * → "@s/p"), for diagnostics/chains when the entry is a file, not a bare - * specifier. Null when the path holds no node_modules segment. */ export function packageNameOfPath(path: string): string | null { const norm = path.split("\\").join("/"); const idx = norm.lastIndexOf("/node_modules/"); @@ -419,25 +51,6 @@ export function packageNameOfPath(path: string): string | null { return rest === "" ? null : packageNameOf(rest); } -/** A bare-specifier import edge Node's ESM resolution REFUSES, with Node's - * exact error message and code — or null (resolvable, or a shape this - * probe stays conservative about). The three refusal shapes it answers, - * per Node's PACKAGE_RESOLVE with the ["import","node","default"] - * condition set: - * - nothing installed: no node_modules/ from the importer up to - * the filesystem root (and no matching self-scope) — ERR_MODULE_NOT_FOUND - * ("Cannot find package ..."); - * - an "exports" map that refuses the subpath (unmatched, or matched to - * a null target) — ERR_PACKAGE_PATH_NOT_EXPORTED. Node's self-reference - * rule participates: a nearest package scope whose "name" matches makes - * that scope's "exports" the FINAL answer (no node_modules fallback); - * - a matched exports target whose exact file does not exist — - * ERR_MODULE_NOT_FOUND ("Cannot find module '' ..."). Exports - * targets resolve to exact files in Node's ESM — no extension guessing. - * Everything else (no "exports": legacy main/index resolution with its - * leniencies; directory-shaped targets; unreadable package.json) answers - * null — the caller keeps its existing story. Callers exclude builtins and - * project-internal (#alias/self-name) resolutions BEFORE probing. */ export interface NodeImportRefusal { message: string; code: "ERR_MODULE_NOT_FOUND" | "ERR_PACKAGE_PATH_NOT_EXPORTED"; @@ -521,17 +134,6 @@ export function probeNodeImportRefusal( } } -/** A bare-specifier `require()` edge Node's CJS resolution REFUSES because - * NOTHING INSTALLED resolves it: no node_modules/ from the requiring - * file up to the filesystem root, and no self-scope whose "name" matches. - * Answers Node's exact require-site Error message (MODULE_NOT_FOUND's - * "Cannot find module ''" with the one-entry require stack — the - * message property really carries both lines). Everything else — installed - * packages (whatever their exports say), builtins, relative and "#" - * specifiers — answers null: the callers' existing stories stand. Unlike - * the ESM startup-crash channel (SEMANTICS.md 287), this refusal is a - * RUNTIME throw at the require site, catchable — the optional-dependency - * try/require pattern depends on exactly that. */ export function probeNodeRequireRefusal( fromFile: string, specifier: string, @@ -571,48 +173,12 @@ export function probeNodeRequireRefusal( }; } -export class NpmGraphBuilder { - private readonly modules = new Map(); - private readonly edges: EmbeddedEdge[] = []; - private readonly edgeSeen = new Set(); - private readonly entries = new Map(); // fromDir\0spec → key - readonly errors: NpmGraphError[] = []; +export class NodePackageResolver { + private readonly errors: { message: string }[] = []; private readonly pkgJsonCache = new Map(); - /** Modules whose format the RESOLUTION decided (the "module" field names - * ESM sources regardless of the package's "type"). */ - private readonly formatOverrides = new Map(); - /** Canonical "node:x" → packages whose code imports it. */ - private readonly builtinsSeen = new Map>(); - /** Canonical "node:x" keys some STATIC import reaches — those keep the - * eager build error, so their builtins never mark lazy. */ - private readonly builtinsEager = new Set(); - /** Unresolvable (or native-addon) lazily-reached specifiers → merged - * call forms/packages. */ - private readonly lazyTrapsSeen = new Map< - string, - { via: Set<"require" | "import()" | "import">; packages: Set; native: boolean } - >(); - /** Synthetic keys for embedded import()-not-found stubs. */ - private importTrapCount = 0; - /** moduleSpecifiersOf per module key — sweepEdges parses each module - * once; the `__require` attribution chain re-reads helper chunks - * through this cache. */ - private readonly specifiersCache = new Map(); - /** Helper attribution can read a module before walk reaches it. Share - * preparation so its edges and embedded source always use the same JS. */ - private readonly sourceCache = new Map(); + private readonly formatOverrides = new Map(); + constructor(private readonly host: NpmGraphHost = realNpmGraphHost) {} - constructor( - private readonly services: FrontendServices, - private readonly host: NpmGraphHost = realNpmGraphHost, - ) {} - - /** Resolve one runtime module without embedding it. This is the package - * half of import.meta.resolve/require.resolve: the answer is executable - * source under Node's import/require conditions, never the declaration-file - * answer from resolve.ts. Diagnostics produced by the graph-oriented - * resolver are discarded here; the introspection lowering supplies Node's - * public error shape separately. */ resolveForIntrospection( fromFile: string, specifier: string, @@ -628,339 +194,6 @@ export class NpmGraphBuilder { return key; } - /** Registers one user-level npm import and walks everything it reaches. - * Idempotent per (importing dir, specifier). */ - addImport(fromFile: string, specifier: string): void { - this.resolveEntry(fromFile, specifier, false); - } - - /** Registers one user-level RELATIVE import whose target lives inside - * node_modules — the e2e driver shape (`import "../node_modules/vercel/ - * dist/index.js"`): tsc resolves the FILE into the program, but shipped - * package code has exactly one execution home, the embedded engine. - * Resolves with Node's file rules, embeds the reached graph EAGERLY (a - * static import links at the root), and answers the runtime entry key. - * Idempotent per (importing dir, specifier). */ - addFileImport(fromFile: string, specifier: string): string | null { - const cacheKey = this.entryKeyFor(fromFile, specifier); - const cached = this.entries.get(cacheKey); - if (cached !== undefined) { - if (cached !== "") this.walk(cached, [packageNameOfPath(cached) ?? cached], false); - return cached === "" ? null : cached; - } - const abs = resolve(dirname(resolve(fromFile)), specifier); - const file = this.resolveFile(abs); - if (file === null) { - this.errors.push({ message: `cannot resolve '${specifier}' from ${fromFile}` }); - this.entries.set(cacheKey, ""); - return null; - } - const key = this.host.realpath(file); - this.entries.set(cacheKey, key); - this.walk(key, [packageNameOfPath(key) ?? key], false); - return key; - } - - /** Registers one user-level dynamic `import(specifier)` and embeds what - * it reaches, returning the build-time classification the lowering acts - * on. Bare package specifiers take the same path as static imports; - * builtins map to their island shim keys ("fs" → "node:fs") or report - * the missing shim; RELATIVE specifiers — the shape static imports never - * see, because tsc compiles those — resolve against the importing FILE - * with Node's file/extension/directory rules and embed the reached JS - * graph. A relative target that is TypeScript is the program's own - * module (compiled natively and exposed through the import lowering), and one - * with an extension no loader executes (.wasm, .node, ...) embeds a stub - * whose EVALUATION throws Node's exact ERR_UNKNOWN_FILE_EXTENSION - * TypeError — the build succeeds and the import() rejects at runtime, - * which is precisely what Node does. */ - addDynamicImport(fromFile: string, specifier: string): DynamicImportResolution { - if (specifier.startsWith("./") || specifier.startsWith("../") || specifier.startsWith("/")) { - const abs = specifier.startsWith("/") - ? specifier - : resolve(dirname(resolve(fromFile)), specifier); - const file = this.resolveFile(abs); - if (!file) { - return { - kind: "unresolved", - message: `cannot resolve '${specifier}' from ${fromFile}`, - }; - } - const key = this.host.realpath(file); - if (/\.(ts|tsx|mts|cts)$/.test(key)) return { kind: "program-module" }; - const ext = extname(key); - if (ext !== ".js" && ext !== ".mjs" && ext !== ".cjs" && ext !== ".json") { - if (!this.modules.has(key)) { - const msg = `Unknown file extension "${ext}" for ${key}`; - this.modules.set(key, { - key, - source: - `throw Object.assign(new TypeError(${JSON.stringify(msg)}),` + - `{code:"ERR_UNKNOWN_FILE_EXTENSION"});\n`, - format: "esm", - }); - } - return { kind: "module", key }; - } - // The reached subgraph sits behind THIS import() — a lazy boundary: - // blocked edges inside it (static ones included) trap at runtime, - // where Node fails the import()'s link. - this.walk(key, [specifier], true); - return { kind: "module", key }; - } - const builtin = builtinKeyOf(specifier); - if (builtin) { - if (!SHIMMED_BUILTINS.has(builtin.slice(5))) { - return { kind: "unsupported-builtin", builtin }; - } - return { kind: "module", key: builtin }; - } - const errorsBefore = this.errors.length; - const key = this.resolveEntry(fromFile, specifier, true); - if (key === null) { - // A refusal NODE ITSELF would answer at runtime — the package isn't - // installed, its exports refuse the subpath, or the matched target - // file doesn't exist — is not a build error: Node evaluates the - // import() and REJECTS it with exactly this error (the program may - // never even call it). Embed the throwing stub with Node's message - // and code, exactly like the ERR_UNKNOWN_FILE_EXTENSION stub above; - // the resolveEntry error text it superseded comes off the list. - // Failures that are NOT Node-shaped refusals (unreadable manifests, - // deep-graph embed problems) stay build errors. - const refusal = probeNodeImportRefusal(fromFile, specifier, this.host); - if (refusal !== null) { - this.errors.length = errorsBefore; - return { kind: "module", key: this.refusalTrap(refusal) }; - } - return { - kind: "unresolved", - message: - this.errors[this.errors.length - 1]?.message ?? - `cannot resolve '${specifier}' from ${fromFile}`, - }; - } - return { kind: "module", key }; - } - - /** Embeds (once per distinct refusal) the ESM stub whose EVALUATION - * throws a probed Node refusal — the import() rejects at runtime with - * Node's exact message and code, the build succeeds. */ - private refusalTrap(refusal: NodeImportRefusal): string { - const key = `scr:import-trap:${this.importTrapCount++}`; - const props = - `{code:${JSON.stringify(refusal.code)}` + - (refusal.url === undefined ? `}` : `,url:${JSON.stringify(refusal.url)}}`); - this.modules.set(key, { - key, - source: `throw Object.assign(new Error(${JSON.stringify(refusal.message)}),${props});\n`, - format: "esm", - }); - return key; - } - - /** The runtime entry key a previously-added import resolved to. */ - entryOf(fromFile: string, specifier: string): string | null { - const key = this.entries.get(this.entryKeyFor(fromFile, specifier)); - return key === undefined || key === "" ? null : key; - } - - /** Registers one user-level createRequire(...) require and walks what - * it reaches, answering the runtime entry key — resolveEntry's twin - * under Node's "require" condition (a dual package embeds its CJS arm, - * exactly what Node's createRequire loads). The cache key carries the - * mode so a file both importing and requiring one specifier keeps two - * entries, like the graph's own kind-split edges. */ - addRequire(fromFile: string, specifier: string): string | null { - const cacheKey = `require\u0000${this.entryKeyFor(fromFile, specifier)}`; - const cached = this.entries.get(cacheKey); - if (cached !== undefined) { - if (cached !== "") this.walk(cached, [packageNameOf(specifier)], false); - return cached === "" ? null : cached; - } - const key = this.resolvePackage(dirname(resolve(fromFile)), specifier, "require", { - importer: resolve(fromFile), - chain: [], - }); - this.entries.set(cacheKey, key ?? ""); - if (key) this.walk(key, [packageNameOf(specifier)], false); - return key; - } - - /** The embedded format of a resolved module key ("cjs"/"esm"/"json") — - * the require lowering picks its export name by it (a CJS facade's - * default IS module.exports; an ESM entry answers its namespace, the - * require(esm) shape). */ - moduleFormatOf(key: string): EmbeddedFormat | null { - return this.modules.get(key)?.format ?? null; - } - - private entryKeyFor(fromFile: string, specifier: string): string { - return `${dirname(resolve(fromFile))}\u0000${specifier}`; - } - - private resolveEntry(fromFile: string, specifier: string, lazy: boolean): string | null { - const cacheKey = this.entryKeyFor(fromFile, specifier); - const cached = this.entries.get(cacheKey); - if (cached !== undefined) { - // A static import of an entry first reached through import(): - // re-walk eagerly so the subgraph promotes (Node links it now). - if (cached !== "" && !lazy) this.walk(cached, [packageNameOf(specifier)], false); - return cached === "" ? null : cached; - } - // User-level entries prefer the ESM ("import") condition — the engine - // loads real ES modules natively; CJS-only packages fall back to the - // require shim. - const key = this.resolvePackage(dirname(resolve(fromFile)), specifier, "import", { - importer: resolve(fromFile), - chain: [], - }); - this.entries.set(cacheKey, key ?? ""); - if (key) this.walk(key, [packageNameOf(specifier)], lazy); - return key; - } - - /** The cjs-lexer.ts pass over every embedded CommonJS module: lex the - * export names exactly as Node's vendored lexer would, follow the - * re-export forms (`module.exports = require(…)`, table spreads/values, - * the tsc/babel star patterns) through the ALREADY-RESOLVED edges - * (builtin and unresolved targets are skipped; a require cycle - * contributes what is known when re-entered, like Node's seen-set), then - * synthesize each module's ESM facade. */ - private synthesizeCjsFacades(): void { - const target = new Map(); - // Following a CJS re-export IS a require: when a dual package embeds - // kind-split edges, the "require" one names the module whose exports - // Node's lexer chain would read. - for (const e of this.edges) { - const k = `${e.from}\u0000${e.specifier}`; - if (e.kind === "require" || !target.has(k)) target.set(k, e.to); - } - const memo = new Map>(); - const namesOf = (key: string): Set => { - let names = memo.get(key); - if (names) return names; - memo.set(key, (names = new Set())); - const mod = this.modules.get(key); - if (!mod || mod.format !== "cjs") return names; - const lexed = cjsLexedExportsOfFile(this.services.parse(key, mod.source, "js")); - for (const n of lexed.exports) names.add(n); - for (const spec of lexed.reexports) { - const to = target.get(`${key}\u0000${spec}`); - if (to !== undefined && !to.startsWith("node:")) { - for (const n of namesOf(to)) names.add(n); - } - } - return names; - }; - for (const mod of this.modules.values()) { - if (mod.format === "cjs" && mod.esm === undefined) { - mod.esm = cjsEsmFacadeSource(mod.key, [...namesOf(mod.key)]); - } - } - } - - finish(): NpmRuntimeGraph { - this.synthesizeCjsFacades(); - for (const key of this.services.globalFetchModules([...this.modules.values()])) { - const mod = this.modules.get(key); - if (mod !== undefined) mod.usesFetch = true; - } - return { - modules: [...this.modules.values()], - edges: this.edges, - entryOf: (fromFile, specifier) => { - const key = this.entries.get(this.entryKeyFor(fromFile, specifier)); - return key === undefined || key === "" ? null : key; - }, - builtins: [...this.builtinsSeen.entries()] - .map(([builtin, packages]) => { - const shimmed = SHIMMED_BUILTINS.has(builtin.slice(5)); - return { - builtin, - shimmed, - lazy: !shimmed && !this.builtinsEager.has(builtin), - packages: [...packages].sort(), - }; - }) - .sort((a, b) => a.builtin.localeCompare(b.builtin)), - lazyTraps: [...this.lazyTrapsSeen.entries()] - .map(([specifier, t]) => ({ - specifier, - via: LAZY_CALL_FORMS.filter((v) => t.via.has(v)), - packages: [...t.packages].sort(), - ...(t.native ? { native: true } : {}), - })) - .sort((a, b) => a.specifier.localeCompare(b.specifier)), - errors: this.errors, - }; - } - - /* ── lazy runtime traps (require()/import() edges Node fails at the - * call — the build embeds the failure instead of refusing) ─────────── */ - - /** Records one unresolvable lazily-reached specifier for the build-time - * inventory (the coverage report's lazy-trap rows). `via` carries only - * the call forms whose OWN resolution failed — with per-kind condition - * resolution, one form of a specifier can fail while another succeeds. */ - private noteLazyTrap( - spec: string, - via: { require: boolean; dynamicImport: boolean; static: boolean }, - pkgName: string, - moduleLazy: boolean, - native = false, - ): void { - let t = this.lazyTrapsSeen.get(spec); - if (!t) this.lazyTrapsSeen.set(spec, (t = { via: new Set(), packages: new Set(), native })); - if (via.require) t.via.add("require"); - if (via.dynamicImport) t.via.add("import()"); - if (via.static && moduleLazy) t.via.add("import"); - t.packages.add(pkgName); - } - - /** Embeds the throwing ESM stub for an unresolvable dynamic import() - * edge — Node's exact ERR_MODULE_NOT_FOUND shape at evaluation: bare - * specifiers say `Cannot find package 'x' imported from `, - * relative ones resolve against the importer first and say `Cannot find - * module '' imported from ` carrying the file:// url, which - * is what Node's ESM resolver rejects with. Returns the stub's key (the - * edge target). require() never reaches these: unresolvable require - * edges embed NO edge and the island's require shim throws Node's - * MODULE_NOT_FOUND at the call, with the LIVE require stack. */ - private importNotFoundTrap(from: string, spec: string): string { - const key = `scr:import-trap:${this.importTrapCount++}`; - let msg: string; - let url: string | null = null; - if (spec.startsWith("./") || spec.startsWith("../") || spec.startsWith("/")) { - const abs = spec.startsWith("/") ? spec : resolve(dirname(from), spec); - msg = `Cannot find module '${abs}' imported from ${from}`; - url = `file://${abs}`; - } else { - msg = `Cannot find package '${packageNameOf(spec)}' imported from ${from}`; - } - const props = - `{code:"ERR_MODULE_NOT_FOUND"` + (url === null ? `}` : `,url:${JSON.stringify(url)}}`); - this.modules.set(key, { - key, - source: `throw Object.assign(new Error(${JSON.stringify(msg)}),${props});\n`, - format: "esm", - }); - return key; - } - - /** The throwing stub embedded for a resolved .node native addon: Node's - * ERR_DLOPEN_FAILED code (what a broken dlopen throws) with the island's - * honest message. Evaluation throws — at the require() call, at a - * facade-mediated import, at import() — and the CJS cache keeps no entry - * for a throwing module, so every retry throws again, like Node. */ - static nativeAddonStub(key: string): string { - const msg = - `Cannot load native addon '${key}': scriptc binaries cannot load .node addons ` + - `(the island has no process.dlopen)`; - return `throw Object.assign(new Error(${JSON.stringify(msg)}),{code:"ERR_DLOPEN_FAILED"});\n`; - } - - /* ── resolution ─────────────────────────────────────────────────── */ - private pkgJsonOf(dir: string): PkgJson | null { let cached = this.pkgJsonCache.get(dir); if (cached === undefined) { @@ -971,30 +204,6 @@ export class NpmGraphBuilder { return cached; } - /** The nearest package.json "type" above `file` — the .js format rule. - * Resolution-time overrides (the "module" field) win. */ - private formatOf(file: string): EmbeddedFormat { - if (file.endsWith(".mts")) return "esm"; - if (file.endsWith(".cts")) return "cjs"; - const override = this.formatOverrides.get(file); - if (override) return override; - if (file.endsWith(".mjs")) return "esm"; - if (file.endsWith(".cjs")) return "cjs"; - if (file.endsWith(".json")) return "json"; - for (let dir = dirname(file); ;) { - const pkg = this.pkgJsonOf(dir); - if (pkg) return pkg.type === "module" ? "esm" : "cjs"; - const parent = dirname(dir); - if (parent === dir) return "cjs"; - dir = parent; - } - } - - /** Node-style file resolution: exact file, extension candidates - * (commander requires './suggestSimilar'; ".node" is in Node's require - * probe list — the resolved addon embeds as a throwing dlopen stub), - * then directory resolution (the directory's package.json "main", else - * its index files). */ private resolveFile(path: string, depth = 0): string | null { if (depth > 8) return null; // a "main" cycle — refuse quietly if (this.host.isFile(path)) return path; @@ -1016,20 +225,11 @@ export class NpmGraphBuilder { return null; } - /** "a → b → c" — the package chain from the user's import to the point - * of failure, for diagnostics. */ private static chainOf(chain: readonly string[], last?: string): string { const full = last === undefined ? chain : [...chain, last]; return full.join(" → "); } - /** Locates node_modules/ by walking up from `fromDir` to the - * filesystem ROOT (dependencies hoist arbitrarily far in workspace - * layouts), following symlinks with realpath (pnpm/bun virtual stores), - * then resolves the runtime entry: package.json "exports" with the - * given condition (strict — an exports map that doesn't match is an - * error, like Node's ERR_PACKAGE_PATH_NOT_EXPORTED), else the "module"/ - * "main" fallbacks. Returns the realpath'd entry key. */ private resolvePackage( fromDir: string, specifier: string, @@ -1043,7 +243,7 @@ export class NpmGraphBuilder { const parts = specifier.split("/"); const subparts = specifier.startsWith("@") ? parts.slice(2) : parts.slice(1); const subpath = subparts.length > 0 ? `./${subparts.join("/")}` : "."; - const chain = NpmGraphBuilder.chainOf(ctx.chain, name); + const chain = NodePackageResolver.chainOf(ctx.chain, name); // Node's PACKAGE_SELF_RESOLVE runs BEFORE any node_modules lookup: the // nearest package scope above the importing module whose "name" equals // the specifier's package name AND that carries "exports" answers the @@ -1144,10 +344,6 @@ export class NpmGraphBuilder { } } - /** Resolves a package-internal "#" specifier from the nearest package - * scope. Relative targets stay in that package; bare package targets - * re-enter the same runtime resolver so edge-kind conditions and package - * self-resolution remain consistent. */ private resolvePackageImport( fromDir: string, specifier: string, @@ -1167,7 +363,7 @@ export class NpmGraphBuilder { if (parent === dir) break; dir = parent; } - const chain = NpmGraphBuilder.chainOf(ctx.chain); + const chain = NodePackageResolver.chainOf(ctx.chain); if (pkgDir === null || pkg === null) { this.errors.push({ message: @@ -1221,365 +417,4 @@ export class NpmGraphBuilder { } return this.resolvePackage(pkgDir, target, mode, ctx); } - - /* ── the walk ─────────────────────────────────────────────────── */ - - /** Modules reached ONLY through lazy edges so far. Node has not linked - * these at the root: the whole subgraph behind a require()/import() - * boundary links AT THE CALL, so every blocked edge inside it — static - * imports included — fails there at runtime, never at build time. A - * later STATIC path promotes the module to eager: its edges re-sweep so - * blocked static ones become build errors, exactly the graph Node would - * refuse at link. */ - private readonly lazilyReached = new Set(); - - /** Embeds `key` and everything it reaches. `chain` is the package path - * from the user's import to this module's package — diagnostics name it - * so a failure five dependencies deep is attributable. `lazy` is the - * REACHABILITY mode: true when every path from the user's import to this - * module crosses a require()/dynamic-import() edge. */ - private walk(key: string, chain: readonly string[], lazy: boolean): void { - const existing = this.modules.get(key); - if (existing) { - if (!lazy && this.lazilyReached.has(key)) { - // Promotion: a static path reached a module first seen behind a - // lazy boundary — Node links it at the root now, so its edge - // sweep re-runs eagerly (pushes dedupe through edgeSeen). - this.lazilyReached.delete(key); - if (existing.format !== "json") { - this.sweepEdges(key, existing.source, chain, false); - } - } - return; - } - if (key.endsWith(".node")) { - // A native addon: Node process.dlopen()s it; the island has no - // dlopen, so the resolved edge embeds a throwing CJS STUB (Node's - // ERR_DLOPEN_FAILED code) instead of megabytes of machine code the - // engine could never execute — rolldown/oxc-style binding packages - // require() their .node next to a wasm/js fallback, so the stub is - // exactly the "addon missing" path those packages already handle. - // The require sites are lazy by construction (an eager static - // import of a .node would refuse under Node too), so the throw - // lands at the call, the only point Node would have dlopen'd. - this.modules.set(key, { key, source: NpmGraphBuilder.nativeAddonStub(key), format: "cjs" }); - return; - } - const prepared = this.sourceOf(key); - if ("error" in prepared) { - this.errors.push({ - message: `${prepared.error} (dependency chain: ${NpmGraphBuilder.chainOf(chain)})`, - }); - return; - } - const source = prepared.source; - const format = this.formatOf(key); - this.modules.set(key, { key, source, format }); - if (lazy) this.lazilyReached.add(key); - if (format === "json") return; - this.sweepEdges(key, source, chain, lazy); - } - - private sourceOf(key: string): { source: string } | { error: string } { - const cached = this.sourceCache.get(key); - if (cached !== undefined) return cached; - const source = this.host.readFile(key); - let result: { source: string } | { error: string }; - if (source === null) { - result = { error: `cannot read embedded module '${key}'` }; - } else if (/\.(?:[cm]?ts|tsx)$/.test(key)) { - try { - const format = this.formatOf(key); - result = { - source: this.services.emitRuntimeTypeScript( - key, - source, - format === "esm" ? "esm" : "cjs", - ), - }; - } catch (error) { - result = { - error: `cannot emit TypeScript module '${key}': ${error instanceof Error ? error.message : String(error)}`, - }; - } - } else { - result = { source }; - } - this.sourceCache.set(key, result); - return result; - } - - /** moduleSpecifiersOf through the per-module cache (each module parses - * once even across promotion re-sweeps, and the `__require` attribution - * chain re-reads helper chunks it never sweeps itself). */ - private specifiersOf(key: string, source?: string): ModuleSpecifiers | null { - let cached = this.specifiersCache.get(key); - if (cached === undefined) { - const prepared = source === undefined ? this.sourceOf(key) : { source }; - const text = "source" in prepared ? prepared.source : null; - cached = text === null ? null : moduleSpecifiersOfFile(this.services.parse(key, text, "js")); - this.specifiersCache.set(key, cached); - } - return cached; - } - - /** The module whose scope DEFINES the `__require` helper that `key`'s - * call sites invoke, or null when it is key's own (or unresolvable). - * esbuild splits the helper into a shared chunk that every other chunk - * imports; the helper closed over THAT chunk's banner require - * (createRequire(import.meta.url)), so Node resolves its calls from the - * DEFINING chunk — and the island's require shim looks the edge up - * under that key at the call. Follows import → re-export hops through - * intermediate chunks, bounded. */ - private requireHelperOriginOf(key: string): string | null { - let cur = key; - for (let hops = 0; hops < 8; hops++) { - const specs = this.specifiersOf(cur); - const next = - specs === null - ? null - : cur === key - ? specs.requireHelperImport - : (specs.requireHelperImport ?? specs.requireHelperReexport); - if (next === null) break; - let target: string | null = null; - if (next.startsWith("./") || next.startsWith("../")) { - const file = this.resolveFile(resolve(dirname(cur), next)); - target = file === null ? null : this.host.realpath(file); - } else if (builtinKeyOf(next) === null) { - const errorsBefore = this.errors.length; - target = this.resolvePackage(dirname(cur), next, "import", { importer: cur, chain: [] }); - if (target === null) this.errors.length = errorsBefore; - } - if (target === null) break; - cur = target; - } - return cur === key ? null : cur; - } - - /** One module's edge sweep. Per-edge semantics match Node's: an edge is - * EAGER only when the module itself is eagerly reached AND the site is a - * static import/export declaration — Node's link-time surface, where a - * blocked edge fails the BUILD. Everything else is LAZY — Node fails - * require at the CALL and import() at evaluation, and a subgraph behind - * either boundary (its static edges included) links at that call — so a - * blocked lazy edge embeds a runtime trap and the build succeeds: a - * program that never executes the call runs fine under Node too. */ - private sweepEdges(key: string, source: string, chain: readonly string[], lazy: boolean): void { - const pkgName = chain[chain.length - 1] ?? key; - const pushEdge = (from: string, spec: string, to: string, kind: EmbeddedEdge["kind"]): void => { - const edgeKey = `${from}\u0000${spec}\u0000${kind}`; - if (this.edgeSeen.has(edgeKey)) return; - this.edgeSeen.add(edgeKey); - this.edges.push({ from, specifier: spec, to, kind }); - }; - const specifiers = this.specifiersOf(key, source); - if (specifiers === null) return; - for (const use of specifiers.uses) { - const spec = use.specifier; - const eager = !lazy && use.static; - // CommonJS treats bare "." and ".." as directory-relative requires. - const requireDirectory = - (spec === "." || spec === "..") && use.require && !use.static && !use.dynamicImport; - if (spec.startsWith("./") || spec.startsWith("../") || requireDirectory) { - if (use.importMetaResolve && !use.static && !use.dynamicImport && !use.require) { - continue; - } - // ESM percent escapes name decoded filesystem paths; CommonJS - // keeps the literal filename. Most specs share an edge, but a - // percent-escaped spec used by both forms needs separate targets. - const importing = use.static || use.dynamicImport; - const requests: { kind: "any" | "import" | "require"; path: string | null }[] = []; - let importPath: string | null = resolve(dirname(key), spec); - if (importing && spec.includes("%")) { - try { - const url = new URL(spec, pathToFileURL(key)); - if (url.search || url.hash) { - this.errors.push({ - message: `package '${pkgName}' cannot embed '${spec}' from ${key}: distinct URL query or fragment module instances are not supported`, - }); - continue; - } - importPath = fileURLToPath(url); - } catch { - importPath = null; - } - } - if (use.require && importing && spec.includes("%")) { - requests.push( - { kind: "require", path: resolve(dirname(key), spec) }, - { kind: "import", path: importPath }, - ); - } else { - requests.push({ kind: "any", path: importPath }); - } - for (const request of requests) { - const importRequest = request.kind !== "require" && importing; - const requestVia = { - require: request.kind !== "import" && use.require, - dynamicImport: importRequest && use.dynamicImport, - static: importRequest && use.static, - }; - const file = request.path === null ? null : this.resolveFile(request.path); - const to = file === null ? null : this.host.realpath(file); - if (!to) { - if (!lazy && requestVia.static) { - this.errors.push({ - message: - `package '${pkgName}' cannot resolve '${spec}' from ${key}` + - ` (dependency chain: ${NpmGraphBuilder.chainOf(chain)})`, - }); - } else { - this.noteLazyTrap(spec, requestVia, pkgName, lazy); - if (requestVia.dynamicImport || (lazy && requestVia.static)) { - pushEdge(key, spec, this.importNotFoundTrap(key, spec), "import"); - } - } - continue; - } - if (to.endsWith(".node")) this.noteLazyTrap(spec, requestVia, pkgName, lazy, true); - pushEdge(key, spec, to, request.kind); - this.walk(to, chain, lazy || !requestVia.static); - } - continue; - } - if ( - use.importMetaResolve && - !use.static && - !use.dynamicImport && - !use.require && - (/^[A-Za-z][A-Za-z\d+.-]*:/.test(spec) || spec.startsWith("/")) - ) { - continue; - } - const builtin = builtinKeyOf(spec); - if (builtin) { - let seen = this.builtinsSeen.get(builtin); - if (!seen) this.builtinsSeen.set(builtin, (seen = new Set())); - seen.add(pkgName); - if (eager) this.builtinsEager.add(builtin); - if (eager && !SHIMMED_BUILTINS.has(builtin.slice(5))) { - this.errors.push({ - message: - `package '${pkgName}' requires '${spec}', a Node builtin the island does not provide ` + - `(available: ${[...SHIMMED_BUILTINS].map((b) => `node:${b}`).join(", ")}; ` + - `imported from ${key}; dependency chain: ${NpmGraphBuilder.chainOf(chain)})`, - }); - continue; - } - // The edge embeds pointing at the "node:x" key (for an unshimmed - // builtin reached lazily, the island's require shim — "the island - // does not provide the 'node:x' builtin" — or module loader - // throws at the CALL, the only point Node would have loaded the - // module either). Builtin resolution is location-independent - // under Node, but the EDGE isn't: a call through the imported - // `__require` helper asks from the DEFINING chunk's key at - // runtime, so the edge registers there too (sentry's - // `__require("domain")` sites live in one chunk, the helper in - // another). - pushEdge(key, spec, builtin, "any"); - if (use.requireViaHelper) { - const origin = this.requireHelperOriginOf(key); - if (origin !== null) pushEdge(origin, spec, builtin, "require"); - } - continue; - } - // A bare dependency package: Node picks the "exports" condition set - // from the EDGE KIND, never from the importer's format — import/ - // export declarations and import() resolve with ["node","import"], - // require() with ["node","require"] — so a dual package legitimately - // embeds TWO targets for one specifier, each behind its own - // kind-tagged edge (the island's module loader asks with the import - // kind, its require shim with the require kind). - const depName = packageNameOf(spec); - const nextChain = depName === pkgName || spec.startsWith("#") ? chain : [...chain, depName]; - const targetChain = (to: string): readonly string[] => { - if (!spec.startsWith("#")) return nextChain; - const targetPkg = packageNameOfPath(to); - return targetPkg === null || targetPkg === pkgName ? chain : [...chain, targetPkg]; - }; - if (use.require) { - // require edges attribute to the module whose scope DEFINES the - // require function being called: a direct require() is this file's - // own (its banner createRequire), but an esbuild `__require` - // imported from a shared chunk closed over THAT chunk's require, - // so Node resolves from the defining chunk — and the island's - // require shim looks the edge up under its key at the call. - const froms = new Set(); - if (use.requireLocal) froms.add(key); - if (use.requireViaHelper) froms.add(this.requireHelperOriginOf(key) ?? key); - for (const from of froms) { - const errorsBefore = this.errors.length; - const to = this.resolvePackage(dirname(from), spec, "require", { - importer: from, - chain, - }); - if (to === null) { - // require failures are ALWAYS lazy — no edge embeds; the - // island's require shim throws Node's MODULE_NOT_FOUND with - // the live require stack at the call. - this.errors.length = errorsBefore; - this.noteLazyTrap( - spec, - { require: true, dynamicImport: false, static: false }, - pkgName, - lazy, - ); - continue; - } - // A package whose entry IS a .node addon (napi per-platform - // binding packages: "main" names the addon) embeds the dlopen - // stub — inventory row like the relative-specifier shape. - if (to.endsWith(".node")) { - this.noteLazyTrap( - spec, - { require: true, dynamicImport: false, static: false }, - pkgName, - lazy, - true, - ); - } - pushEdge(from, spec, to, "require"); - this.walk(to, targetChain(to), true); - } - } - if (use.static || use.dynamicImport || use.importMetaResolve) { - const errorsBefore = this.errors.length; - const to = this.resolvePackage(dirname(key), spec, "import", { importer: key, chain }); - if (to === null) { - if (!eager) { - // Roll the resolver's diagnostics back off the build — the - // blocked edge is lazy, so the failure belongs to the runtime - // trap (and the coverage inventory), not the error list. The - // trap is an ESM stub with Node's ERR_MODULE_NOT_FOUND shape, - // behind an import-kind edge the require shim never matches. - this.errors.length = errorsBefore; - this.noteLazyTrap( - spec, - { require: false, dynamicImport: use.dynamicImport, static: use.static }, - pkgName, - lazy, - ); - if (use.dynamicImport || (lazy && use.static)) { - pushEdge(key, spec, this.importNotFoundTrap(key, spec), "import"); - } - } - continue; // eager: error already recorded - } - if (to.endsWith(".node")) { - this.noteLazyTrap( - spec, - { require: false, dynamicImport: use.dynamicImport, static: use.static }, - pkgName, - lazy, - true, - ); - } - pushEdge(key, spec, to, "import"); - if (!use.importMetaResolve || use.static || use.dynamicImport) { - this.walk(to, targetChain(to), lazy || !use.static); - } - } - } - } } diff --git a/packages/compiler/src/frontend/pipeline-native.ts b/packages/compiler/src/frontend/pipeline-native.ts index 715f0dd55..511fd62f2 100644 --- a/packages/compiler/src/frontend/pipeline-native.ts +++ b/packages/compiler/src/frontend/pipeline-native.ts @@ -2,7 +2,6 @@ import { runFrontend, type Frontend } from "./pipeline.js"; import { loadProgram } from "./program.js"; import { FrontendServices, type ComptimeEvaluator } from "./services.js"; import { createNativeTs7Api } from "./ts7/native-api.js"; -import { emitRuntimeTypeScript } from "../native/runtime-typescript.js"; /** Native callers supply the installed TS7 executable explicitly. The * returned frontend owns its final program and shared syntax services; @@ -20,7 +19,6 @@ export function runNativeFrontend( process.cwd(), evaluateComptime, undefined, - (path, source, format) => emitRuntimeTypeScript(executable, path, source, format), ); try { const frontend = runFrontend( diff --git a/packages/compiler/src/frontend/pipeline.test.ts b/packages/compiler/src/frontend/pipeline.test.ts index 66bc9fa57..2aa6aad89 100644 --- a/packages/compiler/src/frontend/pipeline.test.ts +++ b/packages/compiler/src/frontend/pipeline.test.ts @@ -70,21 +70,27 @@ test("closes the current program if opening a probe fails", () => { }); test("does not retain or close disposed fallback loads twice", () => { - preflight.mockReturnValueOnce([typeError]).mockReturnValueOnce([typeError]).mockReturnValue([]); + preflight + .mockReturnValueOnce([]) + .mockReturnValueOnce([typeError]) + .mockReturnValueOnce([typeError]) + .mockReturnValue([]); const frontend = runFrontend("/main.ts", loader, ["fixture"]); - expect(opened).toHaveLength(3); - expect(frontend.npmStatic).toMatchObject([{ package: "fixture", status: "fallback" }]); + expect(opened).toHaveLength(4); + expect(frontend.npmStatic).toMatchObject([{ package: "fixture", status: "refused" }]); expect(opened[0]!.dispose).toHaveBeenCalledTimes(1); expect(opened[1]!.dispose).toHaveBeenCalledTimes(1); - expect(opened[2]!.dispose).not.toHaveBeenCalled(); + expect(opened[2]!.dispose).toHaveBeenCalledTimes(1); + expect(opened[3]!.dispose).not.toHaveBeenCalled(); frontend.dispose(); for (const load of opened) expect(load.dispose).toHaveBeenCalledTimes(1); }); test("preserves the original failure and continues cleanup when a disposer throws", () => { preflight + .mockReturnValueOnce([]) .mockImplementationOnce(() => { - vi.mocked(opened[0]!.dispose).mockImplementation(() => { + vi.mocked(opened[1]!.dispose).mockImplementation(() => { throw new Error("close failed"); }); return [typeError]; @@ -93,6 +99,6 @@ test("preserves the original failure and continues cleanup when a disposer throw throw new Error("probe failed"); }); expect(() => runFrontend("/main.ts", loader, ["fixture"])).toThrow("probe failed"); - expect(opened).toHaveLength(2); + expect(opened).toHaveLength(3); for (const load of opened) expect(load.dispose).toHaveBeenCalledTimes(1); }); diff --git a/packages/compiler/src/frontend/pipeline.ts b/packages/compiler/src/frontend/pipeline.ts index 2e7c0857b..5b198e181 100644 --- a/packages/compiler/src/frontend/pipeline.ts +++ b/packages/compiler/src/frontend/pipeline.ts @@ -19,12 +19,15 @@ import { npmStaticOffenders, npmStaticPackageOfPath, } from "./npm-static.js"; -import { clearResolveCaches, resolveBareModule } from "./resolve.js"; +import { clearResolveCaches, resolveBareModule, resolveWorkspaceSourceModule } from "./resolve.js"; +import { provenanceEntryFor } from "./provenance-registry.js"; import { isJsSourceFileName } from "./tsc-codes.js"; import { isRelativeSpecifier, packageNameOfSpecifier } from "./workspace-registry.js"; import { lowerToIr, type LowerOptions, type LowerResult } from "./lowering/lowerer.js"; import type { FrontendServices } from "./services.js"; import { isImportDeclaration, isExportDeclaration, isStringLiteral } from "./ts7/adapter.js"; +import { CONTRACT_TYPES_MODULE } from "./contract-types.js"; +import { THREADS_MODULE } from "./threads-import.js"; export interface ProgramLoadOptions { npmStatic?: readonly string[]; @@ -63,11 +66,10 @@ export interface Frontend { entryContract: () => ContractFacts; sourceTexts: () => Map; lower: (opts: LowerOptions) => LowerResult; - /** --npm-static: each requested (or auto-detected) package's outcome — - * compiled statically, or fallen back with the first refusal reason. */ + /** Each requested or detected package's native compilation outcome, + * including the first refusal reason for ineligible packages. */ npmStatic: NpmStaticStatus[]; - /** Library mode only (empty otherwise): each judged npm package's first - * import site, the anchor for the SC4020 static-or-refuse teaching. */ + /** Each judged npm package's first import site, used to anchor refusals. */ npmImportSites: ReadonlyMap; /** Releases the frontend's resources (the spawned tsgo server). Call * exactly once, after the last lower(). */ @@ -82,24 +84,6 @@ export type FrontendFactory = ( libraryNpmStatic?: readonly string[], ) => Frontend; -/** --npm-static=auto (and library mode's mandatory twin): one throwaway - * load finds every bare npm import the program's own modules make, then - * the eligibility heuristics (npm-static.ts) pick the packages whose - * shipped JS is worth attempting. Rejected candidates report their reason - * so the coverage output says why auto skipped them. - * - * "lib" widens the scan to the STATIC-OR-REFUSE posture (a fallback - * status is a build-stopping SC4020 there, never an island note): - * - opted-in packages' OWN files are scanned too — import statements - * and top-level requires alike — so runFrontend's fixpoint loop - * judges every bare edge the growing graph exposes (the executable - * lane leaves a package's deps to the island; the library lane has - * no island); - * - a bare specifier no TYPES resolution answers but whose runtime JS - * resolves (a package with no own .d.ts) is judged instead of - * skipped — it fails the bar by name, not as a generic import fence; - * - `judged` dedups across fixpoint iterations and `sites` records - * each package's first import site, the SC4020 anchor. */ function detectAutoPackages( load: LoadResult, statuses: NpmStaticStatus[], @@ -130,6 +114,15 @@ function detectAutoPackages( } } for (const { spec, loc } of edges) { + if (load.externalTypes?.has(spec)) continue; + // scriptc's own packages are not npm dependencies: contract types are + // declarations only, and @scriptc/threads exports lower to intrinsics + // at their use sites (threads-import.ts), typed by its declarations. + if (spec === CONTRACT_TYPES_MODULE || spec === THREADS_MODULE) continue; + // Attested entries already resolve to program sources, so the + // published package's declaration eligibility does not apply. + if (provenanceEntryFor(spec) !== null) continue; + if (resolveWorkspaceSourceModule(sf.fileName, spec) !== null) continue; if (isRelativeSpecifier(spec) || spec.startsWith("node:") || spec.startsWith("#")) continue; // Bare builtin names ("fs", "path") are the builtin machinery's // business (and the SC4005 async_free gate's, in library mode) — @@ -149,7 +142,7 @@ function detectAutoPackages( sites!.set(js.packageName, loc); statuses.push({ package: js.packageName, - status: "fallback", + status: "refused", detail: "it ships no own .d.ts declaration surface", }); continue; @@ -174,7 +167,7 @@ function detectAutoPackages( else statuses.push({ package: pkg, - status: "fallback", + status: "refused", detail: mode === "lib" ? reason : `auto: ${reason}`, }); } @@ -199,13 +192,6 @@ function packagesNamedByDiag(message: string, optedIn: ReadonlySet): Set return hits; } -/** The one frontend, three npm postures: `undefined`/explicit package - * lists and `"auto"` are the executable lane's (--npm-static; fallback = - * island). `"lib"` is library mode's mandatory auto twin — the same - * eligibility bar and the same opt-in machinery, but every fallback - * status the shared loops record becomes compileLibrary's SC4020 - * static-or-refuse teaching, and the detection closes over the opted-in - * packages' own bare edges (no island exists to serve a dep from). */ export function runFrontend( entryPath: string, loadProgram: ProgramLoader, @@ -231,7 +217,13 @@ export function runFrontend( }; }; try { - return loadFrontend(entryPath, trackedLoader, npmStatic, externalTypes, libraryNpmStatic); + // Every executable and library closes over its dependencies. Explicit + // selections bypass eligibility heuristics, but never compilation checks. + const explicit: readonly string[] = + npmStatic !== undefined && typeof npmStatic !== "string" ? npmStatic : []; + return loadFrontend(entryPath, trackedLoader, "lib", externalTypes, [ + ...new Set([...libraryNpmStatic, ...explicit]), + ]); } catch (error) { for (const load of active) { // Preserve the original failure and attempt every remaining cleanup. @@ -293,7 +285,7 @@ function loadFrontend( // One exact --external-types mapping makes the containing package an // external host boundary, which cannot simultaneously be compiled as a // package-wide --npm-static program graph. External wins; retain the - // ordinary npm-static fallback record so explicit and auto requests both + // npm-static refusal record so explicit and auto requests both // explain why the package did not compile statically. if (requested.length > 0 && externalTypes !== undefined) { const externalSpecifiersByPackage = new Map(); @@ -308,40 +300,25 @@ function loadFrontend( if (specs === undefined) return true; statuses.push({ package: pkg, - status: "fallback", + status: "refused", detail: `mapped as an external host module by --external-types (${specs.map((s) => JSON.stringify(s)).join(", ")})`, }); return false; }); } - // The all-or-nothing fallback loop: a preflight diagnostic ANCHORED in - // an opted-in package's files (an unsupported require form, a builtin - // fence) — or an offender the resolution itself reported — drops that - // package from the set and the whole frontend reloads without it, so - // its import takes the ordinary island path. Static compilation of a - // package must never turn a working --dynamic build into a build - // failure. - // - // CONSUMER-anchored attribution (the second source): an opted-in - // package whose inferred export surface breaks the typecheck reports at - // its IMPORT SITES — errors in program files no path-shaped attribution - // reaches, but whose MESSAGES name the package ("Module '"pkg"' has no - // exported member", "typeof import("…/pkg/dist/index")"). Bundle-shaped - // dists carry surfaces inference can only partly reach (type-only - // re-exports have no JS value to chase), and the ratified behavior is - // graceful PER-PACKAGE degradation: the named package drops to the - // island with a note, never a failed gate. Explicit opt-ins degrade - // exactly like auto's — "the user asked for these packages" buys the - // attempt, not a broken build. + // Package-anchored preflight failures and attributable consumer errors + // remove that package from the active source graph. Reloading restores + // its declarations for analysis; the recorded refusal stops executable + // and library builds with a package-specific diagnostic. let load = reusableScout ?? loadProgram(entryPath, { npmStatic: requested, externalTypes }); let preflight = reusablePreflight ?? checkPreflight(load); // Library mode's fixpoint: the opted-in packages' files joined the // program just now, and THEIR bare edges (import statements and // top-level requires) name packages the scout could not see. Judge each // by the same bar — eligible ones join the set and the frontend - // reloads; ineligible ones record the fallback status compileLibrary - // refuses on. Bounded by the dependency count (every iteration settles + // reloads; ineligible ones record a refusal. Bounded by the dependency + // count (every iteration settles // at least one new package for good). if (npmStatic === "lib") { for (;;) { @@ -371,7 +348,7 @@ function loadFrontend( for (const [pkg, count] of named) { reasons.set( pkg, - `its inferred export surface breaks ${count} import site${count === 1 ? "" : "s"} in program files${npmStatic === "lib" ? "" : " — the package serves from the island instead"} (bundler-emitted surfaces type only as far as inference reaches)`, + `its inferred export surface breaks ${count} import site${count === 1 ? "" : "s"} in program files (bundler-emitted surfaces type only as far as inference reaches)`, ); } } @@ -379,7 +356,7 @@ function loadFrontend( if (dropping.length === 0) break; for (const p of dropping) { effective.delete(p); - statuses.push({ package: p, status: "fallback", detail: reasons.get(p)! }); + statuses.push({ package: p, status: "refused", detail: reasons.get(p)! }); } load.dispose(); load = loadProgram(entryPath, { npmStatic: [...effective], externalTypes }); @@ -403,13 +380,13 @@ function loadFrontend( effective.delete(p); statuses.push({ package: p, - status: "fallback", + status: "refused", detail: npmStatic === "auto" ? "auto: the program does not typecheck against its inferred surface" : npmStatic === "lib" ? "the program does not typecheck against its inferred surface (type-only declarations and .d.ts type guards have no JS value inference can chase)" - : "the program does not typecheck against its inferred surface (type-only declarations and .d.ts type guards have no JS value inference can chase) — the package serves from the island instead", + : "the program does not typecheck against its inferred surface (type-only declarations and .d.ts type guards have no JS value inference can chase)", }); }; // Attribute per package by probing each SOLO (culprits are almost diff --git a/packages/compiler/src/frontend/program.ts b/packages/compiler/src/frontend/program.ts index 20e139e63..a145d9689 100644 --- a/packages/compiler/src/frontend/program.ts +++ b/packages/compiler/src/frontend/program.ts @@ -1486,8 +1486,7 @@ function isCreateRequireBaseCall7(program: ts.Program, expr: ts.Expression): boo ); } -/** A node:module import alone does not require an engine. Retain npm - * fallback for require indirection the lowering cannot erase, while +/** Refuse require indirection the lowering cannot erase, while * admitting literal calls through the same stable/inline shapes as program * code. Inspect symbols, not names: nested shadows are unrelated bindings. */ function npmStaticModuleImportReason7( @@ -2214,25 +2213,6 @@ function backEdgeUseOffence7( return null; } -/** The benign-cycle admission engine over one import graph, shared by - * preflight's static-module walk and the --dynamic subgraph walk - * (appendDynamicImportModules). Given a BACK edge (importer → e.dep with - * e.dep already mid-initialization in a depth-first walk), answers null - * to ADMIT the cycle — the guarded %init calls reproduce Node's cache-hit - * order and nothing can observe the partial initialization — or the - * human-readable reason it keeps the SC1016 fence. Three admission chances: - * - the CHEAP PER-EDGE rule: the closing statement binds nothing (a - * side-effect import) or binds only namespace objects whose every use - * is a bare expression statement — no read crosses the edge at all; - * - the DECLARATION-ONLY INIT WINDOW rule (the admission block above): - * every cluster member is an ES module with an inert top level, and - * the closing edge's bindings are used only in deferred positions; - * - the EXACT INITIALIZATION rule (exactCycleRefusal7): partial - * initialization is observable, but every observation is modeled — - * the lowering checks each binding cycleEarlyBindings reports. - * Tarjan SCCs (lazy, rooted at each queried importer) and cluster - * verdicts are memoized across calls, so `edgesOf` must answer the same - * edges for the same file every time. */ export function makeCycleAdmission( program: ts.Program, edgesOf: (sf: ts.SourceFile) => readonly CycleEdge[], @@ -3218,11 +3198,6 @@ function resolveImport7( : null; } -/** An import that resolves into node_modules: the package's shipped .d.ts - * is the type surface, and the package's shipped JS runs in the dynamic - * island under --dynamic. Resolution rides the own resolver (resolve.ts). - * Null for relative and node: specifiers, and for anything that doesn't - * resolve into node_modules. */ function resolveNpmImport7( fromFileName: string, specifier: string, @@ -3233,7 +3208,7 @@ function resolveNpmImport7( } // --provenance-sources: a registered specifier is NOT an npm import — // its attested source compiles as program modules (resolveProjectModule - // answers the entry), so no island embed and no .d.ts type surface. + if (provenanceEntryFor(specifier) !== null) return null; const resolved = resolveBareModule(fromFileName, specifier, undefined, resolutionKind); if (!resolved) return null; @@ -3353,9 +3328,8 @@ function preflight7(load: LoadResult): { // Workspace-linked packages register BEFORE the tsc gate. Their files // live at realpaths OUTSIDE node_modules (the monorepo-tool symlink // shape), so nothing path-shaped marks them as npm surface — yet their - // shipped JS is the identical foreign-tsconfig story as node_modules JS - // (the island executes it under --dynamic; the author's own build - // checked it, the program's author cannot fix it). The lazy + // shipped JS follows the same foreign-tsconfig rules as node_modules JS. + // The lazy // registration inside the import-fence walk below runs AFTER errorsOf, // too late for the gate, so one pass over the program's import edges // registers them up front: every bare specifier any program file loads — @@ -3435,42 +3409,17 @@ function preflight7(load: LoadResult): { const sf = p.getSourceFile(d.fileName); return sf !== undefined && names.has(sf.text.slice(d.pos, d.end)); }; - /* --npm-static: checker errors INSIDE an opted-in package's files never - * gate the build — the package's author checked that JS under a foreign - * tsconfig (their own lib choices, their own strictness), the program's - * author cannot fix it, and the JS design already names where inference - * gaps land: the per-statement runtime fences (trust-but-verify — a - * statement the checker could not prove compiles to its honest trap, - * never to a silent guess). scriptc's OWN SC1xxx fences in those files - * still count — preflight structure problems mark the package an - * offender and it falls back to the island. */ + const npmStaticFileSuppressed = (d: ts.Diagnostic): boolean => d.fileName !== undefined && npmStaticPackageOfPath(d.fileName) !== null; - /* The same doctrine for node_modules JS the opt-in never NAMED: - * maxNodeModuleJsDepth (set only on --npm-static loads) admits ANY - * node_modules JavaScript the checker's resolution touches — e.g. an - * ambient `declare module "punycode"` in @types/node now loses to an - * INSTALLED punycode package's JS, which checkJs then checks. Those - * files' errors are the identical foreign-tsconfig story (third-party - * shipped JS the program's author cannot fix), they were invisible to - * every flagless compile (depth 0 keeps node_modules JS out of the - * program), and the packages themselves still island — so their checker - * errors never gate a build. */ - /* WORKSPACE-LINKED shipped JS is the same story at a different path: the - * package's files realpath OUTSIDE node_modules (so depth-0 exclusion - * never saw them and allowJs+checkJs pulls them straight into the - * program), but they are npm surface all the same — the island executes - * them, the program's author cannot fix them (a workspace package shipping - * an ncc bundle with dozens of checker errors). Registered up front (the - * pass above), suppressed here unless --npm-static opted them into being - * program modules. */ - const islandJsFile = (file: string): boolean => + + const unselectedPackageJsFile = (file: string): boolean => isJsSourceFileName(file) && !entryPackageFile(file) && npmStaticPackageOfPath(file) === null && (isNodeModulesPath(file) || workspacePackageOfPath(file) !== null); const nodeModulesJsSuppressed = (d: ts.Diagnostic): boolean => - d.fileName !== undefined && islandJsFile(d.fileName); + d.fileName !== undefined && unselectedPackageJsFile(d.fileName); /* JSDoc TYPE positions in JS files are documentation Node never reads: * a name-resolution failure THERE (2304/2552 — the pattern's utilities.js * spells a mapped type over a @template name it never declared) types @@ -3500,17 +3449,7 @@ function preflight7(load: LoadResult): { if (insideBlockComment(sf.text, d.pos)) return true; return d.code === 2300 && commentDup.has(`${d.fileName}:${sf.text.slice(d.pos, d.end)}`); }; - /* A workspace member installed by COPY ships its JS inside node_modules, - * where depth-0 exclusion keeps it out of the checker's program — an - * UNTYPED member then types as an implicit-any module (TS7016) at every - * import site. The symlinked install of the same tree never sees this - * (the realpath escapes node_modules and allowJs types the member from - * its JS), and the package is the program author's own workspace code - * with the island as its execution home — "install @types" is not - * actionable — so the copied shape must not gate either: a 7016 whose - * specifier names a REGISTERED workspace package (the eager - * registration pass above runs first) is suppressed, and the import - * takes the same per-site island story as any untyped npm package. */ + const workspaceImplicitAnySuppressed = (p: ts.Program, d: ts.Diagnostic): boolean => { if (d.code !== 7016 || d.fileName === undefined || d.pos === undefined || d.end === undefined) return false; @@ -3583,7 +3522,7 @@ function preflight7(load: LoadResult): { (!isNodeModulesPath(sf.fileName) || entryPackageFile(sf.fileName) || npmStaticPackageOfPath(sf.fileName) !== null) && - !islandJsFile(sf.fileName), + !unselectedPackageJsFile(sf.fileName), ); const userFiles = npmStaticActive() ? planNpmStaticReexports( @@ -3602,11 +3541,8 @@ function preflight7(load: LoadResult): { : programFiles; program.getTypeChecker().prefetchSourceFileStructures(userFiles); - // node_modules JS that no --npm-static opt-in claims is NOT program - // source even when maxNodeModuleJsDepth pulled it into the checker's - // program (see nodeModulesJsSuppressed above): its execution home is the - // island, so preflight's statement walks skip it — no import fences, no - // module edges, no statement counts from files the lowering never lowers. + // Unselected node_modules JS is not native program source even when + // maxNodeModuleJsDepth pulled it into the checker (nodeModulesJsSuppressed). // Node stops at the nearest package.json even when it is malformed, and // an explicit CommonJS scope (or .cjs/.cts extension) disables ambiguous- // file syntax detection entirely. TypeScript's bundler checker models @@ -3755,13 +3691,8 @@ function preflight7(load: LoadResult): { // NAMED re-exports from an INSTALLED npm package (`export // { isUrl } from "url-or-path"` — the pattern's universal facade, // `export { visitorKeys as default } from "@glimmer/syntax"`): - // import-plus-export plumbing. collectNpmImports registers the - // island load at this statement's position in the exporter's - // init and keys each binding by the same aliased symbol a - // direct import would, so consumer reads resolve identically - // through the alias chain. Star re-exports and unresolvable - // specifiers keep the fence (no member list to bind / nothing - // installed to load). + // import-plus-export plumbing. The lowering owns the package + // value diagnostic when no compiled source can supply the binding. if ( stmt.exportClause !== undefined && ts.isNamedExports(stmt.exportClause) && @@ -3868,7 +3799,7 @@ function preflight7(load: LoadResult): { // clause fences below apply to it as to program JS. A miss (the // resolution still answers declarations, or the file never joined // the program) marks the package an OFFENDER: the frontend's - // fallback loop rebuilds without it and the import islands as ever. + // selection loop rebuilds without it and reports the package refusal. let npmStaticDep: ts.SourceFile | null = null; if (npm !== null) { if (isNpmStaticPackage(npm.packageName)) { @@ -3878,7 +3809,7 @@ function preflight7(load: LoadResult): { // Types resolved, but Node's RUNTIME resolution can still refuse // the edge (a types-only package whose exports target ships no JS, // most commonly): that program is Node's startup crash, not an - // island candidate — there is nothing to execute anywhere. + const refusal = probeNodeImportRefusal(sf.fileName, spec); if (refusal !== null) { refuse( @@ -4114,8 +4045,7 @@ function preflight7(load: LoadResult): { if (dep === null) continue; // offender recorded — the fallback loop reloads } else { // createRequire's non-program targets belong to its own - // lowering: installed packages select static-vs-island - // there, and missing packages become catchable + // lowering, where missing packages become catchable // MODULE_NOT_FOUND throws. Only resolved program targets are // module-order edges in this preflight walk. if (bindingKind === "createRequire") continue; @@ -4979,16 +4909,6 @@ function erasedTypeOnlyReexport(stmt: ts.ExportDeclaration): boolean { ); } -/** A file's import declarations — and value re-exports with a specifier - * (`export { x } from "./y.js"`, `export * from "./y.js"`), which Node - * evaluates exactly like imports — in SOURCE ORDER, each with its resolved - * user-module dependency (null for npm/builtin/JSON specifiers — those are - * not module-order edges). The per-file %init header (lowerFileInit) uses - * this to interleave island imports with user-module init calls exactly - * where Node would evaluate them. CommonJS require statements are - * deliberately NOT here: Node evaluates a require AT ITS STATEMENT, inline - * in the module body, so the statement lowering emits their guarded %init - * calls in place instead of hoisting them. */ export function orderedImportsOf( program: ts.Program, sf: ts.SourceFile, diff --git a/packages/compiler/src/frontend/provenance-core.ts b/packages/compiler/src/frontend/provenance-core.ts index 9e9c458a4..646aa2d53 100644 --- a/packages/compiler/src/frontend/provenance-core.ts +++ b/packages/compiler/src/frontend/provenance-core.ts @@ -1,33 +1,3 @@ -/* `--provenance-sources` — the provenance-assisted static compilation - * pipeline (EXPERIMENTAL prototype; the registry doc in - * provenance-registry.ts states the thesis). - * - * For every bare npm specifier the entry's module graph imports, this - * asks the npm registry for the package's PROVENANCE ATTESTATION - * (GET registry.npmjs.org/-/npm/v1/attestations/@ — the - * SLSA predicate names the exact {repository, commit} the published dist - * was built from), fetches that source tree once (content-addressed cache - * under ~/.cache/scriptc/provenance/), locates the package - * directory inside it (monorepos publish from subdirectories), and maps - * the published entry to its TypeScript source (dist/lib/build targets - * rewritten to their src twins). Mapped packages compile as ordinary - * program modules — real types, real statements, the static frontier — - * and everything that cannot be mapped FALLS BACK to the island path - * with a note; a fallback is never a build failure. - * - * PRODUCTION GAPS, deliberately unbuilt in the prototype: no sigstore - * bundle verification (the attestation is trusted as served), no - * dist-tarball ↔ source build reproduction (the behavior differential is - * the honest check today), source-entry mapping is heuristic (exports - * targets rewritten dist→src), and transitive dependency versions - * resolve from the DRIVER's installed tree rather than the package's own - * lockfile. - * - * Offline/test hook: SCRIPTC_PROVENANCE_MANIFEST= pre-seeds - * {"packages": {"": {"dir": "", "commit"?, "repo"?}}} - * — those packages skip the network entirely (harness fixtures ride - * this); unlisted packages still take the live pipeline. */ - import { execFileSync } from "node:child_process"; import { mkdirSync, @@ -362,10 +332,6 @@ function readManifest(): Map { return out; } -/** Resolves provenance sources for everything the entry's module graph - * imports (one transitive round per newly-mapped tree: source imports of - * OTHER packages try the pipeline too). Never throws for a package - * failure — those become notes and the package keeps its island path. */ export async function resolveProvenanceSourcesWithParser( entryPath: string, parseSourceFile: ProvenanceParser, @@ -398,14 +364,16 @@ export async function resolveProvenanceSourcesWithParser( if (processed.size >= MAX_PACKAGES) { processed.set(name, null); notes.push( - `${name}: skipped — provenance package limit (${MAX_PACKAGES}) reached; island path used`, + `${name}: skipped — provenance package limit (${MAX_PACKAGES}) reached; published package resolution used`, ); return; } processed.set(name, null); // claimed; overwritten on success const installed = findInstalled(dirname(entry), name); if (installed === null) { - notes.push(`${name}: not installed under the entry's node_modules; island path used`); + notes.push( + `${name}: not installed under the entry's node_modules; published package resolution used`, + ); return; } let dir: string; @@ -438,7 +406,7 @@ export async function resolveProvenanceSourcesWithParser( const source = target === null ? null : mapEntryToSource(dir, target, subpath); if (source === null) { notes.push( - `${name}@${installed.version}: no source mapping for '${spec}' (published target: ${target ?? "unexported"}); island path used`, + `${name}@${installed.version}: no source mapping for '${spec}' (published target: ${target ?? "unexported"}); published package resolution used`, ); continue; } @@ -472,7 +440,7 @@ export async function resolveProvenanceSourcesWithParser( for (const n of inner) await mapOne(n); } catch (e) { notes.push( - `${name}@${installed.version}: ${e instanceof Error ? e.message : String(e)}; island path used`, + `${name}@${installed.version}: ${e instanceof Error ? e.message : String(e)}; published package resolution used`, ); } }; diff --git a/packages/compiler/src/frontend/provenance-registry.ts b/packages/compiler/src/frontend/provenance-registry.ts index 32aa26737..745bb0447 100644 --- a/packages/compiler/src/frontend/provenance-registry.ts +++ b/packages/compiler/src/frontend/provenance-registry.ts @@ -1,24 +1,3 @@ -/* The provenance-sources registry — the flag-gated state `--provenance- - * sources` compiles against (EXPERIMENTAL prototype). - * - * The thesis: an npm package published with provenance attests the exact - * {repository, commit} its dist was built from, so the compiler can fetch - * that SOURCE and hand it to the static frontend as ordinary program - * modules — real TypeScript with real types — instead of island-embedding - * the published JavaScript. provenance.ts fills this registry before the - * program loads; the pipeline consults it at three chokepoints: - * - * - resolve.ts resolveProjectImport: a registered bare specifier answers - * its mapped source entry (preflight's user-module edges, the module - * order, and the CJS link check all ride that one resolver); - * - program.ts resolveNpmImport: a registered specifier is NOT an npm - * import (no island embed, no .d.ts type surface); - * - program.ts loadProgram: the registered entries become tsconfig - * "paths" so tsgo's own resolution agrees with ours. - * - * Empty registry (the default — the flag off) = every chokepoint answers - * exactly as before; nothing in the production npm/island path changes. */ - export interface ProvenancePackageSource { /** Package name ("cookie"). */ name: string; @@ -43,10 +22,7 @@ export interface ProvenancePackageSource { export interface ProvenanceSources { /** Successfully source-mapped packages, driver-import order. */ packages: ProvenancePackageSource[]; - /** Everything that fell back to the island path (or is informational): - * no attestation, unfetchable source, unmappable entry, version skew. - * Fallbacks are never build failures — the coverage report carries - * these so the build output stays honest. */ + notes: string[]; } diff --git a/packages/compiler/src/frontend/resolve.ts b/packages/compiler/src/frontend/resolve.ts index 430a05ba4..f78ba1066 100644 --- a/packages/compiler/src/frontend/resolve.ts +++ b/packages/compiler/src/frontend/resolve.ts @@ -271,27 +271,6 @@ function loadAsDirectory(base: string): string | null { return null; } -/** The RUNTIME sibling of a PROJECT declaration twin — "src/index.js" for - * "src/index.d.ts" when both exist OUTSIDE node_modules — or null. Node - * loads the JS (declaration files do not exist in its world), and a - * project module's implementation is what scriptc compiles: a hand-kept - * .d.ts beside runtime JS (the classic typed-JS-library entry, the classic - * typed-JS-library pattern) is the author's claim about the code, not - * the code. EXACTLY the .d.ts/.js pair: the per-format spellings - * (.d.mts/.d.cts twins — an openh264.d.mts beside its island-bound - * wasm loader, the npm fixtures' shape.d.mts) are the established - * scriptc idiom for declaring a typed surface over JS that deliberately - * runs in the island, and stay authoritative. npm packages keep the npm - * story (their declarations ARE the consumer surface; --npm-static opts - * into the JS per package), and a declaration with NO runtime sibling - * stays a type-only module exactly as before. The tsgo host hides the - * same twins (loadProgram's composed fsShadow), so both resolution - * worlds answer the JS. - * - * "PROJECT" means the entry's own package realm: a workspace-linked - * package's realpaths carry no node_modules segment either, but its - * declarations ARE the consumer surface (the npm story), so twins hide - * only under the same package.json as the entry. */ let projectRealmPkgJson: string | null = null; export function setProjectRealm(entryPath: string): void { @@ -609,7 +588,7 @@ export function resolveProjectImport(fromFile: string, specifier: string): strin // registered bare specifier answers its attested SOURCE entry — the one // chokepoint that makes preflight's user-module edges, the module // order, and the CJS link check all agree the package compiles as - // program modules instead of island-embedding its published dist. + const provenance = provenanceEntryFor(specifier); if (provenance !== null) return normalizeResolvedPath(provenance); const viaPaths = resolveViaProjectPaths(specifier); @@ -964,18 +943,6 @@ export function resolveBareModule( return npmStatic ? passOnce("js") : (passOnce("types") ?? passOnce("js")); } -/** A workspace-linked bare package whose executable entry is TypeScript, - * not shipped JavaScript. The type-resolution pass must reach that source - * directly, and the runtime-JS pass must have no answer: a workspace that - * ships dist/index.js beside src/index.ts remains an ordinary npm package - * whose JavaScript executes in the island unless --npm-static opts it in. - * - * Source-only workspace packages are part of the program author's module - * graph instead. The TypeScript program already loaded their source and - * resolved package-internal `.js` spellings to `.ts`; returning that same - * entry from resolveProjectModule lets preflight, module ordering, and - * lowering share the checker-resolved graph without feeding TypeScript to - * the JavaScript island. */ export function resolveWorkspaceSourceModule( fromFile: string, specifier: string, diff --git a/packages/compiler/src/frontend/runtime-resolve.ts b/packages/compiler/src/frontend/runtime-resolve.ts index 9d378c8dc..d9f612b66 100644 --- a/packages/compiler/src/frontend/runtime-resolve.ts +++ b/packages/compiler/src/frontend/runtime-resolve.ts @@ -14,7 +14,7 @@ import { isBuiltin } from "node:module"; import { isAbsolute } from "node:path"; import { pathToFileURL } from "node:url"; import { markFrontendInputsUnstable } from "./input-tracker.js"; -import { NpmGraphBuilder, probeNodeImportRefusal } from "./npm.js"; +import { NodePackageResolver, probeNodeImportRefusal } from "./npm.js"; import type { FrontendServices } from "./services.js"; import { wasiGuestPath } from "../wasi-paths.js"; import { cjsResolvePaths, resolveCjsRuntime } from "./cjs-resolve.js"; @@ -83,7 +83,7 @@ export function resolveImportMetaRuntime( if (services === undefined) throw new Error("package runtime resolution requires frontend services"); - const builder = new NpmGraphBuilder(services); + const builder = new NodePackageResolver(); const key = builder.resolveForIntrospection(fromFile, specifier, "import"); if (key !== null) return { ok: true, value: targetFileUrl(key, targetPlatform) }; const refusal = probeNodeImportRefusal(fromFile, specifier); diff --git a/packages/compiler/src/frontend/services-node.ts b/packages/compiler/src/frontend/services-node.ts index 1a98f1795..ebac9f939 100644 --- a/packages/compiler/src/frontend/services-node.ts +++ b/packages/compiler/src/frontend/services-node.ts @@ -1,9 +1,8 @@ import { createRequire } from "node:module"; import { pathToFileURL } from "node:url"; import { FrontendServices } from "./services.js"; -import { Ts7Api, ts7Executable } from "./ts7/rpc-api.js"; +import { Ts7Api } from "./ts7/rpc-api.js"; import { evaluateNodeComptime } from "./comptime-node.js"; -import { emitRuntimeTypeScript } from "../native/runtime-typescript.js"; export function createNodeFrontendServices(): FrontendServices { return new FrontendServices( @@ -20,7 +19,6 @@ export function createNodeFrontendServices(): FrontendServices { lookupPaths: (fromFile, specifier) => createRequire(pathToFileURL(fromFile)).resolve.paths(specifier), }, - (path, source, format) => emitRuntimeTypeScript(ts7Executable(), path, source, format), ); } diff --git a/packages/compiler/src/frontend/services.test.ts b/packages/compiler/src/frontend/services.test.ts index 976853a77..03afcd655 100644 --- a/packages/compiler/src/frontend/services.test.ts +++ b/packages/compiler/src/frontend/services.test.ts @@ -52,42 +52,9 @@ test("a host without a compile-time evaluator refuses explicitly", () => { expect(factory).not.toHaveBeenCalled(); }); -test("TypeScript package emission belongs to its host and obeys the service lifecycle", () => { - const emit = vi.fn(() => "export const value = 1;"); - const factory = vi.fn(() => { - throw new Error("emission must not open a parser connection"); - }); - const services = new FrontendServices(factory, process.cwd(), undefined, undefined, emit); - expect(services.emitRuntimeTypeScript("index.ts", "export const value: number = 1;", "esm")).toBe( - "export const value = 1;", - ); - expect(emit).toHaveBeenCalledExactlyOnceWith( - "index.ts", - "export const value: number = 1;", - "esm", - ); - expect(factory).not.toHaveBeenCalled(); - services.close(); - expect(() => services.emitRuntimeTypeScript("index.ts", "", "esm")).toThrow("closed"); - expect(emit).toHaveBeenCalledTimes(1); -}); - -test("a host without a TypeScript package emitter refuses explicitly", () => { - const { services, factory } = setup(); - try { - expect(() => services.emitRuntimeTypeScript("index.ts", "", "esm")).toThrow( - "does not provide TypeScript package emission", - ); - } finally { - services.close(); - } - expect(factory).not.toHaveBeenCalled(); -}); - test("service construction and irrelevant rewrites open no connections", () => { const { services, factory } = setup(); expect(services.rewriteCjs("exports.value = 1;", "index.js")).toBeNull(); - expect(services.globalFetchModules([])).toEqual(new Set()); expect(services.declarationOverloads("index.js", "", new Map())).toBeNull(); expect(services.declarationProperties("index.js", "", new Map())).toBeNull(); services.close(); @@ -95,7 +62,6 @@ test("service construction and irrelevant rewrites open no connections", () => { expect(factory).not.toHaveBeenCalled(); expect(() => services.parse("a.ts", "", "ts")).toThrow("closed"); expect(() => services.createProgramHost()).toThrow("closed"); - expect(() => services.globalFetchModules([])).toThrow("closed"); expect(() => services.rewriteCjs("", "a.js")).toThrow("closed"); expect(() => services.declarationOverloads("a.js", "", new Map())).toThrow("closed"); expect(() => services.declarationProperties("a.js", "", new Map())).toThrow("closed"); @@ -136,20 +102,6 @@ test("program hosts remain usable after their creating services close", () => { expect(connections[0]!.close).toHaveBeenCalledTimes(1); }); -test("fetch analysis never shares a semantic session with detached syntax", () => { - const { services, connections } = setup(); - const file = services.parse("same.js", "const fetch = () => 1;", "js"); - expect([ - ...services.globalFetchModules([{ key: "same.js", source: "fetch();", format: "cjs" }]), - ]).toEqual(["same.js"]); - expect(connections).toHaveLength(2); - expect(connections[0]!.close).not.toHaveBeenCalled(); - expect(connections[1]!.close).toHaveBeenCalledTimes(1); - expect(services.parse("same.js", file.text, "js")).toBe(file); - services.close(); - expect(connections.every((connection) => connection.close.mock.calls.length === 1)).toBe(true); -}); - test("load failure releases the newly opened program host and keeps supplied services reusable", () => { const { services, connections, dir } = setup(); try { diff --git a/packages/compiler/src/frontend/services.ts b/packages/compiler/src/frontend/services.ts index 29e5730c5..ca4dd2b36 100644 --- a/packages/compiler/src/frontend/services.ts +++ b/packages/compiler/src/frontend/services.ts @@ -1,6 +1,5 @@ import { Ts7SourceParser, type Ts7SourceKind } from "./ts7/source-parser.js"; import { Ts7Host, type Ts7ApiFactory, type Ts7HostOptions } from "./ts7/program-host.js"; -import { NpmFetchAnalyzer, type FetchAnalysisModule } from "./npm-fetch-analysis.js"; import { rewriteBundlerCjsWithParser } from "./npm-static-rewrite-host.js"; import { isBundlerCjsCandidate } from "./npm-static-rewrite-syntax.js"; import * as syntax from "./npm-static-declaration-syntax.js"; @@ -11,13 +10,6 @@ import type { SourceFile } from "./ts7/ast-types.js"; * verifies the returned value before baking it into the program. */ export type ComptimeEvaluator = (source: string, timeoutMs: number) => unknown; -/** Emit an isolated package source without resolving or executing its imports. */ -export type RuntimeTypeScriptEmitter = ( - path: string, - source: string, - format: "esm" | "cjs", -) => string; - /** A Node host keeps its process-specific resolver settings and hooks. Native * clients use the filesystem resolver when no host adapter is supplied. */ export interface RuntimeModuleResolver { @@ -31,7 +23,6 @@ export interface RuntimeModuleResolver { * across native and Node clients. Program hosts belong to their callers. */ export class FrontendServices { private parser: Ts7SourceParser | undefined; - private readonly fetchAnalyzer: NpmFetchAnalyzer; private closed = false; constructor( @@ -39,13 +30,7 @@ export class FrontendServices { private readonly cwd = process.cwd(), private readonly comptimeEvaluator: ComptimeEvaluator | undefined = undefined, readonly runtimeModuleResolver: RuntimeModuleResolver | undefined = undefined, - private readonly runtimeTypeScriptEmitter: RuntimeTypeScriptEmitter | undefined = undefined, - ) { - this.fetchAnalyzer = new NpmFetchAnalyzer( - (options) => createApi({ ...options, collectTiming: false }), - cwd, - ); - } + ) {} private ensureOpen(): void { if (this.closed) throw new Error("frontend services are closed"); @@ -60,12 +45,6 @@ export class FrontendServices { parse(path: string, source: string, kind: Ts7SourceKind): SourceFile { return this.sourceParser().parse(path, source, kind); } - emitRuntimeTypeScript(path: string, source: string, format: "esm" | "cjs"): string { - this.ensureOpen(); - if (this.runtimeTypeScriptEmitter === undefined) - throw new Error("this compiler host does not provide TypeScript package emission"); - return this.runtimeTypeScriptEmitter(path, source, format); - } evaluateComptime(source: string, timeoutMs: number): unknown { this.ensureOpen(); if (this.comptimeEvaluator === undefined) @@ -76,10 +55,6 @@ export class FrontendServices { this.ensureOpen(); return new Ts7Host(this.createApi, { ...options, cwd: options?.cwd ?? this.cwd }); } - globalFetchModules(modules: readonly FetchAnalysisModule[]): ReadonlySet { - this.ensureOpen(); - return this.fetchAnalyzer.analyze(modules); - } rewriteCjs(source: string, path: string): string | { degrade: string } | null { this.ensureOpen(); if (!isBundlerCjsCandidate(source)) return null; @@ -126,10 +101,6 @@ export class FrontendServices { this.closed = true; const parser = this.parser; this.parser = undefined; - try { - this.fetchAnalyzer.close(); - } finally { - parser?.close(); - } + parser?.close(); } } diff --git a/packages/compiler/src/frontend/tsc-codes.ts b/packages/compiler/src/frontend/tsc-codes.ts index 65d211c0f..9095e9df3 100644 --- a/packages/compiler/src/frontend/tsc-codes.ts +++ b/packages/compiler/src/frontend/tsc-codes.ts @@ -29,17 +29,6 @@ export const ADOPTED_OPTIONS = [ "allowSyntheticDefaultImports", ] as const; -/* The JAVASCRIPT strictness stance (the JS-input design made real): - * JavaScript sources carry no annotations, so tsc's strictness families - * that exist to demand annotations — or to reject dynamically-typed - * idioms that are ordinary, working JS — cannot be satisfied by the - * program's author at all. The design already says where inference gaps - * land: exactly where `any` lands in TS (island under --dynamic, honest - * fences without). So for JS FILES ONLY, these tsc families are not - * preflight gates; the values involved stay `any`/loose and every use - * meets the lowerer's per-site fences instead. TypeScript sources keep - * the full strict gate — nothing here weakens the default for annotated - * programs. */ export const JS_RELAXED_TSC_CODES: ReadonlySet = new Set([ // implicit any (params, variables, elements, this, returns, rest, // construct signatures, index reads over shapes with no index diff --git a/packages/compiler/src/frontend/type-mapper.ts b/packages/compiler/src/frontend/type-mapper.ts index bbf2a8e07..dc1da834c 100644 --- a/packages/compiler/src/frontend/type-mapper.ts +++ b/packages/compiler/src/frontend/type-mapper.ts @@ -21,7 +21,6 @@ import { isSupportedMapValue, isSupportedSetElem, isUnitType, - JSVAL, mapOf, NULL_T, PROCSTREAM_T, @@ -122,15 +121,7 @@ export function jsOpenObjectType( : type; } -/** The ambient TYPE names of the fetch slice. Under --dynamic their - * values live in the embedded engine and map to island handles (jsval). - * Static fetch gives Response, RequestInit, AbortController/AbortSignal, response - * Headers, and the readable Web Streams slice native checked-dynamic - * handle representations. The Headers constructor itself remains - * dynamic-only even though response.headers is native. - * Declaration provenance is checked in mapType so user types with the - * same names keep their ordinary structural representation. */ -export const ISLAND_AMBIENT_TYPES = [ +export const FETCH_AMBIENT_TYPES = [ "Response", "Request", "ResponseInit", @@ -148,23 +139,6 @@ export const ISLAND_AMBIENT_TYPES = [ "ReadableStreamReadDoneResult", ] as const; -function isAmbientAbortHandleType(type: ts.Type, ctx: TypeMapperCtx): boolean { - if (type.isUnionType()) - return ts.constituentTypes(type).some((part) => isAmbientAbortHandleType(part, ctx)); - const symbol = type.getSymbol(); - return ( - !!symbol && - (symbol.name === "AbortSignal" || symbol.name === "AbortController") && - ctx.checker - .declarationsOf(symbol) - .some( - (d) => - (ts.isInterfaceDeclaration(d) || ts.isClassDeclaration(d)) && - ctx.isStdlibFile(d.getSourceFile()), - ) - ); -} - /** node:util.parseArgs's public and @types/node helper type names. Values * behind this surface use the checked-dynamic tree; see mapTypeInner. */ const PARSE_ARGS_DYN_TYPES = new Set([ @@ -736,8 +710,6 @@ export function formatIrType( seen.delete(t.unionId); } } - case "jsval": - return append("any"); case "regex": return append("RegExp"); case "date": @@ -975,21 +947,14 @@ export interface TypeMapperCtx { * Map/RegExp/Promise recognition needs declaration provenance: the name * alone proves nothing (a user's own `interface Map` maps as a record). */ isStdlibFile: (sf: ts.SourceFile) => boolean; - /** True for an npm package's shipped .d.ts — a declaration file under - * node_modules that is NOT the standard library (typescript's own lib - * files live under node_modules too). Types declared there map to jsval - * under --dynamic: the package's implementation runs in the embedded - * engine, so its values are island handles. */ + isNpmFile: (sf: ts.SourceFile) => boolean; /** True for a declaration file explicitly mapped by coverage's * --external-types option. These declarations are trusted as structural * type descriptions for project-owned values, but their imported runtime * bindings are fenced separately by the Lowerer. */ isExternalTypeFile: (sf: ts.SourceFile) => boolean; - /** --dynamic: `any` maps to the island handle type (jsval). Off, `any` - * stays unmapped and the requires-dynamic diagnostic fires per site. */ - dynamic: boolean; - /** Successful context-free mappings, keyed by dynamic posture + the + /** Successful context-free mappings, keyed by the * TypeScript server's stable type id. A generated facade can reference the * same large record/function type thousands of times; remapping its full * member graph each time is quadratic work. Generic/mixin contexts opt out @@ -1005,10 +970,7 @@ export interface TypeMapperCtx { * would ICE the validator. Such instance types stay unmapped (null): * callers fence them like any other unsupported type. */ isProgramFile: (sf: ts.SourceFile) => boolean; - /** Static ECMAScript module namespace identity, when `type` is exactly a - * compiled source module or supported Node builtin namespace. Dynamic - * builds leave these unmapped because import() values live in the - * embedded engine there. */ + moduleNamespaceId?: (type: ts.Type) => string | null; } /** A generator type's normalized value channels (Generator[] is // Promise.all's food: promises are refcounted, cycle-headered values - // with `_v` adapters like any other ref element — they just never - // JSON-serialize or cross the island boundary, which the safety - // predicates already refuse). FUNCTION elements ride REF too (closure + // with `_v` adapters like any other ref element). FUNCTION elements ride REF too (closure // `_v` adapters + scr_closure_trace_v — closures are cycle-headered): // `f === f` identity through indexOf/includes is sound because a // function VALUE is one ScrClosure for its whole life — top-level @@ -1503,16 +1443,7 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { // VOID mapping is a return-position artifact, not a value. if (elem?.kind === "void" && isUnitOnlyTsType(elemTs, ctx.resolveTypeParam)) elem = unitOnlyUnion(unions); - // A jsval element ABSORBS the array — with one carve-out. An array - // type entangled with package-declared ('npm-jsval') elements - // (`GeneratedFile[]`, `ModelMessage[]`) describes ISLAND values: the - // handles those APIs produce are engine arrays, never the static - // ScrArr this mapping would otherwise claim, so the whole array is - // one handle and every operation on it is an engine op. The carve-out - // is literal `any[]`: an EXPLICIT static array of dynamic values — - // the messages-building pattern (`const content: any[] = []`) — which - // keeps its static array-of-handles representation. - if (elem?.kind === "jsval" && !(elemTs.flags & ts.TypeFlags.Any)) return JSVAL; + if (!elem) return null; // A dyn ELEMENT makes the WHOLE array the checked-dynamic value: // `unknown[]`, `object[]`, and the collapsed `(string | object)[]` @@ -1566,18 +1497,13 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { const args = checker.getTypeArguments(ref); if (args.length === 0) return arrayOf(unitOnlyUnion(unions)); if (tupleShape?.elementFlags === undefined) return null; - // Optional/rest elements (`[string?, number?]`, `[string, ...number[]]`) - // have no fixed shape — the ARITY is a runtime fact. Under --dynamic - // the value lives in the engine, a real JS array carrying its true - // length (reads, destructuring, JSON, .length all exact); static - // builds stay unmapped and badType tells the dynamic-tier story. + // Optional/rest elements have no fixed native tuple layout. if (tupleShape.elementFlags.some((f) => !(f & ts.ElementFlags.Required))) { - return ctx.dynamic ? JSVAL : null; + return null; } const fields: { name: string; type: IrType }[] = []; for (let i = 0; i < args.length; i++) { - let et = - !ctx.dynamic && (args[i]!.flags & ts.TypeFlags.Any) !== 0 ? DYN : mapType(args[i]!, ctx); + let et = (args[i]!.flags & ts.TypeFlags.Any) !== 0 ? DYN : mapType(args[i]!, ctx); // A unit-only element (`[number, undefined]`) rides the unit-only // union, the record-field rule. if (et?.kind === "void" && isUnitOnlyTsType(args[i]!, ctx.resolveTypeParam)) @@ -1587,9 +1513,9 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { // normalizer shape): the slot has the overflow map's RC/JSON/dyn // plumbing, values arrive dyn or convert via dynFrom. if (!et || et.kind === "void") return null; - // A jsval member keeps this tuple in the island as a real JS array. + // Object records may instead keep ambient abort handles in slots. - if (et.kind === "jsval") return JSVAL; + fields.push({ name: String(i), type: et }); } fields.sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0)); @@ -2059,7 +1985,7 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { // spawn consumes a presence-sensitive option bag, including optional // stdio and env values. Keep it checked-dynamic for native normalization. if (isStdlibInterface("SpawnOptions")) return DYN; - // The fetch ambient slice: under --dynamic these are island handles + // exactly like npm-declared types. Static fetch has one deliberately // narrower native representation: Response is an opaque checked- // dynamic capsule consumed only by the Response method lowerings, and @@ -2073,7 +1999,6 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { { const alias = widened.getAliasSymbol(); if ( - !ctx.dynamic && alias?.name === "ReadableStreamReadResult" && checker .declarationsOf(alias) @@ -2087,7 +2012,6 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { } } if ( - !ctx.dynamic && psym && (psym.name === "ReadableStreamReadValueResult" || psym.name === "ReadableStreamReadDoneResult") && @@ -2103,7 +2027,7 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { } if ( psym && - (ISLAND_AMBIENT_TYPES as readonly string[]).includes(psym.name) && + (FETCH_AMBIENT_TYPES as readonly string[]).includes(psym.name) && !( psym.name === "ReadableStream" && checker @@ -2118,7 +2042,7 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { ctx.isStdlibFile(d.getSourceFile()), ) ) { - return ctx.dynamic ? JSVAL : DYN; + return DYN; } // ReadonlyMap/ReadonlySet are the SAME runtime values as Map/Set — the // readonly-ness is a checker-only view (no mutating members on the @@ -2127,30 +2051,26 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { if (isStdlibInterface("Map") || isStdlibInterface("ReadonlyMap")) { const args = checker.getTypeArguments(widened as ts.TypeReference); if (args.length !== 2) return null; - const key = - !ctx.dynamic && (args[0]!.flags & ts.TypeFlags.Any) !== 0 ? DYN : mapType(args[0]!, ctx); + const key = (args[0]!.flags & ts.TypeFlags.Any) !== 0 ? DYN : mapType(args[0]!, ctx); if ( !key || !isSupportedMapKey(key, key.kind === "union" ? ctx.unions.get(key.unionId)?.arms : undefined) ) return null; - const value = - !ctx.dynamic && (args[1]!.flags & ts.TypeFlags.Any) !== 0 ? DYN : mapType(args[1]!, ctx); + const value = (args[1]!.flags & ts.TypeFlags.Any) !== 0 ? DYN : mapType(args[1]!, ctx); if (!value || !isSupportedMapValue(value)) return null; return mapOf(key, value); } // Native WeakMap keeps reference identities in checked-dynamic storage. // The runtime rejects reference kinds without a weak lifetime contract. - if (isStdlibInterface("WeakMap") || isStdlibInterface("WeakSet")) - return ctx.dynamic ? JSVAL : DYN; + if (isStdlibInterface("WeakMap") || isStdlibInterface("WeakSet")) return DYN; // Set: Map's sibling — same provenance rule and key domain. // Anything else stays unmapped; // the `new Set` lowering names the offending element type specifically. if (isStdlibInterface("Set") || isStdlibInterface("ReadonlySet")) { const args = checker.getTypeArguments(widened as ts.TypeReference); if (args.length !== 1) return null; - const elem = - !ctx.dynamic && (args[0]!.flags & ts.TypeFlags.Any) !== 0 ? DYN : mapType(args[0]!, ctx); + const elem = (args[0]!.flags & ts.TypeFlags.Any) !== 0 ? DYN : mapType(args[0]!, ctx); if ( !elem || !isSupportedSetElem( @@ -2758,10 +2678,8 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { // Promise in a STATIC build (untyped JS entries: `new // Promise((resolve) => ...)` infers any): the settled value rides the // dyn arm exactly like Promise — every use of the awaited - // value is checked-dynamic, the same honesty `unknown` gets. Dynamic - // builds keep the jsval mapping below (an engine promise is one - // handle). - if (arg.flags & ts.TypeFlags.Any && !ctx.dynamic) return { kind: "promise", inner: DYN }; + // value is checked-dynamic, the same checks `unknown` gets. + if (arg.flags & ts.TypeFlags.Any) return { kind: "promise", inner: DYN }; const inner = mapType(arg, ctx); if (!inner) return null; return { kind: "promise", inner }; @@ -2835,9 +2753,7 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { } // PromiseSettledResult's parts: the lib's PromiseFulfilledResult / // PromiseRejectedResult interfaces map to the documented HONEST SUBSET - // record { status: string } — `value` (T) and `reason` (any) have no - // record-field representation here (void fields don't exist; a jsval - // field would absorb the record), and the manual-allSettled pattern this + // record { status: string }. The manual-allSettled pattern this // mapping exists for (pMap) discards them. Construction literals still // EVALUATE a dropped initializer for its effects — the awaited mapper — // via the object-literal lowering's drop path. Both interfaces intern @@ -3238,7 +3154,6 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { // Recursive and Symbol-keyed callable objects need their complete live // property table; dropping those members into a plain closure loses data. if ( - !ctx.dynamic && checker.getCallSignatures(widened).length > 0 && checker.getPropertiesOfType(widened).length > 0 ) @@ -3276,7 +3191,7 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { for (const p of sig.getParameters()) { const decl = checker.valueDeclarationOf(p); const rest = decl !== undefined && ts.isParameter(decl) && decl.dotDotDotToken !== undefined; - // JavaScript rest values retain the checked-dynamic/island runtime- + // arity ABI selected by lambdaSignature. Treating an inferred any[] // declaration as a typed packed-array closure would bypass its boxed // spread/error semantics and change coverage classification. @@ -3330,7 +3245,7 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { // Belt and braces for non-strict type worlds: an optional param's // ABI slot is always the undefined-armed union (strictNullChecks // already spells it that way; arm it here if the world didn't). - if (optional && pt && pt.kind !== "void" && pt.kind !== "jsval" && pt.kind !== "dyn") { + if (optional && pt && pt.kind !== "void" && pt.kind !== "dyn") { const armed = withUndefinedArm(pt, ctx.unions); if (!armed) return null; pt = armed; @@ -3357,7 +3272,7 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { isJsSourceFile(sigDecl.getSourceFile()) && (retT.flags & (ts.TypeFlags.Null | ts.TypeFlags.Undefined)) !== 0; let ret = - jsUnitReturn || (!ctx.dynamic && (retT.flags & ts.TypeFlags.Any) !== 0) + jsUnitReturn || (retT.flags & ts.TypeFlags.Any) !== 0 ? DYN : retT.flags & ts.TypeFlags.Never ? VOID @@ -3562,22 +3477,8 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { continue; } const mapped = mapType(part, ctx); - // A jsval PART absorbs the union: `GeneratedFile | undefined` (a - // package-declared arm) is one island handle — the engine's - // undefined/null ARE handle values, and any data sibling is - // representable in the engine too, so the handle is the one - // runtime representation. Exactly tsc's own collapse for `any | T` - // (which never even reaches here as a union). Sibling arms that - // already mapped don't matter — and ones that would NOT map on - // their own don't block the absorb either: a STATIC value of such - // an arm flowing in still fences per-site at the marshal - // (jsvalIn's boundary message). - if (mapped?.kind === "jsval") return JSVAL; + if (!mapped) { - // Before failing the whole union, let a LATER jsval part absorb. - for (const rest of ts.constituentTypes(widened)) { - if (mapType(rest, ctx)?.kind === "jsval") return JSVAL; - } return null; } if (mapped.kind === "void") { @@ -3618,10 +3519,8 @@ function mapTypeInner(type: ts.Type, ctx: TypeMapperCtx): IrType | null { // DYN WHOLESALE — the checked-dynamic tree's scalar kinds ARE the scalar arms (===, // typeof, switch dispatch all exact), typeof/Array.isArray/unit // narrowing on dyn already dispatches natively (dynTest + - // maybeNarrow's validated scalar extraction), and engine-valued - // arms ride the island kind (SCR_DYN_JSVAL), so no per-arm runtime - // tag is ever needed and the component fence retires at these - // sites. The domain is dynSubsumableUnionArm's: scalars, units, dyn + // maybeNarrow's validated scalar extraction), so no union tag is + // needed. The domain is dynSubsumableUnionArm's: scalars, units, dyn // itself, and records/arrays inside the dynFrom conversion domain // (those enter as dyn data — the deep-copy stance, so identity and // mutation coupling with the source value end at the slot; @@ -4044,11 +3943,7 @@ function mapBoundIndexedAccess(type: ts.Type, ctx: TypeMapperCtx): IrType | null * (`{a?: string}` and `{a: string | undefined}` are ONE shape) — those stay * unmapped inside generic bodies; their concrete uses resolve structurally * through mapRecordType. */ -/** `Awaited` where T is a STILL-GENERIC type parameter, resolved against - * the lowerer's binding: promise kinds unwrap recursively (the alias's own - * recursion), everything else is already its awaited self — including - * jsval (the engine's await handles thenables natively). Null off the - * shape (not the lib's Awaited over a bound parameter). */ + /** True for a TypeNode spelling the `const` assertion (`e as const`). */ export function isConstAssertionTypeNode(t: ts.TypeNode): boolean { return ( @@ -4242,7 +4137,7 @@ export function genResultRecord( for (const a of unions.get(t.unionId)?.arms ?? []) byKey.set(typeKey(a), a); return true; } - if (t.kind === "regex" || t.kind === "date" || t.kind === "jsval" || t.kind === "generator") { + if (t.kind === "regex" || t.kind === "date" || t.kind === "generator") { return false; // no legal union arm exists for these kinds } byKey.set(typeKey(t), t); @@ -4315,7 +4210,7 @@ export function withUnitArm( unions: UnionRegistry, ): IrType | null { const unit: IrType = { kind }; - if (t.kind === "jsval") return t; + if (t.kind === "union") { const def = unions.get(t.unionId); if (!def) return null; @@ -4379,8 +4274,8 @@ function mapHybridCallableIntersection(widened: ts.Type, ctx: TypeMapperCtx): Ir for (const p of checker.getPropertiesOfType(widened)) { if (p.flags & (ts.SymbolFlags.GetAccessor | ts.SymbolFlags.SetAccessor)) return null; const pt = mapType(checker.getTypeOfSymbol(p), ctx); - // No jsval absorb here: an island-entangled hybrid is not this shape. - if (!pt || pt.kind === "void" || pt.kind === "jsval") return null; + + if (!pt || pt.kind === "void") return null; fields.push({ name: p.name, type: pt }); declaredOrder.push(p.name); } @@ -4688,12 +4583,10 @@ function mapRecordType(widened: ts.Type, ctx: TypeMapperCtx): IrType | null { const inner = mapRecordTypeInner(widened, ctx); if (inner === null) return null; // a pending placeholder, if minted, stays unfinalized (prunes as unreachable) if (!("fields" in inner)) { - // A whole-type answer (the jsval/dyn absorbs, the header-family // canonical shape). If a back-reference minted a placeholder for // this very type meanwhile, the two answers disagree — fence rather // than leave references to a shape that is not this type's mapping. - if (shapes.recursivePending(widened) && inner.kind !== "jsval" && inner.kind !== "dyn") - return null; + if (shapes.recursivePending(widened) && inner.kind !== "dyn") return null; return inner; } if (shapes.recursivePending(widened)) { @@ -4831,11 +4724,9 @@ function mapRecordTypeInner( for (const info of indexInfos) { if (!stringKey(info.keyType) && !(info.keyType.flags & ts.TypeFlags.Number)) return null; const iv = mapType(info.valueType, ctx); - // A jsval-valued signature absorbs the shape: `Record` (a package's own JSON alias) and `Record` - // are one island object — the overflow map has no handle slot, and - // island objects hold arbitrary engine values natively. - if (iv?.kind === "jsval") return JSVAL; + if (!iv || !isSupportedIndexValue(iv)) return null; if (v !== null && !typeEquals(v, iv)) return null; v = iv; @@ -5004,7 +4895,7 @@ function mapRecordTypeInner( let readT: IrType | null = null; if (getDecl) { readT = mapType(checker.getTypeOfSymbol(p), ctx); - if (readT === null || readT.kind === "jsval") return null; + if (readT === null) return null; } let writeT: IrType | null = null; if (setDecl) { @@ -5014,13 +4905,7 @@ function mapRecordTypeInner( // A void/unit-typed write slot has no value form; DIVERGENT // getter/setter types stay out too (one property, one type — // the class-accessor stance). - if ( - writeT === null || - writeT.kind === "void" || - writeT.kind === "jsval" || - isUnitType(writeT) - ) - return null; + if (writeT === null || writeT.kind === "void" || isUnitType(writeT)) return null; if (readT !== null && typeKey(readT) !== typeKey(writeT)) return null; } if (readT !== null || getDecl) @@ -5056,13 +4941,13 @@ function mapRecordTypeInner( // the empty tuple — map it exactly as the tuple branch does (the // unit-element array; see the `[] as const` rule there). if ( - (pt === null || pt.kind === "jsval") && + pt === null && (fieldTs.flags & ts.TypeFlags.Any) !== 0 && constAssertedEmptyArrayProp(p, ctx) ) { pt = arrayOf(unitOnlyUnion(ctx.unions)); } - if (pt === null && !ctx.dynamic && (fieldTs.flags & ts.TypeFlags.Any) !== 0) pt = DYN; + if (pt === null && (fieldTs.flags & ts.TypeFlags.Any) !== 0) pt = DYN; // Unit-only FIELDS (`{ msg?: undefined }` — the discriminated-union // absent-field idiom — and `{ p: undefined }` spellings): the // unit-only union. The runtime value is the interned unit, JSON @@ -5079,12 +4964,9 @@ function mapRecordTypeInner( // v }` — a string-literal key): mapping it would collide with the // accessor dispatch, so the shape stays unmapped. if (accessorSlotProp(p.name) !== null) return null; - // Keep ambient abort handles in a native record slot under --dynamic: + // an options record with `signal?: AbortSignal` must not turn its - // unrelated static fields into island properties. Other bare jsval - // fields still absorb the record into one island object. - if (pt.kind === "jsval" && !(ctx.dynamic && isAmbientAbortHandleType(fieldTs, ctx))) - return JSVAL; + fields.push({ name: p.name, type: pt }); } // getPropertiesOfType yields DECLARATION order (interface/alias/literal diff --git a/packages/compiler/src/index.ts b/packages/compiler/src/index.ts index 28ddc1ac1..7ad4d36f0 100644 --- a/packages/compiler/src/index.ts +++ b/packages/compiler/src/index.ts @@ -273,9 +273,9 @@ export { wyhash64, } from "./library/wyhash.js"; export { - ISLAND_SURFACE, + STDLIB_SURFACE, STATIC_MATH_PROPS, - type IslandFnEntry, + type StdlibFnEntry, } from "./frontend/lowering/surfaces.js"; export { ambientDtsPath, @@ -430,13 +430,12 @@ void assertCompileResultCompatibility; function executableNativeFeatures( mod: IrModule, backend: "llvm", - dynamic: boolean, optimization: NativeOptimization, ): EarlyExecutableNativeFeatures { return { backend, ...optimizationField(optimization), - ...executableLinkFeatures(mod, dynamic), + ...executableLinkFeatures(mod), }; } @@ -503,13 +502,11 @@ async function compileExecutableNative( programPublicSymbols: effectiveProgramSplit.publicSymbols, }), sanitize, - dynamic: features.dynamic, regex: features.regex, copying: features.copying, textDecoderLegacy: features.textDecoderLegacy, fileHandle: features.fileHandle, fetch: features.fetch, - netIsland: features.netIsland, zlib: features.zlib, assert: features.assert, inspect: features.inspect, @@ -619,8 +616,7 @@ async function removeNativeProgramObject( } function usesPrecompiledRuntimePack(opts: CompileRequestOptions, backend: "llvm"): boolean { - if (backend !== "llvm" || opts.sanitize === true || process.env["SCRIPTC_FETCH_CURL"] === "1") - return false; + if (backend !== "llvm" || opts.sanitize === true) return false; return nativeCodegenTarget() !== null; } @@ -732,12 +728,7 @@ async function prepareExecutableInput( nativeLinkInfo: await createNativeLinkInfo({ programObject: opts.outPath, target, - features: executableNativeFeatures( - mod, - "llvm", - opts.dynamic ?? false, - opts.optimization ?? "release", - ), + features: executableNativeFeatures(mod, "llvm", opts.optimization ?? "release"), ffi, optimization: opts.optimization ?? "release", }), @@ -777,12 +768,7 @@ async function prepareExecutableInput( await writeTextParts(irPath, serializeModuleParts(mod)); } - const nativeFeatures = executableNativeFeatures( - mod, - backend, - opts.dynamic ?? false, - opts.optimization ?? "release", - ); + const nativeFeatures = executableNativeFeatures(mod, backend, opts.optimization ?? "release"); timing("link-features"); const programSplit = !useRuntimePack && @@ -912,7 +898,7 @@ async function compileTracked( }; } } - if (outputKind === "exe" && opts.sanitize !== true && process.env["SCRIPTC_FETCH_CURL"] !== "1") { + if (outputKind === "exe" && opts.sanitize !== true) { const refusal = nativeCodegenTargetRefusal(); if (refusal !== null) return { @@ -1026,7 +1012,6 @@ async function compileTracked( outPath: opts.outPath, emitIr: opts.emitIr ?? false, sanitize: opts.sanitize ?? false, - dynamic: opts.dynamic ?? false, backend: "llvm", ...optimizationField(opts.optimization), ...(opts.strip ? { strip: true as const } : {}), diff --git a/packages/compiler/src/ir/api.ts b/packages/compiler/src/ir/api.ts index cc1e9ba28..f61bb1054 100644 --- a/packages/compiler/src/ir/api.ts +++ b/packages/compiler/src/ir/api.ts @@ -12,9 +12,7 @@ export { moduleUsesProcessEvents, moduleUsesEmitter, moduleUsesStream, - moduleEmbedsBuiltin, NPM_COMPRESS_MIN, - moduleEmbedsCompressedNpm, moduleUsesZlib, moduleUsesDc, moduleUsesAssert, diff --git a/packages/compiler/src/ir/builtin-effects.ts b/packages/compiler/src/ir/builtin-effects.ts index 076d37221..a0b39c80a 100644 --- a/packages/compiler/src/ir/builtin-effects.ts +++ b/packages/compiler/src/ir/builtin-effects.ts @@ -346,9 +346,7 @@ export const MAY_THROW_LIB_FNS: ReadonlySet = new Set([ "https.requestFn", "https.requestFnCb", "rl.question", - "island.eval", - "island.import", - "island.castFail", + "json.parse", "json.parseReviver", "json.stringifyReplacer", @@ -599,9 +597,9 @@ export const MAY_THROW_LIB_FNS: ReadonlySet = new Set([ "assert.ifErrorStr", "assert.ifErrorBool", "assert.ifErrorDyn", - // util.inspect of an island `any` composite: the runtime tag is all + // there is, so the honest answer is a catchable TypeError. - "insp.jsval", + // The wider sync fs slice: same catchable errno throws as the rest. "fs.unlinkSync", "fs.chmodSync", diff --git a/packages/compiler/src/ir/builtin-signatures.ts b/packages/compiler/src/ir/builtin-signatures.ts index 245157851..00da9bb92 100644 --- a/packages/compiler/src/ir/builtin-signatures.ts +++ b/packages/compiler/src/ir/builtin-signatures.ts @@ -21,7 +21,6 @@ import { HTTPCLIENTREQ_T, HTTPREQ_T, HTTPRES_T, - JSVAL, NETSERVER_T, NETSOCKET_T, PROCSTREAM_T, @@ -88,35 +87,6 @@ export const LIB_FN_SIGS = defineLibFnSignatures({ "fetch.streamFrom": { argTypes: [null], result: DYN }, // The chunk/result record depends on ReadableStream; validated by validate.ts. "fetch.readerRead": { argTypes: [DYN], result: VOID }, - "island.eval": { argTypes: [STRING], result: STRING }, - /** Load an embedded npm package's runtime entry in the island (cached by - * the engine's module registry) and take one export: args are the entry - * KEY (an embedded module's key, from IrModule.embedded) and the export - * name — "default" for default imports, "*" for the namespace object. - * --dynamic only, like island.eval; result is an owned jsval. May throw - * (a package's top-level code can), bridged catchably. */ - "island.import": { argTypes: [STRING, STRING, STRING], result: JSVAL }, - /** Dynamic `import(spec)`: load a module through the island's module - * system — an embedded module's key or a builtin shim's "node:x" key — - * and answer an ENGINE promise of its namespace object (always a - * promise, never a throw: load and evaluation failures REJECT it, - * Node's shape). The frontend wraps the result in jsBridgePromise, so - * awaiting parks the fiber and a rejection crosses catchably. --dynamic - * only; result is an owned jsval holding the engine promise. */ - "island.importDyn": { argTypes: [STRING], result: JSVAL }, - // Result is the cast's mapped PROMISE target (program-dependent) — - // checked in the libCall case, like error.new. - /** A checked cast the boundary can never satisfy, DEFERRED to runtime: - * `islandValue as Promise` — the value is an ENGINE promise and T - * has no validated exit (Node-typed async APIs put class-shaped - * interfaces there), so instead of refusing the build the cast throws a - * catchable TypeError AT THE CAST naming the target type (args: the - * island value — evaluated, borrowed — and the type name). The result - * type is the cast's mapped target (a typed dummy; the exception is - * pending). Documented divergence: JS `as` never checks — like the dyn - * boundary, a conversion that cannot happen throws instead of lying. - * --dynamic only. */ - "island.castFail": { argTypes: [JSVAL, STRING], result: VOID }, "json.parse": { argTypes: [STRING], result: DYN }, "json.parseReviver": { argTypes: [STRING, DYN], result: DYN }, "json.stringifyReplacer": { argTypes: [DYN, DYN, STRING], result: DYN }, @@ -498,11 +468,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({ * epsilon boundary). Borrow nothing; never throw. */ "math.abs": { argTypes: [F64], result: F64 }, "math.round": { argTypes: [F64], result: F64 }, - /** Math.trunc / Math.ceil — C trunc()/ceil() ARE the JS operations - * (NaN/±0/±Infinity pass through bit-exactly; ceil(-0.5) is -0 in IEEE - * round-toward-+Infinity exactly as ECMA says). Static like floor — - * they are ask-4's wholeness-discharge operators, so the library - * inference needs them compiled, not island-served. Never throw. */ + "math.trunc": { argTypes: [F64], result: F64 }, "math.ceil": { argTypes: [F64], result: F64 }, "math.sin": { argTypes: [F64], result: F64 }, @@ -2672,12 +2638,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({ "dyn.reflectDefine": { argTypes: [DYN, DYN, DYN], result: BOOL }, "dyn.abstractEq": { argTypes: [DYN, DYN], result: BOOL }, "dyn.assignAll": { argTypes: [DYN, DYN], result: DYN }, - /** `Object.create(null)` (scr_json.c): a fresh NULL-PROTOTYPE dyn - * dictionary. The checked-dynamic tree's OBJ dispatch is already own-member-only — - * Node's null-proto answer — so the flag's whole job is the observations - * that SEE the prototype: inspect's "[Object: null prototype]" prefix - * and deepStrictEqual's prototype gate. Never throws. Static builds - * only; --dynamic routes Object.create through the engine instead. */ + "dyn.objCreateNullProto": { argTypes: [], result: DYN }, "dyn.arrayPrototype": { argTypes: [], result: DYN }, "dyn.arrayConstructor": { argTypes: [], result: DYN }, @@ -3089,19 +3050,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({ "assert.bytesDeepEq": { argTypes: [null, null, BOOL], result: BOOL }, // util.inspect: the error receiver is program-dependent (a builtin or // user error class — the error.toString precedent, null slot). - /** util.inspect (scr_inspect.c — its own link switch, moduleUsesInspect): - * the runtime half of the static rendering. Scalar formatters return +1 - * strings (insp.f64: JS ToString except -0; insp.str: the quoting - * ladder + line splitting; insp.regex: /source/flags; insp.buffer: - * ). insp.error renders the STACKLESS [Name: message] - * form with the code slot as its one property. insp.dyn walks the - * checked-dynamic tree entirely in the runtime (its shape lives in the - * value); insp.dynS is format's %s twin (dyn strings pass verbatim). - * insp.jsval ([value, recurse, depth], --dynamic only) renders the - * island scalars and THROWS a catchable TypeError on composites (the - * may-throw seed set). begin/entry/moreItems/end drive the frame - * engine from the compiler-synthesized per-type traversal helpers - * (%util.insp.N — the deepStrictEqual precedent). */ + "insp.f64": { argTypes: [F64], result: STRING }, /** util.format %j over a checked-dynamic argument: the runtime dyn * walk (JS-exact stringify; root undefined/function prints @@ -3113,7 +3062,6 @@ export const LIB_FN_SIGS = defineLibFnSignatures({ "insp.error": { argTypes: [null, F64, F64], result: STRING }, "insp.dyn": { argTypes: [DYN, F64, F64], result: STRING }, "insp.dynS": { argTypes: [DYN, F64], result: STRING }, - "insp.jsval": { argTypes: [JSVAL, F64, F64], result: STRING }, "insp.begin": { argTypes: [F64], result: VOID }, "insp.entry": { argTypes: [STRING, BOOL], result: VOID }, // Circular references: the receiver slot is program-dependent (any diff --git a/packages/compiler/src/ir/constant-globals.test.ts b/packages/compiler/src/ir/constant-globals.test.ts index 2f5627885..18ee0f17b 100644 --- a/packages/compiler/src/ir/constant-globals.test.ts +++ b/packages/compiler/src/ir/constant-globals.test.ts @@ -30,7 +30,7 @@ const global = (id: string, extra: object = {}) => ({ test("immutable globals stored once with a literal read as that literal", () => { const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: "constant-globals.ts", entry: "%init", functions: [ diff --git a/packages/compiler/src/ir/constant-tables.test.ts b/packages/compiler/src/ir/constant-tables.test.ts index 454880274..0f9673791 100644 --- a/packages/compiler/src/ir/constant-tables.test.ts +++ b/packages/compiler/src/ir/constant-tables.test.ts @@ -20,7 +20,7 @@ const expr = (value: IrExpr): IrStmt => ({ kind: "exprStmt", expr: value, loc }) function fixture(): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", globals: [{ id, name: "table", type, mutable: false }], diff --git a/packages/compiler/src/ir/final-fields.test.ts b/packages/compiler/src/ir/final-fields.test.ts index 385c3fbde..7f9fd06ca 100644 --- a/packages/compiler/src/ir/final-fields.test.ts +++ b/packages/compiler/src/ir/final-fields.test.ts @@ -39,7 +39,7 @@ const cls = (name: string, fields: string[], base?: string): IrClassDef => ({ fields: fields.map((field) => ({ name: field, type: STRING })), }); const mod = (classes: IrClassDef[], functions: IrFunction[]): IrModule => ({ - irVersion: 15, + irVersion: 16, sourceFile: "final-fields.ts", entry: "%main", classes, diff --git a/packages/compiler/src/ir/initializer-bindings.test.ts b/packages/compiler/src/ir/initializer-bindings.test.ts index d810236b4..e20825f5b 100644 --- a/packages/compiler/src/ir/initializer-bindings.test.ts +++ b/packages/compiler/src/ir/initializer-bindings.test.ts @@ -36,7 +36,7 @@ function fixture(): IrModule { ], }; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: fn.name, functions: [fn], diff --git a/packages/compiler/src/ir/int32-slots.test.ts b/packages/compiler/src/ir/int32-slots.test.ts index 9ee9ff4de..494da1a1f 100644 --- a/packages/compiler/src/ir/int32-slots.test.ts +++ b/packages/compiler/src/ir/int32-slots.test.ts @@ -88,7 +88,7 @@ const newOf = (className: string, args: IrExpr[]): IrExpr => ({ type: obj(className), }); const mod = (classes: IrClassDef[], functions: IrFunction[]): IrModule => ({ - irVersion: 15, + irVersion: 16, sourceFile: "test.ts", entry: "%main", classes, diff --git a/packages/compiler/src/ir/int32-slots.ts b/packages/compiler/src/ir/int32-slots.ts index ffd6ae468..b25f3dc14 100644 --- a/packages/compiler/src/ir/int32-slots.ts +++ b/packages/compiler/src/ir/int32-slots.ts @@ -30,7 +30,7 @@ import { everyExprChild, everyStmtChild, everyTypeChild } from "./traverse.js"; * reach checked-dynamic code get live views whose runtime stores commit * back into the fields; a field of such a class stays a double when any * dynamic store in the program can name it (literal-keyed stores name one - * property, every other store any property, islands everything). Classes + * property, every other store any property). Classes * with runtime-provided ancestors, generic families, fields under * `++`/`--`, and parameters of functions that escape as values, are * constructed through class values, or are virtual-dispatch targets are @@ -197,7 +197,7 @@ export class Int32Slots { } } -const DYN_KINDS = new Set(["dyn", "jsval", "caught"]); +const DYN_KINDS = new Set(["dyn", "caught"]); /** Expressions that hand their operands (or produce results) to runtime * helpers, reflection, promises or other code the IR does not show. */ const BOUNDARY_KINDS = new Set([ @@ -205,14 +205,9 @@ const BOUNDARY_KINDS = new Set([ "intrinsic", "jsonStringify", "ffiCall", - "jsOp", - "jsExit", - "jsBridgePromise", - "jsMarshal", "dynCall", "dynInvoke", "dynFrom", - "dynFromJsval", "dynCheck", "dynObjLit", "dynArrLit", @@ -270,13 +265,6 @@ const DYN_READ_ONLY = new Set([ "text.decodeStream", "worker.new", ]); -const ISLAND_KINDS = new Set([ - "jsOp", - "jsMarshal", - "jsExit", - "jsBridgePromise", - "dynFromJsval", -]); /** IR metadata keys whose strings never name a function. */ const NON_REFERENCE_KEYS = new Set([ "loc", @@ -305,8 +293,8 @@ function walkFunction( } /** The class field names that runtime stores through live dynamic views - * (typed-ref capsules) can write: every name when `all` (islands, jsval - * values, or a dynamic store whose key is not a literal), otherwise the + * (typed-ref capsules) can write: every name when `all` (a dynamic store + * whose key is not a literal), otherwise the * literal keys of `dyn.keySet`/`dyn.keyDelete`. A view commits a store back * into the instance's native field slots, which the IR does not show. */ export function dynamicFieldStores( @@ -354,8 +342,7 @@ export function dynamicFieldStores( walkFunction(fn, { expr: (e) => { if (dynWritesAll) return; - if (ISLAND_KINDS.has(e.kind) || e.type.kind === "jsval") dynWritesAll = true; - else if ( + if ( e.kind === "libCall" && !DYN_READ_ONLY.has(e.fn) && e.args.some((a) => dynish(a.type)) diff --git a/packages/compiler/src/ir/ir.test.ts b/packages/compiler/src/ir/ir.test.ts index 428784f17..60ecc9ad0 100644 --- a/packages/compiler/src/ir/ir.test.ts +++ b/packages/compiler/src/ir/ir.test.ts @@ -9,7 +9,6 @@ import { canConvertToDyn, canDynCheckTo, type IrBytesElem, - isIslandCallbackParamType, isJsonSafeType, isJsonStringifySafeType, isJsonStringifyDynamicType, @@ -126,12 +125,10 @@ describe("checked records with opaque payloads", () => { expect(isJsonSafeType(type, record, union)).toBe(false); expect(isJsonStringifySafeType(type, record, union)).toBe(false); expect(isJsonStringifyDynamicType(type, record, union)).toBe(true); - expect(isIslandCallbackParamType(type, record, union)).toBe(false); }, ); test("opaque arrays and optional records retain their actual payload representation", () => { - expect(isIslandCallbackParamType(DYN, record, union)).toBe(true); expect(canDynCheckTo(arrayOf(DYN), record, union)).toBe(true); expect(canDynCheckTo({ kind: "union", unionId: "optional" }, record, union)).toBe(true); }); @@ -176,7 +173,6 @@ describe("native typed-array boundaries", () => { expect(canConvertToDyn(shape, record, union)).toBe(true); expect(canDynCheckTo(shape, record, union)).toBe(true); expect(isJsonSafeType(shape, record, union)).toBe(false); - expect(isIslandCallbackParamType(shape, record, union)).toBe(false); }, ); }); @@ -196,7 +192,6 @@ describe("native bigint checked storage", () => { expect(canDynCheckTo(type, record, union)).toBe(true); expect(isJsonSafeType(type, record, union)).toBe(false); expect(isJsonStringifySafeType(type, record, union)).toBe(false); - expect(isIslandCallbackParamType(type, record, union)).toBe(false); } }); }); @@ -218,7 +213,6 @@ describe("native process stream checked storage", () => { expect(canConvertToDyn(type, record, union)).toBe(true); expect(canDynCheckTo(type, record, union)).toBe(true); expect(isJsonSafeType(type, record, union)).toBe(false); - expect(isIslandCallbackParamType(type, record, union)).toBe(false); } expect(canConvertToDyn(arrayOf(stream), record, union)).toBe(false); expect(canDynCheckTo(arrayOf(stream), record, union)).toBe(false); @@ -274,7 +268,7 @@ describe("checked conversion graph traversal", () => { id: "parent", fields: [ { name: "child", type: { kind: "record", shapeId: "child" } }, - { name: "unsupported", type: { kind: "jsval" } }, + { name: "unsupported", type: { kind: "caught" } }, ], }, ], diff --git a/packages/compiler/src/ir/ir.ts b/packages/compiler/src/ir/ir.ts index 0338e26d7..b23fb63b7 100644 --- a/packages/compiler/src/ir/ir.ts +++ b/packages/compiler/src/ir/ir.ts @@ -257,8 +257,7 @@ export type IrType = /** Heap, refcounted closure. `rest` marks a variadic function value. * `restAbi: "typed"` spells one trailing typed array in `params`; static * call sites pack their surplus arguments into it before `callValue`. - * `restAbi: "jsval"` similarly spells one trailing engine array for an - * island host callback. An absent `restAbi` is the legacy checked-dynamic + * An absent `restAbi` is the checked-dynamic * JS form: `params` stays the declared non-rest list and the lifted * function has one hidden trailing ScrDyn array filled by its boxed call * thunk. `argumentsAll` keeps that hidden ABI but fills it with every @@ -270,7 +269,7 @@ export type IrType = params: IrType[]; ret: IrType; rest?: true; - restAbi?: "jsval" | "typed"; + restAbi?: "typed"; argumentsAll?: true; } | { kind: "object"; className: string } // heap, refcounted class instance @@ -286,7 +285,7 @@ export type IrType = * completion against C's one signature sound. Allowed in locals, * globals, params, returns, class/record fields, capture boxes, array * elements, Map VALUES, and union arms; fenced out of Map keys, Set - * elements, JSON, jsval conversion, and ToString. Unknown slots retain + * elements, JSON, and ToString. Unknown slots retain * class identity and allow an exact typed constructor round trip. */ | { kind: "classval"; className: string } /** An ECMAScript module namespace object for one statically-known module. @@ -320,14 +319,6 @@ export type IrType = * ' first" hint — or, in JavaScript sources, met with per-site * checked lowerings (SEMANTICS.md 115-117). */ | { kind: "dyn" } - /** An island value handle — the type of `any` under --dynamic. Runtime - * representation is a refcounted cell (ScrJsval) owning one embedded- - * engine value. It can live in locals, globals, parameters, returns, - * arrays, class fields, and ambient AbortSignal/AbortController record - * fields. Operations on jsval compile to engine calls (jsOp) with - * JS-exact semantics; exits back to static types are validated (jsExit). - * This kind exists only with the dynamic option. */ - | { kind: "jsval" } /** A catch binding or its closure capture (never parameters, returns, * fields, arms or elements). The one global form is a module's recorded * evaluation error, written only from that module's catch binding and @@ -427,7 +418,6 @@ const POINTER_KIND_LIST = [ "record", "union", "dyn", - "jsval", "caught", "promise", "generator", @@ -480,7 +470,6 @@ export const RUNTIME_RC_STEMS: Record = { record: "", union: "scr_union", dyn: "scr_dyn", - jsval: "scr_jsval", caught: "scr_caught", promise: "scr_promise", generator: "scr_gen", @@ -582,7 +571,6 @@ export const CHILDWRITER_T: IrType = { kind: "childWriter" }; export const PROCSTREAM_T: IrType = { kind: "procStream" }; export const VOID: IrType = { kind: "void" }; export const DYN: IrType = { kind: "dyn" }; -export const JSVAL: IrType = { kind: "jsval" }; export const CAUGHT: IrType = { kind: "caught" }; export const UNDEFINED_T: IrType = { kind: "undefinedT" }; export const NULL_T: IrType = { kind: "nullT" }; @@ -618,7 +606,6 @@ export function isSupportedArrayElem(t: IrType): boolean { case "union": case "func": case "promise": - case "jsval": case "regex": case "child": case "netServer": @@ -703,7 +690,7 @@ export function isSupportedSetElem(t: IrType, unionArms?: IrType[]): boolean { } /** The Map VALUE fence: scalars, supported native references and checked - * values. Functions require checked-value boxing; jsval has no native slot. + * values. Functions require checked-value boxing. * Record/object/union values can point back at the map holding them, which * is exactly why ref-valued maps are cycle-capable (see the backend's * cycle analysis and docs/memory.md). Shared frontend/validator. */ @@ -807,7 +794,6 @@ export function typeKey(t: IrType): string { case "searchParams": case "symbol": case "dyn": - case "jsval": case "caught": case "void": return t.kind; @@ -824,7 +810,7 @@ export function typeKey(t: IrType): string { case "set": return `set<${typeKey(t.elem)}>`; case "func": - return `func(${[...t.params.map(typeKey), ...(t.rest ? [t.restAbi === "jsval" ? "...jsval[]" : t.restAbi === "typed" ? "...typed[]" : t.argumentsAll ? "arguments[]" : "...dyn[]"] : [])].join(",")})=>${typeKey(t.ret)}`; + return `func(${[...t.params.map(typeKey), ...(t.rest ? [t.restAbi === "typed" ? "...typed[]" : t.argumentsAll ? "arguments[]" : "...dyn[]"] : [])].join(",")})=>${typeKey(t.ret)}`; case "object": return `object:${t.className}`; case "classval": @@ -908,7 +894,7 @@ export function isRefCounted(t: IrType): boolean { export interface IrModule { /** Bumped on any breaking IR change; serialize.ts refuses mismatches. */ - irVersion: 15; + irVersion: 16; sourceFile: string; functions: IrFunction[]; /** Class shapes. Constructors and methods are ordinary module functions @@ -924,31 +910,6 @@ export interface IrModule { * per-file `%init.` functions; ids live in a distinct "%g." namespace so * they can never collide with function-local ids. */ globals?: IrGlobal[]; - /** The embedded npm runtime graph (--dynamic builds with npm imports): - * every reached module's SOURCE, keyed by resolved path, plus the - * (importer, specifier) → target edges the island's module loader and - * require shim resolve against. Emitted as static strings — binaries - * never read node_modules at runtime. Edge targets are module keys or - * "node:*" builtins (island-shimmed). */ - embedded?: { - /** `esm` (CommonJS modules only) is the synthesized ESM facade the - * island loader evaluates when an ES module imports the CJS file: - * default plus the named exports LEXED from the source at build time - * (cjs-lexer.ts — the compiler's port of Node's vendored CJS lexer). */ - modules: { - key: string; - source: string; - format: "esm" | "cjs" | "json"; - esm?: string; - /** Parsed/bound embedded source reaches the engine's global fetch. */ - usesFetch?: true; - }[]; - /** `kind` picks Node's "exports" condition set per CALL FORM: one - * (from, specifier) can name a dual package's ESM entry behind an - * "import" edge AND its CJS entry behind a "require" edge; "any" - * serves both lookups (relative files, builtins). */ - edges: { from: string; specifier: string; to: string; kind: "any" | "import" | "require" }[]; - }; /** Record shapes, in first-seen (`r0`, `r1`, ...) order. Fields are in * CANONICAL order (sorted by name) — the shape's identity; a `recordLit`'s * fields stay in source order (evaluation order) independently. The @@ -1910,11 +1871,11 @@ export const MAY_THROW_ARR_METHODS: ReadonlySet = new Set( /** Element types whose comparator sort can run in the runtime over raw * slots: numbers, and reference-counted values passed to the comparator by * pointer. Unions with an undefined arm order undefined last without a - * comparator call, and checked or island values have their own ABI; those + * comparator call, and checked values have their own ABI; those * keep the IR sort helper. */ export function isSortValuesElement(elem: IrType, unionArms?: readonly IrType[]): boolean { if (elem.kind === "f64") return true; - if (elem.kind === "dyn" || elem.kind === "jsval" || elem.kind === "caught") return false; + if (elem.kind === "dyn" || elem.kind === "caught") return false; if (elem.kind === "union" && (!unionArms || unionArms.some((arm) => arm.kind === "undefinedT"))) return false; return isRefCounted(elem); @@ -2330,8 +2291,7 @@ export type IrExpr = * dyn asks its runtime kind. The other operand form is a UNION — the ARM * value's ToBoolean via a per-union interned helper (unit arms false; * f64/string/bool arms per-value; ref arms — arrays, records, objects, - * functions, maps, sets, promises, ... — always true; jsval arms ask the - * engine). Result is bool. */ + * functions, maps, sets, promises, ... — always true). Result is bool. */ | { kind: "toBool"; operand: IrExpr; type: IrType; loc: SrcLoc } /** Distinct from `bin`: short-circuits, and has JS value semantics — the * result is the deciding operand itself (`a && b` ≡ `toBool(a) ? b : a`), @@ -2908,18 +2868,6 @@ export type IrExpr = * as stream chunks and abort reasons; ordinary JSON-shaped values retain * the documented deep-copy boundary. */ | { kind: "dynFrom"; value: IrExpr; fnName?: string; liveRef?: true; type: IrType; loc: SrcLoc } - /** Island value → dyn conversion (`type` is always dyn; the operand - * is always jsval): the jsval→dyn crossing — an 'any'-typed engine - * value flowing into an 'unknown'/'object'/JS-residue slot wraps BY - * REFERENCE as the checked-dynamic tree's SCR_DYN_JSVAL kind (scr_dyn_from_jsval). - * Engine scalars (number/string/boolean/null/undefined) normalize to - * the native dyn kinds at wrap time, so wrapped nodes only ever hold - * engine objects/arrays/functions; typeof/truthiness/String()/=== on - * the wrapped node route to the engine, un-armed dyn walks fence - * loudly, and scr_jsval_from_dyn unwraps the SAME engine value back - * (identity round trip). The operand is borrowed; the result is owned - * (+1). Never throws. */ - | { kind: "dynFromJsval"; value: IrExpr; type: IrType; loc: SrcLoc } /** CALLING a dyn value — `fn(a, b)` where fn is checked-dynamic (an * implicit-any JS binding, a dyn record member, a dynKeyGet result). * Arguments are ALREADY dyn-typed (typed values box through dynFrom at @@ -3111,8 +3059,7 @@ export type IrExpr = * 'FIRSTPROP' of 'SPELLING' …" when `firstProp` is set (V8 names the * pattern's first property) — and yields the value unchanged otherwise. * `spelling` is the RHS's compile-time source spelling. Value and type - * are dyn (the dyn helper) or jsval (the island's prelude guard — - * engine-thrown, catchable like every boundary throw). */ + * are dyn; the helper throws a catchable error. */ | { kind: "dynDestrCheck"; value: IrExpr; @@ -3125,10 +3072,7 @@ export type IrExpr = * it. Over a dyn value: arrays step by index, strings by code point, * Buffers by byte; everything else throws V8's exact " is not * iterable (cannot read property Symbol(Symbol.iterator))" TypeError. - * Over an island (jsval) value the engine runs the REAL iterator - * protocol (user iterables included, IteratorClose per spec) behind the - * same V8 message for non-iterables. The result is a FRESH array (dyn - * or engine, matching the operand) of exactly `count` elements + * The result is a fresh dyn array of exactly `count` elements * (undefined-padded past the end) — the empty pattern passes count 0 * and uses only the validation. Value is borrowed; the result is owned * (+1). */ @@ -3411,200 +3355,7 @@ export type IrExpr = * corrupting memory). `preserveRefs` refuses structural copies of native * references, including references nested in newly materialized arrays or * tuples; collection seeds use it to preserve key identity. */ - | { kind: "dynCheck"; value: IrExpr; preserveRefs?: true; type: IrType; loc: SrcLoc } - /** Static → island marshal (--dynamic builds only). `value`'s type is - * f64/string/bool (marshaled by value) or a JSON-safe composite - * (record/array/union — marshaled as a DEEP COPY through the emitted - * type-directed JSON serializer and the engine's JSON parser; the - * aliasing divergence is documented in SEMANTICS.md). Result is an - * owned (+1) jsval; the operand is borrowed. Never throws. */ - | { kind: "jsMarshal"; value: IrExpr; type: IrType; loc: SrcLoc } - /** An operation on island values (--dynamic builds only), executed by - * the embedded engine with JS-exact semantics (coercions come from - * pinned prelude closures, not C reimplementations). `args` are - * jsval-typed and borrowed. Result `type` per op: arithmetic - * (add/sub/mul/div/mod/pow), unary neg/plus, getProp/getIdx, - * callMethod/callFn/callFnThis/globalGet → jsval (+1); comparisons - * (lt/le/gt/ge/eq/neq), truthy, not → bool; typeof, toStr → string (+1); - * setProp/setIdx → void. `name` carries the property/method identifier - * for getProp/setProp/callMethod/globalGet, absent otherwise. MAY THROW - * (engine - * exceptions bridge into the exception cell, catchably) — backends' - * may-throw analyses must seed on every jsOp like a `throw`. */ - | { kind: "jsOp"; op: IrJsOp; name?: string; args: IrExpr[]; type: IrType; loc: SrcLoc } - /** Island → static validated exit (--dynamic builds only): `value` is - * jsval-typed, `type` is the static target. STRICT for primitives (a - * non-number refuses to exit as number — no coercion); composite - * targets round-trip through the engine's JSON.stringify and the - * existing dynCheck walker for the target (width-tolerant records, - * path-annotated failures — identical semantics to `dyn as T`). MAY - * THROW a catchable TypeError-shaped string. The operand is borrowed; - * the result is owned (+1) for refcounted targets. */ - | { kind: "jsExit"; value: IrExpr; type: IrType; loc: SrcLoc } - /** Island → static PROMISE bridge (--dynamic builds only): `value` is a - * jsval whose declared type is Promise (a package call's promise — - * it lives in the engine); the result is a fresh pending static promise - * the engine promise settles. `type` is promise-of-jsval (the settled - * engine value crosses as a retained handle; typed uses exit like any - * jsval) or promise-of-void (T mapped to void — nothing to carry). - * Fulfillment wakes parked awaiters through the ready queue; rejection - * crosses like a bridged exception (engine Errors become real static - * Errors) and re-throws at the await or enters the unhandled ledger. - * Bridging one engine promise twice makes two independent static - * observers of the same settlement — semantically equivalent, slightly - * redundant (SEMANTICS.md). Operand borrowed; result +1. MAY THROW - * only on an engine-level surprise minting the subscription — backends - * seed may-throw and emit the pending check like other island ops. */ - | { kind: "jsBridgePromise"; value: IrExpr; type: IrType; loc: SrcLoc }; - -/** The island operation set. Grouped by result type — see the jsOp node - * doc. A closed union: every member has a lowering rule in the frontend, - * a validation rule, and a scr_jsval_* implementation in scr_island.c. */ -export type IrJsOp = - | "add" - | "sub" - | "mul" - | "div" - | "mod" - | "pow" - | "neg" - | "plus" - | "lt" - | "le" - | "gt" - | "ge" - | "eq" - | "neq" - /** `v instanceof C` where BOTH sides are island values (a package- - * exported class as the RHS): the spec's InstanceofOperator in the - * engine, Symbol.hasInstance included; a non-object RHS throws the - * engine's own TypeError, bridged catchably. */ - | "instanceOf" - | "truthy" - | "not" - | "typeof" - | "toStr" - | "getProp" - | "setProp" - | "getIdx" - | "setIdx" - | "callMethod" - | "callFn" - /** Calls an already-resolved island function with an explicit receiver. - * Args are (callee, receiver, ...arguments); this preserves computed - * method evaluation order without reading a getter twice. */ - | "callFnThis" - /** Spread application on an island callee — `f(...pre, ...s)`, the - * rest-forwarding idiom (`(...args) => g(...args)` under --dynamic). - * Args are exactly (callee, pre, spread): `pre` is the engine array of - * leading fixed arguments (jsOp arrLit), `spread` the spread source; - * `name` carries the spread expression's source spelling (V8's nullish - * spread-call TypeError spells it). The prelude helper uses REAL spread - * syntax, so iterator protocols are the engine's own, with guards - * front-running V8's exact spread-call TypeError texts. May throw. */ - | "callSpread" - /** `new X(...)` where X is jsval-typed (package-declared classes): - * JS_CallConstructor — args are the callee then the constructor - * arguments, mirroring callFn. */ - | "construct" - /** A member of the engine's global object by name (Math, parseFloat, ...) - * — the receiver/callee for the island-backed ambient surface. Zero args; - * `name` carries the global's identifier. May-throw for uniformity with - * the other engine entries (the emitter's pending check runs after it). */ - | "globalGet" - /** Island-native literals: an object literal / array literal whose - * contextual type is `any` builds directly in the engine — objLit args - * are alternating key/value jsvals (keys are marshaled strings), arrLit - * args are the elements. Never throw. */ - | "objLit" - | "arrLit" - /** The engine-native TemplateStringsArray for an ISLAND TAG call: args - * are 2n marshaled strings — n cooked then n raw — building a fresh - * engine array whose `.raw` carries the raw spellings (tags dispatch on - * it). Never throws. */ - | "tplStrings" - /** Spread completion for an island-native object literal: copies - * args[1]'s own enumerable properties onto args[0] (the spec's - * CopyDataProperties — the engine's own Object.assign; null/undefined - * sources spread nothing) and answers args[0] for chaining. May throw - * (getters run). */ - | "objSpread" - /** Accessor completion for an island-native object literal: defines a - * GETTER property on args[0] (the object) — args are (obj, key string - * marshal, getter function handle) — and answers the same object (the - * chainable spelling: `defineGetter(objLit(...), k, f)`). The - * self-referential doc-printer root-indent shape. Never throws. */ - | "defineGetter" - /** The engine's own undefined / null as island values (zero args, never - * throw): the unit arms of a union marshaling IN (`string | undefined` - * into an 'any' slot — the undefined arm IS the engine undefined), and - * conceptually the unit path of `x?.y` on 'any' (the emitter inlines - * that one). */ - | "undefLit" - | "nullLit" - /** GetIterator over an island value — the for-of head over 'any' (the - * engine's own protocol lookup; V8's not-iterable TypeError on refusal). - * The loop drives next() through callMethod and reads value/done with - * getProp/truthy. */ - | "iterNew" - /** `o.name?.(...)` — the optional METHOD call on an island receiver: a - * nullish member answers the engine's undefined, anything else calls - * with `this = o` (JS-exact; non-callables throw in the engine). */ - | "optCallMethod"; - -/** Result-type rule for each island op (the validator enforces it; the - * frontend constructs nodes with exactly these). */ -export function jsOpResultKind(op: IrJsOp): "jsval" | "bool" | "string" | "void" { - switch (op) { - case "add": - case "sub": - case "mul": - case "div": - case "mod": - case "pow": - case "neg": - case "plus": - case "getProp": - case "getIdx": - case "callMethod": - case "callFn": - case "callFnThis": - case "callSpread": - case "construct": - case "globalGet": - case "objLit": - case "arrLit": - case "defineGetter": - case "tplStrings": - case "objSpread": - case "undefLit": - case "nullLit": - case "iterNew": - case "optCallMethod": - return "jsval"; - case "lt": - case "le": - case "gt": - case "ge": - case "eq": - case "neq": - case "instanceOf": - case "truthy": - case "not": - return "bool"; - case "typeof": - case "toStr": - return "string"; - case "setProp": - case "setIdx": - return "void"; - default: { - const _exhaustive: never = op; - void _exhaustive; - throw new InternalCompilerError("unreachable"); - } - } -} + | { kind: "dynCheck"; value: IrExpr; preserveRefs?: true; type: IrType; loc: SrcLoc }; /** True when a type is a union with an undefined arm — the optional-flavored * slot marker shared by the frontend (record literals may omit such fields) @@ -3657,7 +3408,7 @@ export function isJsonStringifySafeType( /** A JSON-shaped container with unknown payloads needs the runtime JSON * traversal. Its declared structure can be boxed, but payloads may carry * omitted values, toJSON methods, or cycles. This predicate does not widen - * the type-directed serializer, checked-island boundary, or root-undefined + * the type-directed serializer, checked-value boundary, or root-undefined * contract; callers must select the checked runtime traversal explicitly. */ export function isJsonStringifyDynamicType( t: IrType, @@ -3788,7 +3539,6 @@ function isJsonSafeAt( // Symbols are DROPPED by Node's stringify (undefined at the top level, // omitted as object values) — silent divergence banned; rejected. case "symbol": - case "jsval": case "caught": case "promise": case "generator": @@ -3811,149 +3561,8 @@ function isJsonSafeAt( } } -/** THE island boundary predicate: true when a static type can cross into - * the island (jsMarshal — primitives by value, composites as deep JSON - * copies) and back out (jsExit — strict primitive extraction, composites - * through the dynCheck walker). Primitives are JSON-safe, so the rule - * coincides with isJsonSafeType; it has its own name because the boundary - * is its own concept — the frontend's implicit coercions, the explicit-cast - * lowering, and the validator's jsMarshal/jsExit rules all ask this ONE - * question, and the boundary rejection messages describe exactly this set. */ -export function canCrossIslandBoundary( - t: IrType, - getRecord: (shapeId: string) => IrRecordShape | undefined, - getUnion: (unionId: string) => IrUnionDef | undefined, -): boolean { - return isJsonSafeType(t, getRecord, getUnion); -} - -/** True for a closure type that can cross INTO the island as a host - * function: every parameter jsval (the engine's arguments pass through as - * handles — no per-type extraction exists inside a host call) and the - * result jsval, void, or a primitive (which marshals back by value — - * `(x) => x * 2` on an 'any' x infers a number return). Contextual typing - * produces exactly this shape for callbacks passed to package APIs - * (`.action((a, b) => ...)` against `(...args: any[]) => void`). Arity is - * capped by the runtime's host-call argument buffer (scr_island.c). */ -export const MAX_ISLAND_CALLBACK_ARITY = 16; -export function canMarshalFuncIntoIsland(t: IrType): boolean { - return ( - t.kind === "func" && - t.rest !== true && - t.params.length <= MAX_ISLAND_CALLBACK_ARITY && - t.params.every((p) => p.kind === "jsval") && - (t.ret.kind === "jsval" || - t.ret.kind === "void" || - t.ret.kind === "f64" || - t.ret.kind === "bool" || - t.ret.kind === "string") - ); -} - -/** Parameter types a TYPED closure may declare when it crosses INTO the - * island as a host function: jsval params take the engine argument as a - * handle (the all-'any' shape above); dyn params normalize scalars or retain - * engine objects by reference. Every other admitted type converts - * AT CALL TIME through the validated-exit machinery — strict primitives, - * JSON round-trip composites (the dynCheck walker: width-tolerant records, - * path-annotated failures). On top of the jsExit set, a bare `T | undefined` - * union is admitted here — an absent or undefined engine argument takes the - * undefined arm, exactly the missing-optional-field rule (and exactly the - * commander case: `.action((text: string | undefined, opts) => ...)` sees - * undefined when the command argument is omitted). */ -export function isIslandCallbackParamType( - t: IrType, - getRecord: (shapeId: string) => IrRecordShape | undefined, - getUnion: (unionId: string) => IrUnionDef | undefined, -): boolean { - if (t.kind === "jsval" || t.kind === "dyn") return true; - if (isJsonSafeType(t, getRecord, getUnion)) return true; - if (t.kind === "union") { - // A bare undefined-armed union: every non-undefined arm must be - // JSON-safe (arms never nest unions, so plain isJsonSafeType applies). - const def = getUnion(t.unionId); - return ( - !!def && - def.arms.every((a) => a.kind === "undefinedT" || isJsonSafeType(a, getRecord, getUnion)) - ); - } - return false; -} - -/** Classify a typed island callback's RETURN for adapter synthesis: sync - * kinds marshal back by value ('void'|'jsval'|'f64'|'bool'|'string' — the - * canMarshalFuncIntoIsland set), 'json' marshals a JSON-safe composite - * through the type-directed serializer + engine parse (the jsMarshal - * composite path — commander's option-argument collectors return arrays - * this way), and a Promise of the by-value kinds wraps as an engine - * promise settled when the scriptc promise settles (async callbacks — - * the `.action(async ...)` case). Null for anything else (Promise of - * composites: still fenced). */ -export function islandCallbackRet( - t: IrType, - getRecord: (shapeId: string) => IrRecordShape | undefined, - getUnion: (unionId: string) => IrUnionDef | undefined, -): { async: boolean; tag: "void" | "jsval" | "f64" | "bool" | "string" | "json" | "dyn" } | null { - const tagOf = (r: IrType) => - r.kind === "void" || - r.kind === "jsval" || - r.kind === "f64" || - r.kind === "bool" || - r.kind === "string" - ? r.kind - : null; - if (t.kind === "promise") { - const tag = tagOf(t.inner); - return tag ? { async: true, tag } : null; - } - const tag = tagOf(t); - if (tag) return { async: false, tag }; - // A CHECKED-DYNAMIC result (a JS getter/callback whose inferred return - // degraded — the doc-printer root-indent getter): the dyn value deep- - // copies into the engine on return, exactly the jsMarshal dyn rule - // (data kinds only; boxed functions/handles throw the catchable - // TypeError). Sync only — no engine-promise tag exists for dyn values. - if (t.kind === "dyn") return { async: false, tag: "dyn" }; - return isJsonSafeType(t, getRecord, getUnion) ? { async: false, tag: "json" } : null; -} - -/** The TYPED extension of canMarshalFuncIntoIsland (a strict superset): - * closures whose params are per-argument-convertible at call time - * (isIslandCallbackParamType) and whose return classifies - * (islandCallbackRet). Same arity cap — the runtime's host-call argument - * buffer. Statically typed closure parameters stay fenced; unknown values - * enter as checked-dynamic values and are validated at each typed use. */ -export function canMarshalTypedFuncIntoIsland( - t: IrType, - getRecord: (shapeId: string) => IrRecordShape | undefined, - getUnion: (unionId: string) => IrUnionDef | undefined, -): boolean { - if (t.kind !== "func") return false; - // The ISLAND-REST form (`async (...args) =>` in JS under --dynamic — - // the withPlugins wrapper): the trailing ABI param is the ENGINE array - // of the call's surplus arguments; leading params convert per argument - // like any typed callback. Plain rest signatures (dynRest, typed - // rests) stay out — no completed-ABI spelling exists for them here. - if (t.rest === true) { - return ( - t.restAbi === "jsval" && - t.params.length >= 1 && - t.params.length <= MAX_ISLAND_CALLBACK_ARITY && - t.params[t.params.length - 1]!.kind === "jsval" && - t.params.slice(0, -1).every((p) => isIslandCallbackParamType(p, getRecord, getUnion)) && - islandCallbackRet(t.ret, getRecord, getUnion) !== null - ); - } - return ( - t.params.length <= MAX_ISLAND_CALLBACK_ARITY && - t.params.every((p) => isIslandCallbackParamType(p, getRecord, getUnion)) && - islandCallbackRet(t.ret, getRecord, getUnion) !== null - ); -} - /* ── the checked-dynamic FUNCTION boundary ────────────────────────────── - * The STATIC twin of the island's typed-function marshaling - * (canMarshalTypedFuncIntoIsland): closures cross the dyn boundary as a + * Closures cross the checked-value boundary as a * callable dyn kind carrying the closure + a compiled per-signature call * thunk. Two directions, two predicates, mutually recursive with the * conversion domains (function types cannot ride records/unions — jsonSafe @@ -4242,9 +3851,7 @@ function canDynCheckToAt( ): boolean { if (t.kind === "procStream") return true; // Unknown fields keep an owned dyn subtree; checking the surrounding - // record/array still validates its layout. This is broader than the - // stringify/island JSON domain, which cannot assume opaque slots are - // serializable. Backends already retain dyn fields and fill missing + // record/array still validates its layout. Backends retain dyn fields and fill missing // unknown record fields with the undefined value. if (isJsonSafeAt(t, getRecord, getUnion, false, false, new Set(), true)) return true; if (t.kind === "bigint" || t.kind === "symbol" || t.kind === "date" || t.kind === "searchParams") @@ -4317,24 +3924,15 @@ export function canBoxFuncIntoDyn( t.kind === "func" && // Typed rest occupies the final native array parameter; its thunk // checks a fresh array containing all remaining call arguments. - // Island rest keeps its separate engine host-callback adapter. + (t.rest !== true || t.restAbi === undefined || (t.restAbi === "typed" && t.params.at(-1)?.kind === "array")) && - // A jsval (island) param converts through scr_jsval_from_dyn in the - // thunk (wrapped cells unwrap by reference, dyn data deep-copies) — - // the checker-'any' callback params of the routed-dispatch lane - // (`bag.list.map((x) => ...)` with x typed any). - t.params.every( - (p) => - p.kind === "dyn" || p.kind === "jsval" || canDynCheckTo(p, getRecord, getUnion, visiting), - ) && - // A jsval return converts through the by-reference wrap - // (dynFromJsval — the thunk's result conversion), so engine-returning - // callbacks box too: the routed-dispatch lane's flatMap shape. + // The thunk checks each argument against the declared native type. + t.params.every((p) => p.kind === "dyn" || canDynCheckTo(p, getRecord, getUnion, visiting)) && + // The result must be representable as a checked native value. (t.ret.kind === "void" || t.ret.kind === "dyn" || - t.ret.kind === "jsval" || canConvertToDyn(t.ret, getRecord, getUnion, visiting)) ); } @@ -4352,7 +3950,7 @@ export function canAdaptDynFuncTo( return ( t.kind === "func" && // Checked rest and arguments packs retain all actual arguments. Typed - // and island rest ABIs still require their own conversion plan. + (t.rest !== true || t.restAbi === undefined) && t.params.every((p) => p.kind === "dyn" || canConvertToDyn(p, getRecord, getUnion, visiting)) && (t.ret.kind === "void" || @@ -4360,77 +3958,3 @@ export function canAdaptDynFuncTo( canDynCheckTo(t.ret, getRecord, getUnion, visiting)) ); } - -/** The MARSHAL-direction boundary (jsMarshal): everything that can cross - * out and back (canCrossIslandBoundary) plus qualifying closures — those - * enter as host functions but never EXIT (jsExit keeps the narrower - * predicate). */ -export function canMarshalIntoIsland( - t: IrType, - getRecord: (shapeId: string) => IrRecordShape | undefined, - getUnion: (unionId: string) => IrUnionDef | undefined, -): boolean { - return isJsonSafeType(t, getRecord, getUnion) || canMarshalFuncIntoIsland(t); -} - -/** The EXIT-direction boundary (jsExit): everything round-trippable - * (canCrossIslandBoundary) plus BARE undefined/null-armed unions whose - * data arms are all JSON-safe — the engine's undefined takes the - * undefined arm before the JSON detour (JSON cannot spell undefined, and - * bare undefined-armed unions are JSON-unsafe for exactly that reason), - * null and data ride the round trip into the union's dynCheck. The - * package-API shape `result.headers` : `Record | - * undefined` is the motivating case. */ -/** The static-promise→engine bridge's payload domain: the fulfillment - * types a scriptc promise may deliver INTO the island as a real engine - * thenable (scr_jsval_from_promise — the async-callback return bridge, - * reused by promise VALUES crossing at jsvalIn edges and the island - * Promise.all arm). Null = outside the domain (the boundary fence). */ -export function islandPromisePayloadTag( - inner: IrType, -): "void" | "f64" | "bool" | "string" | "jsval" | "jsvalArr" | null { - switch (inner.kind) { - case "void": - return "void"; - case "f64": - return "f64"; - case "bool": - return "bool"; - case "string": - return "string"; - case "jsval": - return "jsval"; - case "array": - return inner.elem.kind === "jsval" ? "jsvalArr" : null; - default: - return null; - } -} - -export function canExitIslandToType( - t: IrType, - getRecord: (shapeId: string) => IrRecordShape | undefined, - getUnion: (unionId: string) => IrUnionDef | undefined, -): boolean { - if (canCrossIslandBoundary(t, getRecord, getUnion)) return true; - // Uint8Array exits with a validated kind check + copy (engine Buffers - // pass — they ARE Uint8Arrays); other element widths stay out. - if (t.kind === "bytes" && t.elem === "u8") return true; - // `any[]`-declared slots (the jsval-element-array spelling): the engine - // array exits Array.isArray-gated, elements BY REFERENCE (identity - // crosses; the withPlugins `loadPlugins(plugins)` boundary). - if (t.kind === "array" && t.elem.kind === "jsval") return true; - if (t.kind === "union") { - const def = getUnion(t.unionId); - if (!def || !def.arms.some((a) => a.kind === "undefinedT")) return false; - if (def.arms.every((a) => isUnitType(a) || isJsonSafeType(a, getRecord, getUnion))) return true; - // `any[] | undefined` (the defaulted-parameter spelling): exactly one - // jsval-element-array data arm beside units — the engine's undefined - // takes the undefined arm, everything else the array exit. - const dataArms = def.arms.filter((a) => !isUnitType(a)); - return ( - dataArms.length === 1 && dataArms[0]!.kind === "array" && dataArms[0]!.elem.kind === "jsval" - ); - } - return false; -} diff --git a/packages/compiler/src/ir/runtime-features.ts b/packages/compiler/src/ir/runtime-features.ts index 6bba535b5..12f98e81e 100644 --- a/packages/compiler/src/ir/runtime-features.ts +++ b/packages/compiler/src/ir/runtime-features.ts @@ -74,12 +74,12 @@ function scanRuntimeFeatures(mod: IrModule, stopAt?: keyof RuntimeFeatures): Run copying: false, legacyTextDecoder: false, fileHandle: false, - fetch: mod.embedded?.modules.some((m) => m.usesFetch === true) ?? false, + fetch: false, processEvents: false, emitter: mod.workers === true || (mod.classes ?? []).some((c) => c.name === RUNTIME_EMITTER_CLASS), stream: (mod.classes ?? []).some((c) => RUNTIME_STREAM_CLASSES.has(c.name)), - zlib: mod.embedded?.edges.some((e) => e.to === "node:zlib") ?? false, + zlib: false, dc: false, assert: false, dynInvoke: mod.workers === true, @@ -230,9 +230,6 @@ function scanRuntimeFeatures(mod: IrModule, stopAt?: keyof RuntimeFeatures): Run ) features.copying = true; break; - case "jsOp": - if (node.op === "globalGet" && node.name === "fetch") features.fetch = true; - break; case "dynInvoke": features.dynInvoke = true; break; @@ -341,13 +338,9 @@ export function moduleUsesFileHandle(mod: IrModule): boolean { return scanRuntimeFeatures(mod, "fileHandle").fileHandle; } -/** True when user code lowers static fetch or the embedded npm graph - * reaches the engine's global fetch — the link switch that pulls scr_fetch.c + - * its socket/tls/zlib dependencies into the binary (native-toolchain.ts) and has the - * emitted main call scr_fetch_install. The npm graph records the embedded - * source fact with a parser + binder, so comments, strings, property names, - * and local `fetch` bindings do not change the link or target capability. - * Fetch-free graphs keep their exact historical link lines. */ +/** True when native fetch operations survive lowering. This links + * scr_fetch.c and its socket/tls/zlib dependencies and makes the emitted + * main call scr_fetch_install. Fetch-free graphs keep their link lines. */ export function moduleUsesFetch(mod: IrModule): boolean { return scanRuntimeFeatures(mod, "fetch").fetch; } @@ -405,39 +398,8 @@ export function moduleUsesStream(mod: IrModule): boolean { return scanRuntimeFeatures(mod, "stream").stream; } -/** True when the embedded npm graph has an edge into `builtin` — the - * island shim needs the corresponding native bridge linked (zlib's is - * the first; the emitted main installs it before any island entry). */ -export function moduleEmbedsBuiltin(mod: IrModule, builtin: string): boolean { - return mod.embedded !== undefined && mod.embedded.edges.some((e) => e.to === builtin); -} - -/** Embedded module texts at least this long are DEFLATE-compressed into - * the emitted LLVM (island.ts; each stays plain when deflate does not - * shrink it) and inflated lazily by the island's module loader at first - * load. Below it the zlib round trip cannot pay for itself. */ export const NPM_COMPRESS_MIN = 1024; -/** True when the emitted npm tables will carry compressed module text — - * the SAME candidate test island.ts compresses by, so index.ts's - * zlib link switch and emitter.ts's inflater installation stay in - * lockstep with the emission (a candidate whose deflate happens not to - * shrink stays plain; the installed inflater is then just unused). */ -export function moduleEmbedsCompressedNpm(mod: IrModule): boolean { - return ( - mod.embedded !== undefined && - mod.embedded.modules.some( - (m) => m.source.length >= NPM_COMPRESS_MIN || (m.esm ?? "").length >= NPM_COMPRESS_MIN, - ) - ); -} - -/** True when the module contains any zlib libCall (the static lowering) - * OR the embedded npm graph imports node:zlib (the island shim) — the - * link switch that pulls scr_zlib.c + the system libz into the binary - * (native-toolchain.ts); zlib-free programs keep their exact link line. Same - * generic-walk shape as moduleUsesRegex: `kind`/`fn` discriminants live - * only on IR objects. */ export function moduleUsesZlib(mod: IrModule): boolean { return scanRuntimeFeatures(mod, "zlib").zlib; } @@ -545,9 +507,6 @@ export function moduleUsesQs(mod: IrModule): boolean { return scanRuntimeFeatures(mod, "qs").qs; } -/** True when the module uses native util parsing, comparison, or styling. - * The utility units also follow their required symbol, inspection, and - * warning features, independently of the island's node:util shim. */ export function moduleUsesParseArgs(mod: IrModule): boolean { return scanRuntimeFeatures(mod, "parseArgs").parseArgs; } diff --git a/packages/compiler/src/ir/scalar-records.test.ts b/packages/compiler/src/ir/scalar-records.test.ts index 0694c12eb..551e7567a 100644 --- a/packages/compiler/src/ir/scalar-records.test.ts +++ b/packages/compiler/src/ir/scalar-records.test.ts @@ -40,7 +40,7 @@ const read = (localId: string, field = "a"): IrExpr => ({ function fixture(): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", records: [ diff --git a/packages/compiler/src/ir/serialize.ts b/packages/compiler/src/ir/serialize.ts index ade5c50f9..d2e2d72bf 100644 --- a/packages/compiler/src/ir/serialize.ts +++ b/packages/compiler/src/ir/serialize.ts @@ -8,9 +8,9 @@ * materializes the complete document as a single string. */ import type { IrExpr, IrFunction, IrModule, IrStmt } from "./ir.js"; -// Version 15 expands the native Error prefix with filesystem metadata. -// Older modules embed incompatible subclass offsets and must be rejected. -export const IR_VERSION = 15 as const; +// Version 16 removes embedded-engine types, operations, and module metadata. +// Older modules can require runtime support that no longer exists. +export const IR_VERSION = 16 as const; /** IR artifacts are plain data. Scan each function once before deciding * whether its JSON encoding needs the complete-number-domain replacer. */ diff --git a/packages/compiler/src/ir/traverse.ts b/packages/compiler/src/ir/traverse.ts index 6f2eb6bf9..f7a13d5e9 100644 --- a/packages/compiler/src/ir/traverse.ts +++ b/packages/compiler/src/ir/traverse.ts @@ -51,7 +51,6 @@ export function everyTypeChild(node: IrType, visit: (node: IrType) => boolean): case "record": case "union": case "dyn": - case "jsval": case "caught": case "undefinedT": case "nullT": @@ -262,8 +261,6 @@ export function everyExprChild( return expr(node.obj) && expr(node.key); case "dynFrom": return expr(node.value); - case "dynFromJsval": - return expr(node.value); case "dynCall": return ( expr(node.callee) && @@ -336,14 +333,6 @@ export function everyExprChild( return expr(node.value); case "dynCheck": return expr(node.value); - case "jsMarshal": - return expr(node.value); - case "jsOp": - return node.args.every((child) => expr(child)); - case "jsExit": - return expr(node.value); - case "jsBridgePromise": - return expr(node.value); } node satisfies never; throw new Error("unhandled IR node"); @@ -616,8 +605,6 @@ export function mapExprChildren( return { ...node, obj: expr(node.obj), key: expr(node.key) }; case "dynFrom": return { ...node, value: expr(node.value) }; - case "dynFromJsval": - return { ...node, value: expr(node.value) }; case "dynCall": { const result: Extract = { ...node, callee: expr(node.callee) }; if (node.receiver !== undefined) result.receiver = expr(node.receiver); @@ -696,14 +683,6 @@ export function mapExprChildren( return { ...node, value: expr(node.value) }; case "dynCheck": return { ...node, value: expr(node.value) }; - case "jsMarshal": - return { ...node, value: expr(node.value) }; - case "jsOp": - return { ...node, args: node.args.map((child) => expr(child)) }; - case "jsExit": - return { ...node, value: expr(node.value) }; - case "jsBridgePromise": - return { ...node, value: expr(node.value) }; } node satisfies never; throw new Error("unhandled IR node"); diff --git a/packages/compiler/src/ir/unshare.test.ts b/packages/compiler/src/ir/unshare.test.ts index d8a6346a8..fdbd2619c 100644 --- a/packages/compiler/src/ir/unshare.test.ts +++ b/packages/compiler/src/ir/unshare.test.ts @@ -57,7 +57,7 @@ function sharedRead(): { mod: IrModule; read: IrExpr } { }, ]; const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [ diff --git a/packages/compiler/src/ir/validate.test.ts b/packages/compiler/src/ir/validate.test.ts index 3566ebedc..874418df5 100644 --- a/packages/compiler/src/ir/validate.test.ts +++ b/packages/compiler/src/ir/validate.test.ts @@ -315,7 +315,7 @@ function numericReadModule(overrides: Partial ...overrides, }; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [ @@ -399,7 +399,7 @@ test.each(["sortPrimitive", "toSortedPrimitive"] as const)( function expressionModule(expr: IrExpr, unions: IrUnionDef[]): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", unions, @@ -1286,7 +1286,7 @@ test.each([ function tdzModule(mutable = true): IrModule { const value: IrExpr = { kind: "numLit", value: 0, type: F64, loc }; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [ @@ -1539,7 +1539,7 @@ test("TDZ locals require a shared box", () => { function discriminatedModule(): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [{ name: "main", params: [], locals: [], returnType: VOID, body: [], loc }], @@ -1748,7 +1748,7 @@ test("function result views preserve the parameter ABI and reject reversed covar if (variant === "parameter") type.params[0] = STRING; if (variant === "arity") type.params.push(F64); if (variant === "rest") type.rest = true; - if (variant === "rest-abi") type.restAbi = "jsval"; + if (variant === "rest-abi") type.restAbi = "typed"; if (variant === "arguments") type.argumentsAll = true; if (variant === "return") type.ret = F64; if (variant === "unrelated") type.ret = { kind: "object", className: "Other" }; @@ -1897,7 +1897,7 @@ test("a caught-typed global records a module error only from a catch binding", ( const caught: IrType = { kind: "caught" }; const errorId = "%g.e.%loaded%error"; const module = (value: IrExpr): IrModule => ({ - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", unions: [], diff --git a/packages/compiler/src/ir/validate.ts b/packages/compiler/src/ir/validate.ts index 1455cd148..ae7711a2d 100644 --- a/packages/compiler/src/ir/validate.ts +++ b/packages/compiler/src/ir/validate.ts @@ -25,15 +25,11 @@ import { canAdaptDynFuncTo, canDynCheckTo, canConvertToDyn, - canExitIslandToType, - canMarshalIntoIsland, - canMarshalTypedFuncIntoIsland, DYN, DYN_HANDLE_KINDS, F64, ffiClassType, ffiSourceParamTypes, - islandPromisePayloadTag, isDynTypedRefType, isFfiCallbackParam, isFfiContextParam, @@ -48,8 +44,6 @@ import { isSupportedMapValue, isSupportedSetElem, isUnitType, - jsOpResultKind, - JSVAL, REF_TRUTHY_KINDS, RUNTIME_EMITTER_CLASS, RUNTIME_ERROR_CLASSES, @@ -137,7 +131,7 @@ export function validateModule(mod: IrModule): IrValidationError[] { const moduleLoc: SrcLoc = { file: mod.sourceFile, start: 0, end: 0 }; if (mod.workers !== undefined && typeof mod.workers !== "boolean") errors.push({ message: "worker execution mode must be a boolean", loc: moduleLoc }); - if (mod.workers && (mod.lib !== undefined || mod.embedded !== undefined)) + if (mod.workers && mod.lib !== undefined) errors.push({ message: "worker execution requires a native static executable", loc: moduleLoc, @@ -661,9 +655,8 @@ export function validateModule(mod: IrModule): IrValidationError[] { if (fields.has(f.name)) { errors.push({ message: `record ${rec.id}: duplicate field "${f.name}"`, loc: noLoc }); } else fields.set(f.name, f.type); - // Unit kinds (undefinedT/nullT) exist only as union arms — a BARE - // unit field is as malformed as a void one. dyn and jsval slots - // are valid; both are refcounted values held by the record shape. + // Bare unit and void types have no record-field storage; unit values + // use their union representation. if (f.type.kind === "void" || isUnitType(f.type)) { errors.push({ message: `record ${rec.id}: field "${f.name}" is ${f.type.kind}`, @@ -811,7 +804,6 @@ export function validateModule(mod: IrModule): IrValidationError[] { arm.kind === "void" || arm.kind === "union" || arm.kind === "dyn" || - arm.kind === "jsval" || arm.kind === "date" || arm.kind === "generator" ) { @@ -1161,10 +1153,6 @@ function validateFunction( } }; - /** Union arms a truthiness helper can answer: units (false), scalars and - * strings (per-value), ref kinds (always true), jsval (the engine - * answers). dyn/caught arms have no ToBoolean — the frontend fences them - * before emitting toBool/logical over the union. */ const checkTruthyUnion = (unionId: string, loc: SrcLoc) => { const def = unions.get(unionId); if (!def) { @@ -1198,12 +1186,7 @@ function validateFunction( function checkNullishOperands(e: IrExpr & { kind: "nullish" }): void { expectType(e.right, e.type, "nullish right operand"); - // The ISLAND form: `a ?? b` over an engine value — left, right, - // and result are all handles (the emitters' jsval nullish arm). - if (e.left.type.kind === "jsval") { - if (e.type.kind !== "jsval") err("jsval nullish must answer jsval", e.loc); - return; - } + // The CHECKED-DYNAMIC form: the runtime kind decides (the // emitters' scr_dyn_is_nullish arm) — left, right, and result // all live in the checked-dynamic tree. @@ -1261,11 +1244,10 @@ function validateFunction( e.type.kind !== "f64" && e.type.kind !== "string" && e.type.kind !== "bool" && - e.type.kind !== "jsval" && e.type.kind !== "union" && e.type.kind !== "dyn" ) { - err(`logical ${e.op} must be f64|string|bool|jsval|union|dyn, got ${e.type.kind}`, e.loc); + err(`logical ${e.op} must be f64|string|bool|union|dyn, got ${e.type.kind}`, e.loc); } if (e.type.kind === "union") checkTruthyUnion(e.type.unionId, e.loc); expectType(e.left, e.type, `logical ${e.op} left`); @@ -1376,7 +1358,6 @@ function validateFunction( case "fieldAbsent": return checkRecordExpr(e); case "dynFrom": - case "dynFromJsval": case "dynCall": case "dynInvoke": case "dynObjLit": @@ -1410,11 +1391,6 @@ function validateFunction( case "newPromise": case "promiseWithResolvers": return checkAsyncExpr(e); - case "jsMarshal": - case "jsOp": - case "jsExit": - case "jsBridgePromise": - return checkIslandExpr(e); default: { const _exhaustive: never = e; void _exhaustive; @@ -1677,16 +1653,14 @@ function validateFunction( } case "dynDestrCheck": { checkExpr(e.value); - if (e.value.type.kind !== "dyn" && e.value.type.kind !== "jsval") - err("dynDestrCheck value must be dyn or jsval", e.loc); + if (e.value.type.kind !== "dyn") err("dynDestrCheck value must be dyn", e.loc); if (e.type.kind !== e.value.type.kind) err("dynDestrCheck must have its value's type", e.loc); break; } case "dynIterN": { checkExpr(e.value); - if (e.value.type.kind !== "dyn" && e.value.type.kind !== "jsval") - err("dynIterN value must be dyn or jsval", e.loc); + if (e.value.type.kind !== "dyn") err("dynIterN value must be dyn", e.loc); if (e.type.kind !== e.value.type.kind) err("dynIterN must have its value's type", e.loc); if (!Number.isInteger(e.count) || e.count < 0) err("dynIterN count must be a non-negative integer", e.loc); @@ -1779,23 +1753,7 @@ function validateFunction( break; case "optChain": { checkExpr(e.receiver); - // An island-handle chain (`x?.y` on 'any'): the nullish test is a - // runtime ask of the engine value; the body is the plain island - // operation over the bound handle, and both body and result stay - // jsval (the unit path is the engine's undefined). - if (e.receiver.type.kind === "jsval") { - if (activeChains.has(e.id)) err(`optChain id "${e.id}" shadows an active chain`, e.loc); - activeChains.set(e.id, JSVAL); - checkExpr(e.body); - activeChains.delete(e.id); - if (e.body.type.kind !== "jsval") { - err(`jsval optChain with ${e.body.type.kind} body`, e.loc); - } - if (e.type.kind !== "jsval") { - err(`jsval optChain must be jsval, got ${e.type.kind}`, e.loc); - } - break; - } + // A dyn (dyn) chain (`rawName?.match(re)` on a JSON.parse result): // the nullish test reads the node's kind tag; the body is the // validated dynamic dispatch, its result converted back into the @@ -2728,7 +2686,7 @@ function validateFunction( // declared params plus that one must match. if (e.type.kind === "func") { const wantRet = callSiteReturnType(target); - // ISLAND-REST types (restAbi jsval) SPELL their trailing engine + // array param — the lifted signature matches directly, no // hidden slot. const hiddenRest = e.type.rest === true && e.type.restAbi === undefined; @@ -3304,7 +3262,6 @@ function validateFunction( e: IrExpr & { kind: | "dynFrom" - | "dynFromJsval" | "dynCall" | "dynInvoke" | "dynObjLit" @@ -3353,17 +3310,6 @@ function validateFunction( } break; } - case "dynFromJsval": { - // The jsval→dyn crossing: exactly a jsval operand into a dyn - // result (the by-reference island wrap; scalars normalize at - // runtime). - checkExpr(e.value); - if (e.type.kind !== "dyn") err(`dynFromJsval must be dyn-typed, got ${e.type.kind}`, e.loc); - if (e.value.type.kind !== "jsval") { - err(`dynFromJsval operand must be jsval, got ${e.value.type.kind}`, e.loc); - } - break; - } case "dynCall": { checkExpr(e.callee); if (e.calleeNameValue !== undefined) { @@ -4940,14 +4886,6 @@ function validateFunction( } function checkLibSpecialCall(e: IrExpr & { kind: "libCall" }): boolean { - if (e.fn === "island.castFail") { - // The deferred boundary failure's typed dummy: a promise (the - // only cast shape the frontend defers). - if (e.type.kind !== "promise") { - err(`libCall island.castFail must return a promise type, got ${e.type.kind}`, e.loc); - } - return true; - } if (e.fn === "global.undefRead") { // Always throws — the result type is whatever the declared type // of the undefined global mapped to (never materialized). @@ -5677,167 +5615,6 @@ function validateFunction( } } - function checkIslandExpr( - e: IrExpr & { kind: "jsMarshal" | "jsOp" | "jsExit" | "jsBridgePromise" }, - ): void { - switch (e.kind) { - case "jsMarshal": { - checkExpr(e.value); - if (e.type.kind !== "jsval") err(`jsMarshal must be jsval, got ${e.type.kind}`, e.loc); - const src = e.value.type; - // The marshal direction admits qualifying closures (host-function - // wrapping) on top of the JSON-safe set; jsExit does not. Typed - // closures (per-param call-time conversion through the exit - // machinery) are the wider func shape. - // Typed arrays and URLs marshal IN (an engine typed-array copy / - // an engine URL built from the components) without ever joining - // the round-trip (JSON) set — the frontend's union lift narrows - // union arms before marshaling, so bare bytes/url operands are - // exactly what it produces. - if ( - src.kind !== "bytes" && - src.kind !== "url" && - src.kind !== "dyn" && // dyn values deep-copy in (data kinds; the runtime throws on boxes) - // A STATIC promise crosses as a real engine thenable when its - // fulfillment is in the reverse bridge's payload domain - // (scr_jsval_from_promise — the async-callback return bridge). - !(src.kind === "promise" && islandPromisePayloadTag(src.inner) !== null) && - !canMarshalIntoIsland( - src, - (id) => records.get(id), - (id) => unions.get(id), - ) && - !canMarshalTypedFuncIntoIsland( - src, - (id) => records.get(id), - (id) => unions.get(id), - ) - ) { - err(`jsMarshal of unmarshalable type ${src.kind}`, e.loc); - } - break; - } - case "jsOp": { - for (const a of e.args) checkExpr(a); - if (e.type.kind !== jsOpResultKind(e.op)) { - err(`jsOp ${e.op} must be ${jsOpResultKind(e.op)}, got ${e.type.kind}`, e.loc); - } - const named = - e.op === "getProp" || - e.op === "setProp" || - e.op === "callMethod" || - e.op === "optCallMethod" || - e.op === "globalGet" || - e.op === "callSpread"; // the spread expression's source spelling (V8's nullish text spells it) - if (named !== (e.name !== undefined)) { - err(`jsOp ${e.op} ${named ? "requires" : "forbids"} a name`, e.loc); - } - const arity: Record = { - add: 2, - sub: 2, - mul: 2, - div: 2, - mod: 2, - pow: 2, - lt: 2, - le: 2, - gt: 2, - ge: 2, - eq: 2, - neq: 2, - instanceOf: 2, - neg: 1, - plus: 1, - truthy: 1, - not: 1, - typeof: 1, - toStr: 1, - getProp: 1, - setProp: 2, - getIdx: 2, - setIdx: 3, - globalGet: 0, - undefLit: 0, - nullLit: 0, - iterNew: 1, - defineGetter: 3, - objSpread: 2, - callSpread: 3, // callee + pre array + spread source - callMethod: null, - optCallMethod: null, - callFn: null, - callFnThis: null, - construct: null, // receiver/callee + any number of args - objLit: null, - arrLit: null, - tplStrings: null, // variable length (objLit: key/value pairs; tplStrings: n cooked + n raw) - }; - const want = arity[e.op]; - if (want !== null && want !== undefined && e.args.length !== want) { - err(`jsOp ${e.op} takes ${want} arg(s), got ${e.args.length}`, e.loc); - } - if ( - want === null && - e.op !== "objLit" && - e.op !== "arrLit" && - e.op !== "tplStrings" && - e.args.length < 1 - ) { - err(`jsOp ${e.op} needs a receiver/callee arg`, e.loc); - } - if (e.op === "callFnThis" && e.args.length < 2) { - err("jsOp callFnThis needs a callee and receiver", e.loc); - } - if (e.op === "objLit" && e.args.length % 2 !== 0) { - err("jsOp objLit takes key/value pairs", e.loc); - } - if (e.op === "tplStrings" && e.args.length % 2 !== 0) { - err("jsOp tplStrings takes n cooked + n raw strings", e.loc); - } - for (const a of e.args) { - if (a.type.kind !== "jsval") - err(`jsOp ${e.op} arg must be jsval, got ${a.type.kind}`, e.loc); - } - break; - } - case "jsExit": { - checkExpr(e.value); - expectType(e.value, JSVAL, "jsExit operand"); - if ( - !canExitIslandToType( - e.type, - (id) => records.get(id), - (id) => unions.get(id), - ) - ) { - err(`jsExit to non-extractable type ${e.type.kind}`, e.loc); - } - break; - } - case "jsBridgePromise": { - checkExpr(e.value); - expectType(e.value, JSVAL, "jsBridgePromise operand"); - // The settled engine value crosses as a HANDLE (or not at all) — - // plus the ONE converting payload: an `any[]`-declared - // fulfillment exits Array.isArray-gated by reference AT THE - // SETTLE (SCR_ISLP_JSVAL_ARR); every other typed use exits later. - if ( - e.type.kind !== "promise" || - (e.type.inner.kind !== "jsval" && - e.type.inner.kind !== "void" && - !(e.type.inner.kind === "array" && e.type.inner.elem.kind === "jsval")) - ) { - err("jsBridgePromise must be a promise of jsval, void, or jsval-element array", e.loc); - } - break; - } - default: { - const _exhaustive: never = e; - void _exhaustive; - } - } - } - // `continue` needs an enclosing loop; `break` an enclosing loop OR switch. let loopDepth = 0; let breakableDepth = 0; diff --git a/packages/compiler/src/library/fence-eval.test.ts b/packages/compiler/src/library/fence-eval.test.ts index 80511e970..7b4f03434 100644 --- a/packages/compiler/src/library/fence-eval.test.ts +++ b/packages/compiler/src/library/fence-eval.test.ts @@ -15,7 +15,7 @@ function program(member: string): IrModule { loc, }; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "probe", functions: [ diff --git a/packages/compiler/src/library/int-infer.test.ts b/packages/compiler/src/library/int-infer.test.ts index 2822ca00b..250bdc6d8 100644 --- a/packages/compiler/src/library/int-infer.test.ts +++ b/packages/compiler/src/library/int-infer.test.ts @@ -97,7 +97,7 @@ const sink = (name: string): IrFunction => ({ /** A module holding the case function plus the two declared sinks. */ function caseModule(params: string[], locals: string[], body: IrStmt[]): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: "corpus.ts", functions: [ sink("send"), @@ -196,7 +196,7 @@ const RECORD_CFG: IntSlotConfig = { function recordCase(body: IrStmt[], names = ["m"], extraFns: IrFunction[] = []): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: "fields.ts", functions: [ ...extraFns, @@ -237,7 +237,7 @@ const classCountRead = (): IrExpr => ({ function onlyOrdinaryClass(body: IrStmt[]): IntVerdict { const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: "class-fields.ts", functions: [ sink("send"), @@ -581,7 +581,7 @@ describe("the domain's edges beyond the corpus", () => { loc, }; const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: "optional.ts", functions: [ { diff --git a/packages/compiler/src/library/library-cache.test.ts b/packages/compiler/src/library/library-cache.test.ts index d93db0c5b..9a3e4e4cf 100644 --- a/packages/compiler/src/library/library-cache.test.ts +++ b/packages/compiler/src/library/library-cache.test.ts @@ -261,7 +261,7 @@ test("semantic library cache restores and rebases IR after a comment-only edit", const sourceBefore = await readFile(f.source, "utf8"); const returnStart = sourceBefore.indexOf("return"); const semanticMod = { - irVersion: 15, + irVersion: 16, sourceFile: f.source, functions: [ { @@ -324,7 +324,7 @@ test("semantic library cache refuses token and directive edits", async () => { const f = await fixture(); const sourceBefore = await readFile(f.source, "utf8"); const semanticMod = { - irVersion: 15, + irVersion: 16, sourceFile: f.source, functions: [ { @@ -372,7 +372,7 @@ test("semantic LLVM cache accepts comment edits that shift source lines", async const f = await fixture(); const sourceBefore = await readFile(f.source, "utf8"); const semanticMod = { - irVersion: 15, + irVersion: 16, sourceFile: f.source, functions: [ { @@ -447,7 +447,7 @@ test("semantic LLVM cache accepts line separator normalization", async () => { frontend: tracker.snapshot(), semantic: { mod: { - irVersion: 15, + irVersion: 16, sourceFile: f.source, functions: [], entry: "__main", @@ -468,7 +468,7 @@ test("semantic LLVM cache rebases comment edits in multi-source graphs", async ( const importedSource = "export function helper(): number { return 1; }\n"; await writeFile(imported, importedSource); const semanticMod = { - irVersion: 15, + irVersion: 16, sourceFile: f.source, functions: [ { diff --git a/packages/compiler/src/library/prepare.ts b/packages/compiler/src/library/prepare.ts index 88106433c..97516eaaf 100644 --- a/packages/compiler/src/library/prepare.ts +++ b/packages/compiler/src/library/prepare.ts @@ -451,12 +451,8 @@ export function prepareLibrary( timing: (phase: string, detail?: Record) => void = () => {}, ): PreparedLibrary | CompileFailure { const entryPath = profile.entry; - // Bare npm specifiers in a library graph take the STATIC-OR-REFUSE - // posture: "lib" runs the same auto-detection and eligibility bar as - // the executable lane's --npm-static (own .d.ts, unminified shipped JS, - // no build-transform markers), automatically — the library path has no - // island/dynamic tier to offer. Explicit profile npm_static entries may - // also attempt source inference; any failed attempt remains a refusal. + // Library and executable graphs share automatic package eligibility. + // Explicit profile selections attempt source inference; failures remain refusals. const fe = createFrontend(entryPath, "lib", undefined, profile.npmStatic); timing("frontend-load", { entry_bytes: fe.entryText().length, @@ -475,26 +471,14 @@ export function prepareLibrary( diagnostics: decorateLibraryRefusals(diagnostics, profile), sourceTexts: fe.sourceTexts(), }); - // The npm verdicts FIRST: whatever the shared frontend would have - // served from the island — an eligibility miss, an untyped install, a - // preflight offender inside a package's files, a dropped inferred - // surface — refuses here with the package and the specific bar it - // missed. Checked before the general preflight, whose diagnostics for - // these same imports speak executable-lane teachings (SC1010/SC0001 at - // the unresolvable edge); the library answer is this one. - const npmRefused = fe.npmStatic.filter((s) => s.status === "fallback"); + // Report the package-specific refusal before general preflight errors. + const npmRefused = fe.npmStatic.filter((s) => s.status === "refused"); if (npmRefused.length > 0) { return fail( npmRefused.map((s) => libNpmIneligibleDiag( s.package, - // The one shared offender reason that narrates the executable - // lane's fallback loses that clause here — no island exists on - // this path to serve anything. - (s.detail ?? "its static compilation was refused").replace( - "; the island serves the package", - "", - ), + s.detail ?? "its static compilation was refused", fe.npmImportSites.get(s.package) ?? { file: entryPath, start: 0, end: 0 }, ), ), @@ -553,7 +537,6 @@ export function prepareLibrary( } try { lowered = fe.lower({ - dynamic: false, targetPlatform: buildPlatform, ...(cbImports.length > 0 ? { ffiImports: cbImports } : {}), ...(cbImports.length > 0 ? { libraryCallbacks: true } : {}), diff --git a/packages/compiler/src/native/cli.ts b/packages/compiler/src/native/cli.ts index 920634b40..7ab785a65 100644 --- a/packages/compiler/src/native/cli.ts +++ b/packages/compiler/src/native/cli.ts @@ -72,13 +72,11 @@ async function main(): Promise { toolchain.target, toolchain.compilerVersion, { - dynamic: profile === "dynamic", fetch: profile === "tls", regex: false, copying: false, textDecoderLegacy: false, fileHandle: false, - netIsland: false, zlib: false, assert: false, inspect: false, diff --git a/packages/compiler/src/native/compiler.test.ts b/packages/compiler/src/native/compiler.test.ts index 2c2afcc10..8203271eb 100644 --- a/packages/compiler/src/native/compiler.test.ts +++ b/packages/compiler/src/native/compiler.test.ts @@ -60,7 +60,7 @@ test.each([ writeFileSync(output, "previous executable"); writeFileSync(llvmPath, "previous LLVM"); const module: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: entry, entry: "%main", functions: [ @@ -92,7 +92,7 @@ test.each([ stats: { statementsTotal: 0, statementsFailed: 0, - statementsIsland: 0, + functionsSkipped: 0, }, }), @@ -197,7 +197,7 @@ test.each([false, true])( writeFileSync(output, "previous object"); writeFileSync(llvmPath, "previous LLVM"); const module: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: entry, entry: "%main", functions: [ @@ -230,7 +230,7 @@ test.each([false, true])( stats: { statementsTotal: 0, statementsFailed: 0, - statementsIsland: 0, + functionsSkipped: 0, }, }), diff --git a/packages/compiler/src/native/prepare.ts b/packages/compiler/src/native/prepare.ts index 33dbc2809..684ce0ea4 100644 --- a/packages/compiler/src/native/prepare.ts +++ b/packages/compiler/src/native/prepare.ts @@ -123,13 +123,11 @@ function validFeatures(value: unknown): value is NativeLinkFeatures { const features = value as Record; if (features["workers"] !== undefined && typeof features["workers"] !== "boolean") return false; return [ - "dynamic", "regex", "copying", "textDecoderLegacy", "fileHandle", "fetch", - "netIsland", "zlib", "assert", "inspect", @@ -295,7 +293,7 @@ export function prepareNativeExecutable( llvm, ir, sidecarJson: null, - features: executableLinkFeatures(prepared.mod, options.dynamic ?? false), + features: executableLinkFeatures(prepared.mod), sources: [...prepared.sourceTexts], ...(prepared.warnings.length > 0 ? { warnings: prepared.warnings } : {}), }; @@ -403,7 +401,7 @@ export function prepareNativeLibrary( llvm, ir: options.emitIr ? batchTextParts(serializeModuleParts(prepared.mod)) : null, sidecarJson: prepared.sidecarJson, - features: executableLinkFeatures(prepared.mod, false), + features: executableLinkFeatures(prepared.mod), sources: [...prepared.sourceTexts], }; timing("link-features"); diff --git a/packages/compiler/src/native/runtime-typescript.test.ts b/packages/compiler/src/native/runtime-typescript.test.ts deleted file mode 100644 index f8b871473..000000000 --- a/packages/compiler/src/native/runtime-typescript.test.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { execFileSync } from "node:child_process"; -import { expect, test } from "vitest"; -import { ts7Executable } from "../frontend/ts7/rpc-api.js"; -import { emitRuntimeTypeScript } from "./runtime-typescript.js"; - -test("package emission handles enums, parameter properties, assertions and generic functions", () => { - const emitted = emitRuntimeTypeScript( - ts7Executable(), - "/package/index.ts", - ` - enum Kind { First = 7 } - class Box { constructor(public value: number) {} } - function identity(value: T): T { return value; } - export const result: number = identity(new Box(Kind.First).value as number); - `, - "cjs", - ); - const exports: Record = {}; - new Function("exports", emitted)(exports); - expect(exports["result"]).toBe(7); -}); - -test("CommonJS emission retains dynamic import conditions and emits import-equals requires", () => { - const emitted = emitRuntimeTypeScript( - ts7Executable(), - "/package/index.cts", - ` - import value = require("./value.cts"); - export const later = () => import("dual"); - export const result: number = value.result; - `, - "cjs", - ); - expect(emitted).toContain('require("./value.cts")'); - expect(emitted).toContain('import("dual")'); - expect(emitted).not.toContain('require("dual")'); -}); - -test("ESM emission preserves unused value imports and removes explicitly type-only dependencies", () => { - const emitted = emitRuntimeTypeScript( - ts7Executable(), - "/package/index.mts", - ` - import type { Missing } from "missing-types"; - import { type Other, unused } from "./value.ts"; - export type { Missing } from "missing-types"; - export const result: number = 42; - `, - "esm", - ); - expect(emitted).toContain("unused"); - expect(emitted).toContain("./value.ts"); - expect(emitted).not.toContain("missing-types"); - execFileSync(process.execPath, ["--check", "--input-type=module"], { input: emitted }); -}); - -test("syntax diagnostics retain the original module path, including dollar signs", () => { - expect(() => - emitRuntimeTypeScript( - ts7Executable(), - "/package/$module.mts", - "export function broken(: number) {}", - "esm", - ), - ).toThrow("/package/$module.mts("); -}); diff --git a/packages/compiler/src/native/runtime-typescript.ts b/packages/compiler/src/native/runtime-typescript.ts deleted file mode 100644 index 8eba61812..000000000 --- a/packages/compiler/src/native/runtime-typescript.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { spawnSync } from "node:child_process"; -import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; -import { tmpdir } from "node:os"; -import { join } from "node:path"; - -/** Both compiler hosts use the pinned native TypeScript emitter. Package - * configuration, dependency resolution and execution remain outside this - * isolated emit; the runtime graph resolves the emitted literal imports. */ -export function emitRuntimeTypeScript( - executable: string, - path: string, - source: string, - format: "esm" | "cjs", -): string { - if (/\.d\.[cm]?ts$/.test(path)) - throw new Error("declaration files cannot be embedded as runtime modules"); - if (path.endsWith(".tsx")) throw new Error("TSX runtime modules are not supported"); - const stage = mkdtempSync(join(tmpdir(), "scriptc-typescript-")); - // Explicit suffixes retain the graph's module format independently of - // the temporary directory's package scope. NodeNext also preserves - // dynamic import() in CommonJS instead of changing its export condition. - const input = format === "esm" ? "module.mts" : "module.cts"; - const output = join(stage, "output"); - try { - mkdirSync(output); - writeFileSync(join(stage, input), source); - const config = join(stage, "tsconfig.json"); - writeFileSync( - config, - JSON.stringify({ - compilerOptions: { - target: "esnext", - module: "nodenext", - moduleDetection: "legacy", - noCheck: true, - noResolve: true, - types: [], - isolatedModules: true, - verbatimModuleSyntax: format === "esm", - noEmitOnError: true, - outDir: output, - }, - files: [input], - include: [], - }), - ); - // Read the result directly: native subprocess exceptions intentionally - // do not carry stdout, while spawnSync provides it in both hosts. - const result = spawnSync(executable, ["--project", config, "--pretty", "false"], { - encoding: "utf8", - stdio: "pipe", - }); - if (result.error || result.status !== 0 || result.signal !== null) { - const diagnostic = (result.stdout ?? "").trim(); - // Diagnostic paths may be absolute or relative to the caller's cwd. - // Replace each source-location prefix without interpreting the path - // as a replacement template (package names can contain '$'). - const attributed = diagnostic - .split(/\r?\n/) - .map((line) => { - const at = line.indexOf(input + "("); - return at < 0 ? line : path + line.slice(at + input.length); - }) - .join("\n"); - throw new Error( - diagnostic === "" - ? "TypeScript emission failed" - : attributed - .replaceAll(stage, "") - .replaceAll(stage.replaceAll("\\", "/"), ""), - ); - } - try { - return readFileSync(join(output, format === "esm" ? "module.mjs" : "module.cjs"), "utf8"); - } catch { - throw new Error("TypeScript emitter produced no JavaScript"); - } - } finally { - rmSync(stage, { recursive: true, force: true }); - } -} diff --git a/packages/compiler/src/native/sanitizer.test.ts b/packages/compiler/src/native/sanitizer.test.ts index e3cdee693..533b6a4ca 100644 --- a/packages/compiler/src/native/sanitizer.test.ts +++ b/packages/compiler/src/native/sanitizer.test.ts @@ -73,13 +73,11 @@ test.skipIf(process.platform !== "linux" && process.platform !== "darwin")( systemLibraries: [], features: { workers: false, - dynamic: false, regex: true, copying: false, textDecoderLegacy: false, fileHandle: false, fetch: false, - netIsland: false, zlib: false, assert: false, inspect: false, @@ -104,7 +102,6 @@ test.skipIf(process.platform !== "linux" && process.platform !== "darwin")( tls: false, tlsCa: false, nativeFetch: false, - netIslandEffective: false, netEffective: false, httpEffective: false, tlsEffective: false, diff --git a/packages/compiler/src/native/sanitizer.ts b/packages/compiler/src/native/sanitizer.ts index f2ec3ac60..6c1ff1e35 100644 --- a/packages/compiler/src/native/sanitizer.ts +++ b/packages/compiler/src/native/sanitizer.ts @@ -6,7 +6,7 @@ import { NativeCodegenError } from "../backend/native-codegen-core.js"; import { requireNativeArtifact, runNativeTool } from "../backend/native-tools.js"; import type { NativeRuntimePack, NativeRuntimeSelection } from "../backend/runtime-pack-native.js"; import { runtimePackFlavorKey, type RuntimePackMode } from "../backend/runtime-pack-core.js"; -import { QJS_ENGINE_SOURCES, LRE_SOURCES, ZLIB_SOURCES } from "../backend/vendor-inputs.js"; +import { LRE_SOURCES, ZLIB_SOURCES } from "../backend/vendor-inputs.js"; import { contentDigest, type NativeCache } from "./cache.js"; import type { NativeToolchain } from "./toolchain.js"; @@ -159,20 +159,7 @@ export function buildSanitizedRuntime( let sources: readonly string[]; let directory: string; let args: string[]; - if (name === "quickjs") { - sources = QJS_ENGINE_SOURCES; - directory = quickjs; - args = [ - "-std=gnu11", - "-fvisibility=hidden", - "-funsigned-char", - "-DQUICKJS_NG_BUILD", - "-D_GNU_SOURCE", - "-DNDEBUG", - "-I", - quickjs, - ]; - } else if (name === "libregexp") { + if (name === "libregexp") { sources = LRE_SOURCES; directory = quickjs; args = ["-std=c11", "-I", quickjs]; diff --git a/packages/compiler/src/startup-cache.ts b/packages/compiler/src/startup-cache.ts index 78722fcc7..fedc36fd5 100644 --- a/packages/compiler/src/startup-cache.ts +++ b/packages/compiler/src/startup-cache.ts @@ -20,7 +20,6 @@ import { nativeCodegenTarget, type NativeTargetSpec } from "./backend/targets.js export function precompiledRuntimePackTarget( env: NodeJS.ProcessEnv = process.env, ): NativeTargetSpec | null { - if (env["SCRIPTC_FETCH_CURL"] === "1") return null; return nativeCodegenTarget(env); } export { readCoverageVerdict } from "./coverage/verdict-startup.js"; diff --git a/packages/compiler/surface-manifest.json b/packages/compiler/surface-manifest.json index 79a1f2c80..da7483b94 100644 --- a/packages/compiler/surface-manifest.json +++ b/packages/compiler/surface-manifest.json @@ -1,15 +1,14 @@ { - "schemaVersion": 1, + "schemaVersion": 2, "compilerVersion": "0.2.10", "coverage": [ "Entries are projected mechanically from the compiler's own decision tables: the diagnostics registry, the unsupported-syntax dispatch tables, the stdlib and node-builtin lowering tables, and the supported-builtin-module list. Nothing is hand-maintained; the manifest regenerates byte-identically from the source tree at this version.", "Absence from this manifest means 'not projected', never 'unsupported'. Surfaces lowered through dedicated code paths rather than tables are not yet projected: console, JSON, Promise/async and the timer surface, the net/http/tls/https/dgram/dns/assert/test/stream/readline module member surfaces, template literals, the regex slice, global functions (parseInt, parseFloat, isNaN, isFinite), and the process surface outside its ambient slice.", "The ambient-nondeterminism and ambient-authority surfaces the library sidecar's determinism attestation scans ARE projected even where they lower through dedicated code paths — the Date compositions (stdlib.date.*), perf_hooks' performance.now, and the process global's ambient reads and authority calls (node-builtin.process.*) — so a determinism fence can name every surface the attestation demotes on.", "stdlib and node-builtin member entries name surface whose LOWERED call forms are constrained (arity, argument shapes); declared call forms outside the lowered set are refused per site, with code SC2020 for standard-library and node-builtin surface.", - "Entries with status 'unsupported' or 'dynamic-only' describe where the named code is raised: forms of the construct outside the supported subset are refused with that code — not that every form of the named feature is refused. Supported forms appear as their own static entries where a table projects them.", - "Entries with status 'dynamic-only' compile when the build embeds the dynamic engine (--dynamic); without the flag each use site is refused with the entry's code.", + "Entries with status 'unsupported' describe where the named code is raised: forms of the construct outside the supported subset are refused with that code — not that every form of the named feature is refused. Supported forms appear as their own static entries where a table projects them.", "The engine-free fetch projection targets Node 24.15.0 with bundled Undici 7.24.4. Each projected row names the differential evidence that guards it; changing the pinned Node or Undici version is an explicit profile update.", - "The fetch profile also contains a runtime-reflected census of the selected fetch, abort, Headers, and readable-stream interfaces plus RequestInit/ResponseInit dictionary reads. Static, dynamic-only, and unsupported census rows are projected here; its explicitly out-of-scope metadata rows and adjacent-interface exclusions remain in the profile so absence is deliberate rather than ambiguous.", + "The fetch profile also contains a runtime-reflected census of the selected fetch, abort, Headers, and readable-stream interfaces plus RequestInit/ResponseInit dictionary reads. Static and unsupported census rows are projected here; its explicitly out-of-scope metadata rows and adjacent-interface exclusions remain in the profile so absence is deliberate rather than ambiguous.", "Process-level diagnostic codes are not surface entries: SC0001-SC0004 are preflight gates, SC1110 is a comptime evaluation failure, SC3001/SC3002 are backend/target tier refusals, SC9001/SC9002 are internal errors.", "Entry statuses are projected for the desktop targets. The mobile targets (aarch64-apple-ios, aarch64-apple-ios-simulator, aarch64-linux-android) compile library-mode archives only: the library-admissible surface (what SC4005's async_free requirement and the library link set admit) is supported there, the executable lane refuses those triples with SC3002, and no entry outside the library-admissible surface carries a mobile support claim. iOS archives build for iOS 15.0 on darwin hosts; Android archives build against NDK API level 26.", "No scheduling metadata is published; entry ids are the stable diff keys across releases." @@ -21,7 +20,7 @@ "name": "package imports", "status": "unsupported", "code": "SC1010", - "note": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "note": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" }, { "id": "diagnostic.sc1012", @@ -261,29 +260,29 @@ { "id": "diagnostic.sc2010", "kind": "diagnostic-fence", - "name": "constructs that exist only in the embedded dynamic engine", - "status": "dynamic-only", + "name": "runtime JavaScript execution", + "status": "unsupported", "code": "SC2010" }, { "id": "diagnostic.sc2011", "kind": "diagnostic-fence", "name": "'any'-typed values and the operations on them", - "status": "dynamic-only", + "status": "unsupported", "code": "SC2011" }, { "id": "diagnostic.sc2012", "kind": "diagnostic-fence", - "name": "standard-library surface that runs in the embedded dynamic engine", - "status": "dynamic-only", + "name": "standard-library forms without native lowering", + "status": "unsupported", "code": "SC2012" }, { "id": "diagnostic.sc2013", "kind": "diagnostic-fence", - "name": "npm package imports and values (the package's implementation runs in the embedded engine)", - "status": "dynamic-only", + "name": "npm package imports and values without native lowering", + "status": "unsupported", "code": "SC2013" }, { @@ -293,13 +292,6 @@ "status": "unsupported", "code": "SC2020" }, - { - "id": "diagnostic.sc2030", - "kind": "diagnostic-fence", - "name": "npm package code that cannot be embedded for the dynamic engine", - "status": "unsupported", - "code": "SC2030" - }, { "id": "node-builtin.assert", "kind": "node-builtin", @@ -1283,7 +1275,7 @@ "name": "module.createRequire", "status": "unsupported", "code": "SC2020", - "note": "the lowered shape is a const binding (or a proven stable top-level let/var) over createRequire(import.meta.url) (or __filename) whose require calls take STATIC string literals — builtins, project modules (including #imports), relative .json documents, --npm-static packages, and installed npm packages under --dynamic resolve at build time; dynamic specifiers cannot exist in a compiled binary's fixed module graph" + "note": "the lowered shape is a const binding (or a proven stable top-level let/var) over createRequire(import.meta.url) (or __filename) whose require calls take STATIC string literals — builtins, project modules (including #imports), relative .json documents and natively compiled npm packages resolve at build time; dynamic specifiers cannot exist in a compiled binary's fixed module graph" }, { "id": "node-builtin.module.isBuiltin", @@ -2441,7 +2433,7 @@ "name": "AbortSignal constructor", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; Node exposes the interface object but constructing it throws; neither compiler tier currently preserves that constructor behavior" + "note": "Node 24.15.0 / Undici 7.24.4; Node exposes the interface object but constructing it throws; the compiler does not preserve that constructor behavior" }, { "id": "stdlib.abort-signal.dispatch-event", @@ -2843,7 +2835,7 @@ "name": "RequestInit.cache", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; neither compiler tier preserves this RequestInit member's conversion or transport behavior" + "note": "Node 24.15.0 / Undici 7.24.4; the compiler does not preserve this RequestInit member's conversion or transport behavior" }, { "id": "stdlib.fetch.request-init.credentials", @@ -2851,15 +2843,15 @@ "name": "RequestInit.credentials", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; neither compiler tier preserves this RequestInit member's conversion or transport behavior" + "note": "Node 24.15.0 / Undici 7.24.4; the compiler does not preserve this RequestInit member's conversion or transport behavior" }, { "id": "stdlib.fetch.request-init.dispatcher", "kind": "stdlib", "name": "RequestInit.dispatcher", - "status": "dynamic-only", + "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; the dynamic tier recognizes Vercel CLI's EnvProxyDispatcher and applies equivalent native environment-proxy routing" + "note": "Node 24.15.0 / Undici 7.24.4; custom dispatchers are unsupported; native environment-proxy routing uses NODE_USE_ENV_PROXY" }, { "id": "stdlib.fetch.request-init.duplex", @@ -2881,7 +2873,7 @@ "name": "RequestInit.integrity", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; neither compiler tier preserves this RequestInit member's conversion or transport behavior" + "note": "Node 24.15.0 / Undici 7.24.4; the compiler does not preserve this RequestInit member's conversion or transport behavior" }, { "id": "stdlib.fetch.request-init.keepalive", @@ -2889,7 +2881,7 @@ "name": "RequestInit.keepalive", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; neither compiler tier preserves this RequestInit member's conversion or transport behavior" + "note": "Node 24.15.0 / Undici 7.24.4; the compiler does not preserve this RequestInit member's conversion or transport behavior" }, { "id": "stdlib.fetch.request-init.method", @@ -2904,7 +2896,7 @@ "name": "RequestInit.mode", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; neither compiler tier preserves this RequestInit member's conversion or transport behavior" + "note": "Node 24.15.0 / Undici 7.24.4; the compiler does not preserve this RequestInit member's conversion or transport behavior" }, { "id": "stdlib.fetch.request-init.priority", @@ -2912,7 +2904,7 @@ "name": "RequestInit.priority", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; neither compiler tier preserves this RequestInit member's conversion or transport behavior" + "note": "Node 24.15.0 / Undici 7.24.4; the compiler does not preserve this RequestInit member's conversion or transport behavior" }, { "id": "stdlib.fetch.request-init.redirect", @@ -2927,7 +2919,7 @@ "name": "RequestInit.referrer", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; neither compiler tier preserves this RequestInit member's conversion or transport behavior" + "note": "Node 24.15.0 / Undici 7.24.4; the compiler does not preserve this RequestInit member's conversion or transport behavior" }, { "id": "stdlib.fetch.request-init.referrerPolicy", @@ -2935,7 +2927,7 @@ "name": "RequestInit.referrerPolicy", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; neither compiler tier preserves this RequestInit member's conversion or transport behavior" + "note": "Node 24.15.0 / Undici 7.24.4; the compiler does not preserve this RequestInit member's conversion or transport behavior" }, { "id": "stdlib.fetch.request-init.signal", @@ -2950,7 +2942,7 @@ "name": "RequestInit.window", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; neither compiler tier preserves this RequestInit member's conversion or transport behavior" + "note": "Node 24.15.0 / Undici 7.24.4; the compiler does not preserve this RequestInit member's conversion or transport behavior" }, { "id": "stdlib.headers.append", @@ -2977,7 +2969,7 @@ "id": "stdlib.headers.entries", "kind": "stdlib", "name": "Headers.entries", - "status": "dynamic-only", + "status": "unsupported", "code": "SC2020", "note": "Node 24.15.0 / Undici 7.24.4; native Headers iteration does not yet expose a static iterator handle" }, @@ -3013,7 +3005,7 @@ "id": "stdlib.headers.keys", "kind": "stdlib", "name": "Headers.keys", - "status": "dynamic-only", + "status": "unsupported", "code": "SC2020", "note": "Node 24.15.0 / Undici 7.24.4; native Headers iteration does not yet expose a static iterator handle" }, @@ -3028,7 +3020,7 @@ "id": "stdlib.headers.symbol.iterator", "kind": "stdlib", "name": "Headers.[Symbol.iterator]", - "status": "dynamic-only", + "status": "unsupported", "code": "SC2020", "note": "Node 24.15.0 / Undici 7.24.4; native Headers iteration does not expose an engine-free iterator handle" }, @@ -3036,7 +3028,7 @@ "id": "stdlib.headers.values", "kind": "stdlib", "name": "Headers.values", - "status": "dynamic-only", + "status": "unsupported", "code": "SC2020", "note": "Node 24.15.0 / Undici 7.24.4; native Headers iteration does not yet expose a static iterator handle" }, @@ -3158,105 +3150,105 @@ "kind": "stdlib", "name": "Math.abs", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.acos", "kind": "stdlib", "name": "Math.acos", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.acosh", "kind": "stdlib", "name": "Math.acosh", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.asin", "kind": "stdlib", "name": "Math.asin", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.asinh", "kind": "stdlib", "name": "Math.asinh", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.atan", "kind": "stdlib", "name": "Math.atan", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.atan2", "kind": "stdlib", "name": "Math.atan2", "status": "static", - "note": "compiles statically at arity 2; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 2; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.atanh", "kind": "stdlib", "name": "Math.atanh", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.cbrt", "kind": "stdlib", "name": "Math.cbrt", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.ceil", "kind": "stdlib", "name": "Math.ceil", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.clz32", "kind": "stdlib", "name": "Math.clz32", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.cos", "kind": "stdlib", "name": "Math.cos", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.cosh", "kind": "stdlib", "name": "Math.cosh", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.exp", "kind": "stdlib", "name": "Math.exp", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.expm1", "kind": "stdlib", "name": "Math.expm1", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.floor", @@ -3270,7 +3262,7 @@ "kind": "stdlib", "name": "Math.fround", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.hypot", @@ -3284,35 +3276,35 @@ "kind": "stdlib", "name": "Math.imul", "status": "static", - "note": "compiles statically at arity 2; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 2; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.log", "kind": "stdlib", "name": "Math.log", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.log10", "kind": "stdlib", "name": "Math.log10", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.log1p", "kind": "stdlib", "name": "Math.log1p", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.log2", "kind": "stdlib", "name": "Math.log2", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.max", @@ -3333,7 +3325,7 @@ "kind": "stdlib", "name": "Math.pow", "status": "static", - "note": "compiles statically at arity 2; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 2; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.random", @@ -3347,56 +3339,56 @@ "kind": "stdlib", "name": "Math.round", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.sign", "kind": "stdlib", "name": "Math.sign", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.sin", "kind": "stdlib", "name": "Math.sin", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.sinh", "kind": "stdlib", "name": "Math.sinh", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.sqrt", "kind": "stdlib", "name": "Math.sqrt", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.tan", "kind": "stdlib", "name": "Math.tan", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.tanh", "kind": "stdlib", "name": "Math.tanh", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.math.trunc", "kind": "stdlib", "name": "Math.trunc", "status": "static", - "note": "compiles statically at arity 1; other declared call shapes run only in the embedded dynamic engine (SC2012 without --dynamic)" + "note": "compiles statically at arity 1; other declared call shapes are refused with SC2012" }, { "id": "stdlib.number.toFixed", @@ -3409,14 +3401,14 @@ "id": "stdlib.number.toPrecision", "kind": "stdlib", "name": "number.prototype.toPrecision", - "status": "dynamic-only", + "status": "unsupported", "code": "SC2012" }, { "id": "stdlib.number.toString", "kind": "stdlib", "name": "number.prototype.toString", - "status": "dynamic-only", + "status": "unsupported", "code": "SC2012" }, { @@ -3432,7 +3424,7 @@ "name": "ReadableStreamDefaultController constructor", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; the constructor object is unavailable in the dynamic engine; static controller handles come from underlying-source callbacks" + "note": "Node 24.15.0 / Undici 7.24.4; controller handles come from underlying-source callbacks; the constructor object is unsupported" }, { "id": "stdlib.readable-stream-default-controller.desired-size", @@ -3475,7 +3467,7 @@ "name": "ReadableStreamDefaultReader constructor", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; the constructor object is unavailable in the dynamic engine; static reader handles come from ReadableStream.getReader()" + "note": "Node 24.15.0 / Undici 7.24.4; reader handles come from ReadableStream.getReader(); the constructor object is unsupported" }, { "id": "stdlib.readable-stream-default-reader.read", @@ -3530,7 +3522,7 @@ "id": "stdlib.readable-stream.pipeThrough", "kind": "stdlib", "name": "ReadableStream.pipeThrough", - "status": "dynamic-only", + "status": "unsupported", "code": "SC2020", "note": "Node 24.15.0 / Undici 7.24.4; the wider Web Streams graph is outside the native readable-stream slice" }, @@ -3540,7 +3532,7 @@ "name": "ReadableStream.pipeTo", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; the dynamic Web Streams bridge exposes only an explicit unsupported stub for this operation" + "note": "Node 24.15.0 / Undici 7.24.4; this operation is outside the native readable-stream implementation" }, { "id": "stdlib.readable-stream.symbol.asyncIterator", @@ -3548,7 +3540,7 @@ "name": "ReadableStream.[Symbol.asyncIterator]", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; direct for-await consumption compiles statically; explicit symbol access and stored iterator handles have no compiler lowering in either tier" + "note": "Node 24.15.0 / Undici 7.24.4; direct for-await consumption compiles statically; explicit symbol access and stored iterator handles have no compiler lowering" }, { "id": "stdlib.readable-stream.tee", @@ -3556,15 +3548,15 @@ "name": "ReadableStream.tee", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; the dynamic Web Streams bridge exposes only an explicit unsupported stub for this operation" + "note": "Node 24.15.0 / Undici 7.24.4; this operation is outside the native readable-stream implementation" }, { "id": "stdlib.readable-stream.values", "kind": "stdlib", "name": "ReadableStream.values", - "status": "dynamic-only", + "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; direct for-await consumption compiles statically; storing or driving the first-class iterator handle requires --dynamic" + "note": "Node 24.15.0 / Undici 7.24.4; direct for-await consumption compiles statically; storing or driving the first-class iterator handle is unsupported" }, { "id": "stdlib.request.arrayBuffer", @@ -3579,7 +3571,7 @@ "name": "Request.attribute", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; typed source has no compiler bridge for this interface in either tier" + "note": "Node 24.15.0 / Undici 7.24.4; typed source has no compiler bridge for this interface" }, { "id": "stdlib.request.blob", @@ -3587,7 +3579,7 @@ "name": "Request.blob", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; typed source has no compiler bridge for this interface in either tier" + "note": "Node 24.15.0 / Undici 7.24.4; typed source has no compiler bridge for this interface" }, { "id": "stdlib.request.body", @@ -3623,7 +3615,7 @@ "name": "Request.clone", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; typed source has no compiler bridge for this interface in either tier" + "note": "Node 24.15.0 / Undici 7.24.4; typed source has no compiler bridge for this interface" }, { "id": "stdlib.request.constructor", @@ -3659,7 +3651,7 @@ "name": "Request.formData", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; typed source has no compiler bridge for this interface in either tier" + "note": "Node 24.15.0 / Undici 7.24.4; typed source has no compiler bridge for this interface" }, { "id": "stdlib.request.headers", @@ -3793,7 +3785,7 @@ "name": "Response.blob", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; the dynamic fetch bridge does not implement this Response operation" + "note": "Node 24.15.0 / Undici 7.24.4; the native fetch runtime does not implement this Response operation" }, { "id": "stdlib.response.body", @@ -3822,7 +3814,7 @@ "name": "Response.clone", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; the dynamic fetch bridge does not implement this Response operation" + "note": "Node 24.15.0 / Undici 7.24.4; the native fetch runtime does not implement this Response operation" }, { "id": "stdlib.response.constructor", @@ -3837,7 +3829,7 @@ "name": "Response.formData", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; the dynamic fetch bridge does not implement this Response operation" + "note": "Node 24.15.0 / Undici 7.24.4; the native fetch runtime does not implement this Response operation" }, { "id": "stdlib.response.headers", @@ -3873,7 +3865,7 @@ "name": "Response.error", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; Response static constructor-object operations have no compiler lowering in either tier" + "note": "Node 24.15.0 / Undici 7.24.4; Response static constructor-object operations have no compiler lowering" }, { "id": "stdlib.response.static.json", @@ -3881,7 +3873,7 @@ "name": "Response.json", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; Response static constructor-object operations have no compiler lowering in either tier" + "note": "Node 24.15.0 / Undici 7.24.4; Response static constructor-object operations have no compiler lowering" }, { "id": "stdlib.response.static.redirect", @@ -3889,7 +3881,7 @@ "name": "Response.redirect", "status": "unsupported", "code": "SC2020", - "note": "Node 24.15.0 / Undici 7.24.4; Response static constructor-object operations have no compiler lowering in either tier" + "note": "Node 24.15.0 / Undici 7.24.4; Response static constructor-object operations have no compiler lowering" }, { "id": "stdlib.response.status", @@ -3916,7 +3908,7 @@ "id": "stdlib.response.type", "kind": "stdlib", "name": "Response.type", - "status": "dynamic-only", + "status": "unsupported", "code": "SC2020", "note": "Node 24.15.0 / Undici 7.24.4; the member is outside the native static handle projection" }, diff --git a/packages/compiler/test/buffer-from-dynamic.test.ts b/packages/compiler/test/buffer-from-dynamic.test.ts index c747f18a7..67caa61b5 100644 --- a/packages/compiler/test/buffer-from-dynamic.test.ts +++ b/packages/compiler/test/buffer-from-dynamic.test.ts @@ -28,7 +28,6 @@ console.log("after"); ); const result = await compile(entry, { backend, - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", outDir: dir, outPath: join(dir, "program"), diff --git a/packages/compiler/test/bytes-element-emission.test.ts b/packages/compiler/test/bytes-element-emission.test.ts index 80e3e0ecb..bc746946b 100644 --- a/packages/compiler/test/bytes-element-emission.test.ts +++ b/packages/compiler/test/bytes-element-emission.test.ts @@ -75,7 +75,7 @@ function fixture(): IrModule { ); return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "__main", functions: [{ name: "__main", params: [], returnType: VOID, locals, body, loc }], @@ -145,7 +145,7 @@ function receiverReassignmentFixture(): IrModule { ]; return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "__main", functions: [{ name: "__main", params: [], returnType: VOID, locals, body, loc }], @@ -212,7 +212,7 @@ function integerLoopFixture(mutatesIndex = false): IrModule { { kind: "bytesSet", arr: bytesRef(), index: indexRef(), value: ref("sum"), loc }, ); return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "__main", functions: [ @@ -336,7 +336,7 @@ test("large record clones stay outlined while small clones remain inlineable", ( const fields = Array.from({ length: count }, (_, i) => ({ name: `f${i}`, type: F64 })); const type = { kind: "record", shapeId: id } as const; return { - irVersion: 15, + irVersion: 16, sourceFile: "record-clone.ts", entry: "__main", records: [{ id, fields }], diff --git a/packages/compiler/test/call-lifetimes.test.ts b/packages/compiler/test/call-lifetimes.test.ts index 646e901c9..df26e231e 100644 --- a/packages/compiler/test/call-lifetimes.test.ts +++ b/packages/compiler/test/call-lifetimes.test.ts @@ -13,7 +13,7 @@ async function lower(source: string): Promise { const entry = join(dir, "main.ts"), outPath = join(dir, "main.ir.json"); await writeFile(entry, source); - const result = await compile(entry, { outDir: dir, outPath, outputKind: "ir", dynamic: false }); + const result = await compile(entry, { outDir: dir, outPath, outputKind: "ir" }); if (!result.ok) throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); const mod = deserializeModule(await readFile(outPath, "utf8")); diff --git a/packages/compiler/test/cc-driver.test.ts b/packages/compiler/test/cc-driver.test.ts index 4bf484d31..8ae06c524 100644 --- a/packages/compiler/test/cc-driver.test.ts +++ b/packages/compiler/test/cc-driver.test.ts @@ -382,7 +382,7 @@ describe.skipIf(!zigOnPath())("zig cc builds (zig on PATH)", () => { expect(stdout).toBe("zigcc says hi\n"); }); - test("host-native zigcc builds dynamic, TLS, zlib, and native fetch together", async () => { + test("host-native zigcc builds TLS, zlib, and native fetch together", async () => { const dir = await mkdtemp(join(tmpdir(), "scr-zigcc-host-features-")); const cPath = join(dir, "program.c"); await writeFile( @@ -391,7 +391,7 @@ describe.skipIf(!zigOnPath())("zig cc builds (zig on PATH)", () => { ); const outPath = join(dir, "program"); await withCcEnv("zigcc", undefined, () => - compileC({ cPath, outPath, dynamic: true, tls: true, zlib: true, fetch: true }), + compileC({ cPath, outPath, tls: true, zlib: true, fetch: true }), ); const { stdout } = await execFileAsync(outPath); expect(stdout).toBe("zigcc host features ok\n"); @@ -450,14 +450,15 @@ exit 99 const cPath = join(dir, "program.c"); await writeFile(cPath, "int main(void) { return 0; }\n"); await withCcEnv("zigcc", undefined, () => - compileC({ cPath, outPath: join(dir, "program"), dynamic: true, tls: true, zlib: true }), + compileC({ cPath, outPath: join(dir, "program"), regex: true, tls: true, zlib: true }), ); const invocations = (await readFile(logPath, "utf8")).trim().split(/\r?\n/); - expect(invocations.some((line) => /^cc .*quickjs-ng/.test(line))).toBe(true); + expect(invocations.some((line) => /^cc .*quickjs-ng.*libregexp\.c/.test(line))).toBe(true); + expect(invocations.some((line) => /^cc .*quickjs-ng.*quickjs\.c/.test(line))).toBe(false); expect(invocations.some((line) => /^cc .*mbedtls.*library/.test(line))).toBe(true); expect(invocations.some((line) => /^cc .*vendor.*zlib/.test(line))).toBe(true); - expect(invocations.some((line) => /^ar rcs .*libqjs\.a/.test(line))).toBe(true); + expect(invocations.some((line) => /^ar rcs .*libqjs\.a/.test(line))).toBe(false); expect(invocations.some((line) => /^ar rcs .*libmbedtls\.a/.test(line))).toBe(true); expect(invocations.some((line) => /(?:^|\s)-lz(?:\s|$)/.test(line))).toBe(false); expect(await readFile(unexpectedToolPath).catch(() => "")).toBe(""); @@ -528,7 +529,7 @@ exit 99 expect(undefinedSymbols).not.toMatch(/\b_?(?:fputs|abort)\b/); }); - test("linux cross builds accept fetch natively (no libcurl); the curl reference keeps its soname stub", async () => { + test("linux cross builds accept fetch natively (no libcurl)", async () => { const dir = await mkdtemp(join(tmpdir(), "scr-zigcc-gate-")); const cPath = join(dir, "program.c"); // Reference the fetch unit the way every emitted fetch program does @@ -543,27 +544,14 @@ exit 99 // The NATIVE fetch rides the socket units (scr_net/scr_http/scr_tls // + the vendored zlib objects) — the produced ELF carries NO // libcurl dependency at all. - await compileC({ cPath, outPath, dynamic: true, fetch: true }); + await compileC({ cPath, outPath, fetch: true }); const elf = await readFile(outPath); expect([...elf.subarray(0, 4)]).toEqual([0x7f, 0x45, 0x4c, 0x46]); // \x7fELF expect(elf.includes("libcurl.so.4")).toBe(false); - // The retired curl REFERENCE (SCRIPTC_FETCH_CURL=1) still links the - // generated import stub: the binary records DT_NEEDED libcurl.so.4 - // — the string sits verbatim in the ELF's dynamic string table — - // and binds the target system's real libcurl at load time. - process.env["SCRIPTC_FETCH_CURL"] = "1"; - try { - await compileC({ cPath, outPath, dynamic: true, fetch: true }); - const curlElf = await readFile(outPath); - expect([...curlElf.subarray(0, 4)]).toEqual([0x7f, 0x45, 0x4c, 0x46]); - expect(curlElf.includes("libcurl.so.4")).toBe(true); - } finally { - delete process.env["SCRIPTC_FETCH_CURL"]; - } }); }, 600_000); - test("cross build for x86_64-windows-gnu produces a PE and accepts events/net/http/dgram/tls/watch/zlib/--dynamic/fetch", async () => { + test("cross build for x86_64-windows-gnu produces a PE and accepts events/net/http/dgram/tls/watch/zlib/fetch", async () => { const dir = await mkdtemp(join(tmpdir(), "scr-zigcc-win-")); const cPath = join(dir, "program.c"); const caProbePath = join(dir, "ca-eku.c"); @@ -605,28 +593,11 @@ exit 99 const magic2 = tlsPe.subarray(0, 2); expect([...magic2]).toEqual([0x4d, 0x5a]); expect(tlsPe.includes("CRYPT32.dll")).toBe(true); - // --dynamic: the engine archive cross-builds for the windows triple - // (buildEngineArchiveCross), the island's win32 arms (_msize, the - // winsock hostname) compile, and the link carries the 8MB PE stack - // reserve for ISL_MAIN_STACK_BUDGET. The Windows differential lane - // verifies the @dynamic corpus at runtime against the box's Node. - await compileC({ cPath, outPath, dynamic: true }); - const magic3 = (await readFile(outPath)).subarray(0, 2); - expect([...magic3]).toEqual([0x4d, 0x5a]); // fetch: NATIVE on win32 too (the socket units' win32 arms + the - // vendored zlib objects — no libcurl contract needed). The retired - // curl reference's soname-stub arm stays linux-only. - await compileC({ cPath, outPath, dynamic: true, fetch: true }); + // vendored zlib objects — no libcurl dependency). + await compileC({ cPath, outPath, fetch: true }); const magic4 = (await readFile(outPath)).subarray(0, 2); expect([...magic4]).toEqual([0x4d, 0x5a]); - process.env["SCRIPTC_FETCH_CURL"] = "1"; - try { - await expect(compileC({ cPath, outPath, dynamic: true, fetch: true })).rejects.toThrow( - /fetch.*not supported under a cross target/s, - ); - } finally { - delete process.env["SCRIPTC_FETCH_CURL"]; - } }); }, 600_000); @@ -685,16 +656,4 @@ exit 99 const magic = (await readFile(outPath)).subarray(0, 4); expect([...magic]).toEqual([0x7f, 0x45, 0x4c, 0x46]); // \x7fELF }); - - test("cross builds accept --dynamic (the engine archive builds per target, no CMake)", async () => { - const dir = await mkdtemp(join(tmpdir(), "scr-zigcc-dyn-")); - const cPath = join(dir, "program.c"); - await writeFile(cPath, HELLO_C); - const outPath = join(dir, "program"); - await withCcEnv("zigcc", "aarch64-linux-gnu.2.36", () => - compileC({ cPath, outPath, dynamic: true }), - ); - const magic = (await readFile(outPath)).subarray(0, 4); - expect([...magic]).toEqual([0x7f, 0x45, 0x4c, 0x46]); // \x7fELF - }, 600_000); }); diff --git a/packages/compiler/test/class-field-updates.test.ts b/packages/compiler/test/class-field-updates.test.ts index 986adef2a..fa3d3d5a4 100644 --- a/packages/compiler/test/class-field-updates.test.ts +++ b/packages/compiler/test/class-field-updates.test.ts @@ -21,7 +21,6 @@ test.each(["Child.count++", "++Child.count", "Child.count--", "--Child.count"])( (d) => d.code === "SC1090" && d.message.includes("assigning the inherited static"), ).length, ).toBe(2); - expect(coverage.stats.statementsIsland).toBe(0); } finally { rmSync(dir, { recursive: true, force: true }); } diff --git a/packages/compiler/test/class-narrowing-emission.test.ts b/packages/compiler/test/class-narrowing-emission.test.ts index 834072701..14b8e2c6e 100644 --- a/packages/compiler/test/class-narrowing-emission.test.ts +++ b/packages/compiler/test/class-narrowing-emission.test.ts @@ -25,7 +25,6 @@ console.log(count(new Child()), count(new Base())); outDir: dir, outPath, outputKind: "llvm", - dynamic: false, }); expect(result.ok, JSON.stringify(result.diagnostics)).toBe(true); const llvm = await readFile(outPath, "utf8"); diff --git a/packages/compiler/test/collection-ingestion.test.ts b/packages/compiler/test/collection-ingestion.test.ts index 8e6887f38..e7d741f2a 100644 --- a/packages/compiler/test/collection-ingestion.test.ts +++ b/packages/compiler/test/collection-ingestion.test.ts @@ -16,7 +16,7 @@ test("Map iterator construction refuses different reference layouts", () => { console.log(new Map(records.entries()).size); `, ); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics).toEqual( expect.arrayContaining([ @@ -62,7 +62,6 @@ test("array and Map consumers validate hidden reference layouts before exposing `, ); const result = await compile(entry, { - dynamic: false, optimization: "dev", sanitize: process.env["SCRIPTC_SAN"] === "1", outDir: dir, diff --git a/packages/compiler/test/collection-keys.test.ts b/packages/compiler/test/collection-keys.test.ts index eb7c3354d..d73655ef1 100644 --- a/packages/compiler/test/collection-keys.test.ts +++ b/packages/compiler/test/collection-keys.test.ts @@ -54,7 +54,7 @@ test("checked collection slots refuse snapshot and adapting reference conversion set.add(error); `, ); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics).toHaveLength(6); for (const diagnostic of coverage.diagnostics) { diff --git a/packages/compiler/test/create-require-native-addon.test.ts b/packages/compiler/test/create-require-native-addon.test.ts index 2d4bdf8a3..fa56132fe 100644 --- a/packages/compiler/test/create-require-native-addon.test.ts +++ b/packages/compiler/test/create-require-native-addon.test.ts @@ -21,74 +21,70 @@ function fixture() { return dir; } -for (const dynamic of [false, true]) { - test.for(["relative", "extensionless", "directory", "absolute", "inline"] as const)( - `createRequire explains native addon migration: %s (dynamic=${dynamic})`, - async (form) => { - const dir = fixture(); - const spec = - form === "absolute" - ? join(dir, "native", "addon.node") - : form === "extensionless" - ? "./native/addon" - : form === "directory" - ? "./native" - : "./native/addon.node"; - const call = - form === "inline" - ? `createRequire(import.meta.url)(${JSON.stringify(spec)})` - : `require(${JSON.stringify(spec)})`; - const source = [ - 'import { createRequire } from "node:module";', - "const require = createRequire(import.meta.url);", - `const native = ${call} as { value: number };`, - "console.log(native.value);", - ].join("\n"); - const entry = join(dir, "main.mts"); - writeFileSync(entry, source); - const result = await compile(entry, { - dynamic, - outputKind: "ir", - outDir: dir, - outPath: join(dir, "out.json"), - }); - expect(result.ok).toBe(false); - if (result.ok) return; - const diagnostic = result.diagnostics.find( - (diag) => diag.code === "SC2020" && diag.message.includes("native addon"), - ); - expect(diagnostic, JSON.stringify(result.diagnostics)).toBeDefined(); - expect(diagnostic?.message).toContain(spec); - expect(diagnostic?.hint).toContain("--ffi"); - expect(diagnostic?.hint).toContain("C ABI"); - expect(diagnostic?.hint).toContain("https://scriptc.dev/ffi#replacing-a-node-api-addon"); - expect(source.slice(diagnostic?.loc.start, diagnostic?.loc.end)).toBe(call); - }, - ); - - test(`a JavaScript directory named .node is still a program module (dynamic=${dynamic})`, async () => { +test.for(["relative", "extensionless", "directory", "absolute", "inline"] as const)( + `createRequire explains native addon migration: %s`, + async (form) => { const dir = fixture(); - mkdirSync(join(dir, "javascript.node")); - writeFileSync(join(dir, "javascript.node", "index.js"), "exports.value = 42;\n"); + const spec = + form === "absolute" + ? join(dir, "native", "addon.node") + : form === "extensionless" + ? "./native/addon" + : form === "directory" + ? "./native" + : "./native/addon.node"; + const call = + form === "inline" + ? `createRequire(import.meta.url)(${JSON.stringify(spec)})` + : `require(${JSON.stringify(spec)})`; + const source = [ + 'import { createRequire } from "node:module";', + "const require = createRequire(import.meta.url);", + `const native = ${call} as { value: number };`, + "console.log(native.value);", + ].join("\n"); const entry = join(dir, "main.mts"); - writeFileSync( - entry, - [ - 'import { createRequire } from "node:module";', - "const require = createRequire(import.meta.url);", - 'const javascript = require("./javascript.node") as { value: number };', - "console.log(javascript.value);", - ].join("\n"), - ); + writeFileSync(entry, source); const result = await compile(entry, { - dynamic, outputKind: "ir", outDir: dir, outPath: join(dir, "out.json"), }); - expect(result.ok, result.ok ? "" : JSON.stringify(result.diagnostics)).toBe(true); + expect(result.ok).toBe(false); + if (result.ok) return; + const diagnostic = result.diagnostics.find( + (diag) => diag.code === "SC2020" && diag.message.includes("native addon"), + ); + expect(diagnostic, JSON.stringify(result.diagnostics)).toBeDefined(); + expect(diagnostic?.message).toContain(spec); + expect(diagnostic?.hint).toContain("--ffi"); + expect(diagnostic?.hint).toContain("C ABI"); + expect(diagnostic?.hint).toContain("https://scriptc.dev/ffi#replacing-a-node-api-addon"); + expect(source.slice(diagnostic?.loc.start, diagnostic?.loc.end)).toBe(call); + }, +); + +test(`a JavaScript directory named .node is still a program module`, async () => { + const dir = fixture(); + mkdirSync(join(dir, "javascript.node")); + writeFileSync(join(dir, "javascript.node", "index.js"), "exports.value = 42;\n"); + const entry = join(dir, "main.mts"); + writeFileSync( + entry, + [ + 'import { createRequire } from "node:module";', + "const require = createRequire(import.meta.url);", + 'const javascript = require("./javascript.node") as { value: number };', + "console.log(javascript.value);", + ].join("\n"), + ); + const result = await compile(entry, { + outputKind: "ir", + outDir: dir, + outPath: join(dir, "out.json"), }); -} + expect(result.ok, result.ok ? "" : JSON.stringify(result.diagnostics)).toBe(true); +}); test("a missing .node path keeps the unresolved-module diagnostic", async () => { const dir = fixture(); diff --git a/packages/compiler/test/deep-equality.test.ts b/packages/compiler/test/deep-equality.test.ts index 8922db6e7..7ddbeb528 100644 --- a/packages/compiler/test/deep-equality.test.ts +++ b/packages/compiler/test/deep-equality.test.ts @@ -29,7 +29,6 @@ console.log("after"); `, ); const result = await compile(entry, { - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", outDir: dir, outPath: join(dir, "program"), diff --git a/packages/compiler/test/discriminated-json.test.ts b/packages/compiler/test/discriminated-json.test.ts index 179739a8e..d7d92c906 100644 --- a/packages/compiler/test/discriminated-json.test.ts +++ b/packages/compiler/test/discriminated-json.test.ts @@ -47,7 +47,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: join(dir, "program"), backend, - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", }); if (!built.ok) throw new Error(built.diagnostics.map((d) => d.message).join("\n")); diff --git a/packages/compiler/test/emit-llvm.test.ts b/packages/compiler/test/emit-llvm.test.ts index 0f8d85c34..2f1366b43 100644 --- a/packages/compiler/test/emit-llvm.test.ts +++ b/packages/compiler/test/emit-llvm.test.ts @@ -35,7 +35,7 @@ test("strings: literals, concat in a loop, toString, RC-clean under audit", asyn // while (i < 3) { acc = acc + ("-" + i); i = i + 1; } // console.log(acc, acc === "x-0-1-2", "α∂" < "β"); const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: "s.ts", entry: "__main", functions: [ @@ -137,7 +137,7 @@ test("short-circuit: right operand of && only evaluates when left is true", asyn // if (false && sideEffect()) {} ; if (true || sideEffect()) {} // console.log("done") const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: "l.ts", entry: "__main", functions: [ @@ -227,7 +227,7 @@ test("string params: callee owns and releases; returns transfer ownership", asyn // function greet(who: string): string { return "hi " + who; } // console.log(greet("world")); const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: "p.ts", entry: "__main", functions: [ diff --git a/packages/compiler/test/emitter-flex-events.test.ts b/packages/compiler/test/emitter-flex-events.test.ts index 00fda2d91..8677e9ecd 100644 --- a/packages/compiler/test/emitter-flex-events.test.ts +++ b/packages/compiler/test/emitter-flex-events.test.ts @@ -39,13 +39,12 @@ test.each([ try { const entry = join(dir, "main.cjs"); writeFileSync(entry, `const { EventEmitter } = require('node:events');\n${source}\n`); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); const diagnostics = [...coverage.diagnostics, ...(coverage.runtimeFences ?? [])]; expect( diagnostics.some((d) => d.code === "SC2020" && d.message.includes(message!)), JSON.stringify(diagnostics), ).toBe(true); - expect(coverage.stats.statementsIsland).toBe(0); } finally { rmSync(dir, { recursive: true, force: true }); } diff --git a/packages/compiler/test/fixtures/fib-ir.ts b/packages/compiler/test/fixtures/fib-ir.ts index 5d68f8d78..8daaa91d5 100644 --- a/packages/compiler/test/fixtures/fib-ir.ts +++ b/packages/compiler/test/fixtures/fib-ir.ts @@ -17,7 +17,7 @@ const n = (localId: string): IrExpr => ({ kind: "varRef", localId, type: F64, lo const num = (value: number): IrExpr => ({ kind: "numLit", value, type: F64, loc }); export const fibModule: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: "fib.ts", entry: "__main", functions: [ diff --git a/packages/compiler/test/fromcharcode-emission.test.ts b/packages/compiler/test/fromcharcode-emission.test.ts index 2b4fb75d5..bab64ce3e 100644 --- a/packages/compiler/test/fromcharcode-emission.test.ts +++ b/packages/compiler/test/fromcharcode-emission.test.ts @@ -7,7 +7,7 @@ test("scalar fromCharCode avoids a heap argument pack in LLVM", () => { const loc = { file: "scalar-char.ts", start: 0, end: 0 }; const value: IrExpr = { kind: "numLit", value: 65, type: F64, loc }; const mod: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "__main", globals: [], diff --git a/packages/compiler/test/input-lifetime-emission.test.ts b/packages/compiler/test/input-lifetime-emission.test.ts index e24e73d69..c71bab346 100644 --- a/packages/compiler/test/input-lifetime-emission.test.ts +++ b/packages/compiler/test/input-lifetime-emission.test.ts @@ -15,7 +15,6 @@ async function emit(source: string): Promise { outDir: dir, outPath: output, outputKind: "ir", - dynamic: false, }); if (!result.ok) throw new Error(result.diagnostics.map((d) => d.message).join("\n")); return emitLlvmModule(deserializeModule(await readFile(output, "utf8"))); diff --git a/packages/compiler/test/ir.test.ts b/packages/compiler/test/ir.test.ts index 2fd3c43f5..7d7efdb01 100644 --- a/packages/compiler/test/ir.test.ts +++ b/packages/compiler/test/ir.test.ts @@ -22,7 +22,7 @@ test("fib module JSON round-trips", () => { test("validator rejects type mismatches and bad references", () => { const loc = { file: "t.ts", start: 0, end: 0 }; const bad: IrModule = { - irVersion: 15, + irVersion: 16, sourceFile: "t.ts", entry: "__main", functions: [ @@ -108,7 +108,7 @@ test("serializer round-trips ±Infinity and NaN", () => { }); test("deserializer rejects the previous IR version", () => { - const json = serializeModule(fibModule).replace('"irVersion": 15', '"irVersion": 13'); + const json = serializeModule(fibModule).replace('"irVersion": 16', '"irVersion": 13'); expect(() => deserializeModule(json)).toThrow(/version mismatch/); }); diff --git a/packages/compiler/test/js-override-returns.test.ts b/packages/compiler/test/js-override-returns.test.ts index ea3a14881..4e8b41454 100644 --- a/packages/compiler/test/js-override-returns.test.ts +++ b/packages/compiler/test/js-override-returns.test.ts @@ -44,13 +44,11 @@ catch (error) { console.log("short", String(error).includes("SC1090")); } console.log("after"); `, ); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.diagnostics).toEqual([]); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.runtimeFences ?? []).toEqual([]); const result = await compile(entry, { backend, - dynamic: false, sanitize, outDir: dir, outPath: join(dir, "program"), @@ -96,12 +94,11 @@ catch (error) { console.log("super", String(error).includes("SC1090")); } console.log("after"); `, ); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.diagnostics).toEqual([]); expect(coverage.runtimeFences ?? []).toEqual([]); const result = await compile(entry, { backend: "llvm", - dynamic: false, sanitize, outDir: dir, outPath: join(dir, "program"), @@ -133,7 +130,7 @@ test.each([ try { const entry = join(dir, "main.cjs"); writeFileSync(entry, "// @ts-nocheck\n" + source + "\nnew Derived().method();\n"); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); const diagnostics = [...coverage.diagnostics, ...(coverage.runtimeFences ?? [])]; expect( diagnostics.some( @@ -162,7 +159,7 @@ test.each([ entry, `// @ts-nocheck\n${importedBase || base}\nclass Derived extends Base { method() { return 'x'; } }\nnew Derived();\n`, ); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); const diagnostics = [...coverage.diagnostics, ...(coverage.runtimeFences ?? [])]; expect( diagnostics.some((d) => d.code === "SC1090" && d.message.includes("different signature")), diff --git a/packages/compiler/test/json-callbacks.test.ts b/packages/compiler/test/json-callbacks.test.ts index 664a16764..1a22486db 100644 --- a/packages/compiler/test/json-callbacks.test.ts +++ b/packages/compiler/test/json-callbacks.test.ts @@ -24,7 +24,7 @@ test.each([ try { const entry = join(dir, "main.js"); writeFileSync(entry, source); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect( [...coverage.diagnostics, ...(coverage.runtimeFences ?? [])].some( @@ -93,7 +93,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: join(dir, process.platform === "win32" ? "program.exe" : "program"), backend, - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", }); if (!built.ok) diff --git a/packages/compiler/test/llvm-lib-dispatch.test.ts b/packages/compiler/test/llvm-lib-dispatch.test.ts index 31204299c..174c54afa 100644 --- a/packages/compiler/test/llvm-lib-dispatch.test.ts +++ b/packages/compiler/test/llvm-lib-dispatch.test.ts @@ -19,7 +19,7 @@ const dyn = (): IrExpr => ({ kind: "dynFrom", value: str("value"), type: DYN, lo function libCallModule(fn: IrLibFn, args: IrExpr[], type: IrType): IrModule { return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "__main", functions: [ diff --git a/packages/compiler/test/native-callable-values.test.ts b/packages/compiler/test/native-callable-values.test.ts index effb761cd..e64a9319e 100644 --- a/packages/compiler/test/native-callable-values.test.ts +++ b/packages/compiler/test/native-callable-values.test.ts @@ -59,7 +59,6 @@ console.log(handle.fd); ); const result = await compile(entry, { backend, - dynamic: false, sanitize, outDir: dir, outPath: join(dir, "program"), @@ -109,24 +108,23 @@ function stopped(value) { return { done() { return "wrong"; } }; } try { console.log(stopped("0").done()); } -catch (error) { console.log(String(error).includes("SC2011")); } +catch (error) { console.log(String(error).includes("SC2009")); } const first = { inspect }; const second = { inspect }; console.log(typeof first.inspect, first.inspect === second.inspect); for (const callback of [first.inspect, second.inspect]) { try { callback({}); } - catch (error) { console.log(String(error).includes("SC2011")); } + catch (error) { console.log(String(error).includes("SC2009")); } } `, ); const entry = join(dir, "main.js"); writeFileSync(entry, 'import "callbacks";'); - const { coverage } = analyze(entry, { dynamic: false, npmStatic: "auto" }); + const { coverage } = analyze(entry, { npmStatic: "auto" }); expect(coverage.diagnostics).toEqual([]); expect(coverage.runtimeFences?.length).toBeGreaterThan(0); const result = await compile(entry, { backend, - dynamic: false, npmStatic: "auto", sanitize, outDir: dir, diff --git a/packages/compiler/test/native-class-array-boundaries.test.ts b/packages/compiler/test/native-class-array-boundaries.test.ts index f73b10b58..da4bea2d2 100644 --- a/packages/compiler/test/native-class-array-boundaries.test.ts +++ b/packages/compiler/test/native-class-array-boundaries.test.ts @@ -40,7 +40,6 @@ checkChild({ value: 1, extra: 2 }); `, ); const result = await compile(entry, { - dynamic: false, outDir: dir, outPath: join(dir, "program"), sanitize: process.env["SCRIPTC_SAN"] === "1", diff --git a/packages/compiler/test/native-class-descriptors.test.ts b/packages/compiler/test/native-class-descriptors.test.ts index 107a6a2ba..d4aff3949 100644 --- a/packages/compiler/test/native-class-descriptors.test.ts +++ b/packages/compiler/test/native-class-descriptors.test.ts @@ -19,7 +19,7 @@ test.each([ `class Value { constructor() { this.x = 1; } } const value = new Value(); ${operation}`, ); try { - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect( [...coverage.diagnostics, ...(coverage.runtimeFences ?? [])].some( (d) => d.code === "SC2020" && d.message.includes("Object.define"), @@ -44,7 +44,6 @@ console.log(new Base().copy()); `); try { const result = await compile(entry, { - dynamic: false, outDir: dir, outPath: join(dir, "program"), sanitize: process.env["SCRIPTC_SAN"] === "1", @@ -84,7 +83,6 @@ console.log(value.clone().x); `); try { const result = await compile(entry, { - dynamic: false, outDir: dir, outPath: join(dir, "program"), sanitize: process.env["SCRIPTC_SAN"] === "1", diff --git a/packages/compiler/test/native-codegen-integration.test.ts b/packages/compiler/test/native-codegen-integration.test.ts index 49fd801b6..d36974b8a 100644 --- a/packages/compiler/test/native-codegen-integration.test.ts +++ b/packages/compiler/test/native-codegen-integration.test.ts @@ -312,7 +312,7 @@ ${[0, 1, 2, 3, 4, 5].map((index) => ` call void @add${index}(i64 ${index + 2})` expect(await symbols(helperObject, ["-u"])).toEqual(await symbols(clangObject, ["-u"])); expect(await symbols(helperObject, ["-gU"])).toEqual(await symbols(clangObject, ["-gU"])); expect(await symbols(helperObject, ["-gU"])).toEqual(["0000000000000000 T _main"]); - expect(await symbols(helperObject, ["-u"])).toContain("_scr_runtime_abi_v13"); + expect(await symbols(helperObject, ["-u"])).toContain("_scr_runtime_abi_v14"); const clangExe = join(dir, "clang-program"); const linkDriver = join(dir, "clang-driver.c"); @@ -646,7 +646,7 @@ ${[0, 1, 2, 3, 4, 5].map((index) => ` call void @add${index}(i64 ${index + 2})` .split("\n"); expect(undefinedSymbols).toContain("_sf_scale"); expect(undefinedSymbols).toContain("_sf_callback_mix"); - expect(undefinedSymbols).toContain("_scr_runtime_abi_v13"); + expect(undefinedSymbols).toContain("_scr_runtime_abi_v14"); }); test("helper and clang object paths retain the same outbound FFI C ABI", async () => { diff --git a/packages/compiler/test/native-codegen-lowering.test.ts b/packages/compiler/test/native-codegen-lowering.test.ts index 370d24318..07b5228c5 100644 --- a/packages/compiler/test/native-codegen-lowering.test.ts +++ b/packages/compiler/test/native-codegen-lowering.test.ts @@ -11,7 +11,7 @@ function diagnostics(source: string) { try { const entry = join(dir, "main.ts"); writeFileSync(entry, source); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); return coverage.diagnostics; } finally { diff --git a/packages/compiler/test/npm-fetch-analysis.test.ts b/packages/compiler/test/npm-fetch-analysis.test.ts deleted file mode 100644 index 05bb4171f..000000000 --- a/packages/compiler/test/npm-fetch-analysis.test.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { npmFetchCases } from "./npm-fetch-cases.js"; -import { expect, test } from "vitest"; -import { embeddedModulesUsingGlobalFetch } from "../src/frontend/npm-fetch-node.js"; -import type { EmbeddedModule } from "../src/frontend/npm.js"; - -function js(key: string, source: string): EmbeddedModule { - return { key: `/${key}.js`, source, format: "cjs" }; -} - -test("embedded fetch capability analysis ignores text and local bindings", () => { - const modules = [ - js("comment", "// fetch(url)\nmodule.exports = 1;"), - js("string", "module.exports = 'fetch(url)';"), - js("property", "const value = { fetch: 1 }; module.exports = value.fetch;"), - js("local", "const fetch = (x) => x; module.exports = fetch('local');"), - js("parameter", "module.exports = function (fetch) { return fetch('local'); };"), - js("import", "import fetch from 'a-local-package'; export default fetch('local');"), - js( - "named-import", - "import { fetch as request } from 'pure-local'; export default request('local');", - ), - js("named-reexport", "export { fetch as request } from 'pure-local';"), - js( - "shadow-global", - "module.exports = function (globalThis) { return globalThis.fetch('local'); };", - ), - js( - "object-destructure", - "const source = { fetch: 1 }; const { fetch: request } = source; module.exports = request;", - ), - js( - "local-alias", - "const source = { fetch: 1 }; const root = source; module.exports = root.fetch;", - ), - js( - "shadowed-alias", - "const root = globalThis; module.exports = function (root) { return root.fetch; };", - ), - js("label", "fetch: for (;;) { break fetch; } module.exports = 1;"), - ]; - - expect([...embeddedModulesUsingGlobalFetch(modules)]).toEqual([]); -}); - -test("embedded fetch capability analysis finds global reads", () => { - const modules = [ - js("bare", "module.exports = fetch('https://example.com');"), - js("shorthand-property", "module.exports = { fetch };"), - js("global-this", "module.exports = globalThis.fetch('https://example.com');"), - js("global", "module.exports = global['fetch']('https://example.com');"), - js("destructure", "const { fetch } = globalThis; module.exports = fetch;"), - js("destructure-alias", "const { fetch: request } = global; module.exports = request;"), - js( - "destructure-computed", - "const { ['fetch']: request } = globalThis; module.exports = request;", - ), - js( - "destructure-assign", - "let request; ({ fetch: request } = globalThis); module.exports = request;", - ), - js("global-alias", "const root = globalThis; module.exports = root.fetch;"), - js("global-logical-alias", "const root = globalThis || global; module.exports = root.fetch;"), - js("global-nullish-alias", "const root = globalThis ?? global; module.exports = root.fetch;"), - js( - "global-conditional-alias", - "const root = typeof globalThis === 'undefined' ? global : globalThis; module.exports = root.fetch;", - ), - js("global-mutable-alias", "let root = globalThis; module.exports = root.fetch;"), - js( - "global-alias-chain", - "const root = global; const platform = root; module.exports = platform['fetch'];", - ), - js( - "global-alias-destructure", - "const root = globalThis; const { fetch: request } = root; module.exports = request;", - ), - { - ...js("windows-path", "module.exports = fetch('https://example.com');"), - key: "C:\\pkg\\index.js", - }, - ]; - - expect([...embeddedModulesUsingGlobalFetch(modules)]).toEqual([ - "/bare.js", - "/shorthand-property.js", - "/global-this.js", - "/global.js", - "/destructure.js", - "/destructure-alias.js", - "/destructure-computed.js", - "/destructure-assign.js", - "/global-alias.js", - "/global-logical-alias.js", - "/global-nullish-alias.js", - "/global-conditional-alias.js", - "/global-mutable-alias.js", - "/global-alias-chain.js", - "/global-alias-destructure.js", - "C:\\pkg\\index.js", - ]); -}); - -test("global fetch capability matrix keeps local names and global aliases distinct", () => { - const modules: EmbeddedModule[] = npmFetchCases.map((item, index) => ({ - key: `${index}.js`, - source: item.source, - format: "cjs", - })); - const found = embeddedModulesUsingGlobalFetch(modules); - for (let i = 0; i < modules.length; i++) - expect(found.has(modules[i]!.key), npmFetchCases[i]!.name).toBe(npmFetchCases[i]!.usesFetch); -}); diff --git a/packages/compiler/test/npm-fetch-cases.ts b/packages/compiler/test/npm-fetch-cases.ts deleted file mode 100644 index e64a9270e..000000000 --- a/packages/compiler/test/npm-fetch-cases.ts +++ /dev/null @@ -1,133 +0,0 @@ -/** Capability expectations shared by Node and statically compiled clients. */ -export const npmFetchCases: { name: string; source: string; usesFetch: boolean }[] = [ - { name: "bare call", source: "fetch('url');", usesFetch: true }, - { name: "bare reference", source: "module.exports = fetch;", usesFetch: true }, - { name: "shorthand value", source: "module.exports = { fetch };", usesFetch: true }, - { name: "global property", source: "globalThis.fetch;", usesFetch: true }, - { name: "global alias", source: "global.fetch;", usesFetch: true }, - { name: "global literal key", source: "globalThis['fetch'];", usesFetch: true }, - { name: "global template key", source: "globalThis[`fetch`];", usesFetch: true }, - { name: "optional global property", source: "globalThis?.fetch?.('url');", usesFetch: true }, - { name: "parenthesized global", source: "((globalThis)).fetch;", usesFetch: true }, - { name: "destructure binding", source: "const { fetch } = globalThis;", usesFetch: true }, - { name: "destructure alias", source: "const { fetch: request } = global;", usesFetch: true }, - { - name: "destructure literal key", - source: "const { ['fetch']: request } = globalThis;", - usesFetch: true, - }, - { - name: "destructure default parameter", - source: "function f({fetch: request} = globalThis) {}", - usesFetch: true, - }, - { - name: "destructure assignment", - source: "let request; ({fetch: request} = globalThis);", - usesFetch: true, - }, - { - name: "destructure shorthand assignment", - source: "let fetch; ({fetch} = globalThis);", - usesFetch: true, - }, - { name: "destructure fallback global", source: "const { value = fetch } = {};", usesFetch: true }, - { name: "captured global", source: "function f() { return fetch; }", usesFetch: true }, - { - name: "alias chain", - source: "const root = global; const other = root; other.fetch;", - usesFetch: true, - }, - { - name: "alias reverse declaration", - source: "function f() { return second.fetch; } const second = first; const first = global;", - usesFetch: true, - }, - { - name: "mutable alias", - source: "let root = globalThis; root = {}; root.fetch;", - usesFetch: true, - }, - { - name: "conditional root", - source: "const root = flag ? global : {}; root.fetch;", - usesFetch: true, - }, - { - name: "logical or root", - source: "const root = globalThis || global; root.fetch;", - usesFetch: true, - }, - { - name: "nullish root", - source: "const root = globalThis ?? global; root.fetch;", - usesFetch: true, - }, - { name: "logical and root", source: "const root = flag && global; root.fetch;", usesFetch: true }, - { name: "comma root", source: "const root = (0, global); root.fetch;", usesFetch: true }, - { - name: "alias destructure", - source: "const root = global; const { fetch: request } = root;", - usesFetch: true, - }, - { - name: "global outside shadow", - source: "function f(fetch) { return fetch; } module.exports = fetch;", - usesFetch: true, - }, - { name: "comment", source: "/* fetch() */ // global.fetch\n", usesFetch: false }, - { name: "string", source: "'globalThis.fetch()';", usesFetch: false }, - { name: "regex", source: "/fetch/;", usesFetch: false }, - { name: "template text", source: "`fetch()`;", usesFetch: false }, - { name: "local function", source: "function fetch() {} fetch();", usesFetch: false }, - { name: "hoisted var", source: "fetch; var fetch;", usesFetch: false }, - { name: "lexical shadow", source: "const fetch = () => 1; fetch();", usesFetch: false }, - { name: "parameter", source: "function f(fetch) { fetch(); }", usesFetch: false }, - { name: "catch binding", source: "try {} catch(fetch) { fetch(); }", usesFetch: false }, - { - name: "local shorthand", - source: "const fetch = 1; module.exports = { fetch };", - usesFetch: false, - }, - { name: "object method", source: "({ fetch() {} });", usesFetch: false }, - { name: "object property", source: "({ fetch: 1 });", usesFetch: false }, - { name: "class method", source: "class A { fetch() {} }", usesFetch: false }, - { name: "class field", source: "class A { fetch = 1; }", usesFetch: false }, - { name: "unrelated property", source: "value.fetch;", usesFetch: false }, - { name: "label", source: "fetch: for (;;) { break fetch; }", usesFetch: false }, - { name: "default import", source: "import fetch from 'pkg'; fetch();", usesFetch: false }, - { - name: "named import", - source: "import { fetch as request } from 'pkg'; request();", - usesFetch: false, - }, - { - name: "namespace import", - source: "import * as fetch from 'pkg'; fetch.method();", - usesFetch: false, - }, - { name: "reexport", source: "export { fetch as request } from 'pkg';", usesFetch: false }, - { name: "local export", source: "const fetch = 1; export { fetch };", usesFetch: false }, - { - name: "global parameter", - source: "function f(globalThis) { globalThis.fetch; }", - usesFetch: false, - }, - { name: "global import", source: "import global from 'pkg'; global.fetch;", usesFetch: false }, - { name: "local destructure", source: "const { fetch } = source; fetch();", usesFetch: false }, - { - name: "root shadow", - source: "const root = global; function f(root) { root.fetch; }", - usesFetch: false, - }, - { - name: "alias wrong comma arm", - source: "const root = (global, {}); root.fetch;", - usesFetch: false, - }, - { - name: "same spelling different scope", - source: "function a() { const root = global; } function b() { const root = {}; root.fetch; }", - usesFetch: false, - }, -]; diff --git a/packages/compiler/test/process-builtin-values.test.ts b/packages/compiler/test/process-builtin-values.test.ts index 608cf5ade..1ced69b04 100644 --- a/packages/compiler/test/process-builtin-values.test.ts +++ b/packages/compiler/test/process-builtin-values.test.ts @@ -29,7 +29,6 @@ try { console.log(segmenter.segment); } catch (error) { console.log(error.messag ); const result = await compile(entry, { backend, - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", outDir: dir, outPath: join(dir, "program"), diff --git a/packages/compiler/test/runtime-optional-precision.test.ts b/packages/compiler/test/runtime-optional-precision.test.ts index 5242d3d12..42d689f5b 100644 --- a/packages/compiler/test/runtime-optional-precision.test.ts +++ b/packages/compiler/test/runtime-optional-precision.test.ts @@ -17,7 +17,6 @@ async function lower(source: string): Promise { outDir: dir, outPath: output, outputKind: "ir", - dynamic: false, }); if (!result.ok) throw new Error(result.diagnostics.map((item) => `${item.code}: ${item.message}`).join("\n")); diff --git a/packages/compiler/test/self-hosting-boundaries.test.ts b/packages/compiler/test/self-hosting-boundaries.test.ts index ab9a50180..fd9b9cc62 100644 --- a/packages/compiler/test/self-hosting-boundaries.test.ts +++ b/packages/compiler/test/self-hosting-boundaries.test.ts @@ -75,7 +75,7 @@ test.each([ try { const entry = join(dir, "main.ts"); writeFileSync(entry, `export {};\n${source}`); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect( coverage.diagnostics.some((d) => d.code === "SC1090" && d.message.includes(message)), diff --git a/packages/compiler/test/set-iterator-seeds.test.ts b/packages/compiler/test/set-iterator-seeds.test.ts index 7f3eeaa4f..43d211f36 100644 --- a/packages/compiler/test/set-iterator-seeds.test.ts +++ b/packages/compiler/test/set-iterator-seeds.test.ts @@ -16,7 +16,7 @@ test("Set iterator seeds refuse different declared reference layouts", () => { console.log(new Set<{ id: number }>(records.values()).size); `, ); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics).toEqual( expect.arrayContaining([ @@ -62,7 +62,6 @@ test("Set iterator seeds cannot hide identity copies behind annotations", async `, ); const result = await compile(entry, { - dynamic: false, optimization: "dev", sanitize: process.env["SCRIPTC_SAN"] === "1", outDir: dir, diff --git a/packages/compiler/test/split-loop-emission.test.ts b/packages/compiler/test/split-loop-emission.test.ts index d516755c3..c6d30b5fa 100644 --- a/packages/compiler/test/split-loop-emission.test.ts +++ b/packages/compiler/test/split-loop-emission.test.ts @@ -77,7 +77,6 @@ suspended("a,b").then(console.log); outDir: dir, outPath: output, outputKind: "ir", - dynamic: false, }); if (!result.ok) throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); diff --git a/packages/compiler/test/string-accumulation-emission.test.ts b/packages/compiler/test/string-accumulation-emission.test.ts index b323221ba..c2e92a5fe 100644 --- a/packages/compiler/test/string-accumulation-emission.test.ts +++ b/packages/compiler/test/string-accumulation-emission.test.ts @@ -86,7 +86,7 @@ function fixture(): IrModule { .find((fn) => fn.name === "negative")! .body.splice(1, 0, { kind: "varDecl", localId: "other", init: str("other"), loc }); return { - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "__main", globals: [{ id: "%g.e.acc", name: "globalAccumulator", type: STRING, mutable: true }], diff --git a/packages/compiler/test/string-and-array-lifetimes.test.ts b/packages/compiler/test/string-and-array-lifetimes.test.ts index 183a1a426..65e8fb800 100644 --- a/packages/compiler/test/string-and-array-lifetimes.test.ts +++ b/packages/compiler/test/string-and-array-lifetimes.test.ts @@ -21,7 +21,6 @@ async function lower(source: string): Promise { outDir: dir, outPath: output, outputKind: "ir", - dynamic: false, }); if (!result.ok) throw new Error(result.diagnostics.map((item) => `${item.code}: ${item.message}`).join("\n")); diff --git a/packages/compiler/test/structural-value-boundaries.test.ts b/packages/compiler/test/structural-value-boundaries.test.ts index 12c399d07..c44fc1f0f 100644 --- a/packages/compiler/test/structural-value-boundaries.test.ts +++ b/packages/compiler/test/structural-value-boundaries.test.ts @@ -85,13 +85,12 @@ test.each([ try { const entry = join(dir, "main.ts"); writeFileSync(entry, source); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.diagnostics).toContainEqual( expect.objectContaining({ code: "SC1090", message: expect.stringContaining(message) }), ); expect(coverage.diagnostics.some((diagnostic) => diagnostic.code === "SC9001")).toBe(false); - expect(coverage.stats.statementsIsland).toBe(0); } finally { rmSync(dir, { recursive: true, force: true }); } diff --git a/packages/compiler/test/style-text.test.ts b/packages/compiler/test/style-text.test.ts index cb777c68a..74c7f3578 100644 --- a/packages/compiler/test/style-text.test.ts +++ b/packages/compiler/test/style-text.test.ts @@ -20,7 +20,6 @@ console.log(JSON.stringify(styleText("red", "x", {validateStream: false, stream: `, ); const result = await compile(entry, { - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", outDir: dir, outPath: join(dir, "program"), diff --git a/packages/compiler/test/symbol-fields.test.ts b/packages/compiler/test/symbol-fields.test.ts index a75c5752a..c952a1ba9 100644 --- a/packages/compiler/test/symbol-fields.test.ts +++ b/packages/compiler/test/symbol-fields.test.ts @@ -53,7 +53,6 @@ test.each([ ), JSON.stringify(coverage, null, 2), ).toBe(true); - expect(coverage.stats.statementsIsland).toBe(0); } finally { rmSync(dir, { recursive: true, force: true }); } @@ -73,7 +72,6 @@ test.each([ const { coverage } = analyze(entry); expect(coverage.preflightFailed).toBe(false); expect([...coverage.diagnostics, ...(coverage.runtimeFences ?? [])]).toEqual([]); - expect(coverage.stats.statementsIsland).toBe(0); } finally { rmSync(dir, { recursive: true, force: true }); } @@ -107,7 +105,6 @@ test.each([ ), JSON.stringify(coverage, null, 2), ).toBe(true); - expect(coverage.stats.statementsIsland).toBe(0); } finally { rmSync(dir, { recursive: true, force: true }); } @@ -130,7 +127,6 @@ test.each([ const { coverage } = analyze(entry); expect(coverage.preflightFailed).toBe(false); expect([...coverage.diagnostics, ...(coverage.runtimeFences ?? [])]).toEqual([]); - expect(coverage.stats.statementsIsland).toBe(0); } finally { rmSync(dir, { recursive: true, force: true }); } diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1100-island-eval-basics.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1100-island-eval-basics.ts.json deleted file mode 100644 index 04f563a62..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1100-island-eval-basics.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/1100-island-eval-basics.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1101-island-marshal-unicode.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1101-island-marshal-unicode.ts.json deleted file mode 100644 index 169cdf74e..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1101-island-marshal-unicode.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/1101-island-marshal-unicode.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1102-island-rc-stress.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1102-island-rc-stress.ts.json deleted file mode 100644 index 05472fd8f..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1102-island-rc-stress.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/1102-island-rc-stress.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1112-number-methods.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1112-number-methods.ts.json deleted file mode 100644 index c95861fe3..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1112-number-methods.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/1112-number-methods.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1120-web-globals-encoders.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1120-web-globals-encoders.ts.json deleted file mode 100644 index d94210870..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1120-web-globals-encoders.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/1120-web-globals-encoders.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1123-any-conditional-spread.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1123-any-conditional-spread.ts.json deleted file mode 100644 index 7b476f4f2..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1123-any-conditional-spread.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/1123-any-conditional-spread.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1206-regex-dynamic-mix.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1206-regex-dynamic-mix.ts.json deleted file mode 100644 index 644b424e4..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1206-regex-dynamic-mix.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/1206-regex-dynamic-mix.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1421-number-parse-dynamic.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1421-number-parse-dynamic.ts.json deleted file mode 100644 index 9a7e6de91..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1421-number-parse-dynamic.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/1421-number-parse-dynamic.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1421-number-parse-strings.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1421-number-parse-strings.ts.json new file mode 100644 index 000000000..1e13d8b60 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1421-number-parse-strings.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/1421-number-parse-strings.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1587-any-field-unassigned.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1587-any-field-unassigned.ts.json deleted file mode 100644 index e70b14b5c..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/1587-any-field-unassigned.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/1587-any-field-unassigned.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2083-destructuring-island-decl.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2083-destructuring-island-decl.ts.json deleted file mode 100644 index 01ec6a432..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2083-destructuring-island-decl.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/2083-destructuring-island-decl.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2084-destructuring-primitive-sources.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2084-destructuring-primitive-sources.ts.json deleted file mode 100644 index 01636a5bf..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2084-destructuring-primitive-sources.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/2084-destructuring-primitive-sources.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2086-destructuring-island-globals.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2086-destructuring-island-globals.ts.json deleted file mode 100644 index d17a73e31..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2086-destructuring-island-globals.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/2086-destructuring-island-globals.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2103-optional-tuple-elements.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2103-optional-tuple-elements.ts.json deleted file mode 100644 index b1d1e8e44..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2103-optional-tuple-elements.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/2103-optional-tuple-elements.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2104-computed-key-destructuring.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2104-computed-key-destructuring.ts.json deleted file mode 100644 index ddaae74fc..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2104-computed-key-destructuring.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/2104-computed-key-destructuring.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2122-import-refusal-crash/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2122-import-refusal-crash/main.ts.json deleted file mode 100644 index 2e772aed4..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2122-import-refusal-crash/main.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/2122-import-refusal-crash/main.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2130-overload-island-returns.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2130-overload-island-returns.ts.json deleted file mode 100644 index 61644ca88..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2130-overload-island-returns.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/2130-overload-island-returns.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2251-tagged-templates-dyn.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2251-tagged-templates-dyn.ts.json deleted file mode 100644 index 255613f2f..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2251-tagged-templates-dyn.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/2251-tagged-templates-dyn.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2449-js-dyn-worlds/main.js.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2449-js-dyn-worlds/main.js.json deleted file mode 100644 index 56c99f300..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2449-js-dyn-worlds/main.js.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "order": [ - "/tests/corpus/2449-js-dyn-worlds/walker.js", - "/tests/corpus/2449-js-dyn-worlds/main.js" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2513-dyn-evolving-array-derived.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2513-dyn-evolving-array-derived.ts.json deleted file mode 100644 index 492976e7f..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2513-dyn-evolving-array-derived.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/2513-dyn-evolving-array-derived.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2667-array-to-sorted-any.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2667-array-to-sorted-any.ts.json deleted file mode 100644 index 187b861e9..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2667-array-to-sorted-any.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/2667-array-to-sorted-any.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2790-array-missing-tagged-substitutions.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2790-array-missing-tagged-substitutions.ts.json deleted file mode 100644 index e6866cb43..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/2790-array-missing-tagged-substitutions.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/2790-array-missing-tagged-substitutions.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/3060-dynamic-host-global.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/3060-dynamic-host-global.ts.json deleted file mode 100644 index 78388c746..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/3060-dynamic-host-global.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/3060-dynamic-host-global.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/760-any-arithmetic.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/760-any-arithmetic.ts.json deleted file mode 100644 index aefa74eb0..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/760-any-arithmetic.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/760-any-arithmetic.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/761-any-objects.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/761-any-objects.ts.json deleted file mode 100644 index aa907b2ae..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/761-any-objects.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/761-any-objects.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/763-any-flow.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/763-any-flow.ts.json deleted file mode 100644 index 21dfc68a0..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/763-any-flow.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/763-any-flow.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/968-jsval-lift.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/968-jsval-lift.ts.json deleted file mode 100644 index 6d8385734..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/968-jsval-lift.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/corpus/968-jsval-lift.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/native-any-timer-callback.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/native-any-timer-callback.ts.json new file mode 100644 index 000000000..b2d28eb86 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/native-any-timer-callback.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/native-any-timer-callback.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/native-npm-imports/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/native-npm-imports/main.ts.json new file mode 100644 index 000000000..14068fdb5 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/corpus/native-npm-imports/main.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/corpus/native-npm-imports/main.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/any-unit-exit.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/any-unit-exit.ts.json deleted file mode 100644 index 39096619c..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/any-unit-exit.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/diagnostics/any-unit-exit.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/imports.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/imports.ts.json index 895900835..7b18f03a0 100644 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/imports.ts.json +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/imports.ts.json @@ -21,7 +21,7 @@ "end": 41 }, "milestone": "M4", - "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" } ] } diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/island-boundary-slots.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/island-boundary-slots.ts.json deleted file mode 100644 index 0e57fa711..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/island-boundary-slots.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/diagnostics/island-boundary-slots.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/island.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/island.ts.json deleted file mode 100644 index 286864769..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/island.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/diagnostics/island.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/module-out-of-scope.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/module-out-of-scope.ts.json index 76985356e..1937e357b 100644 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/module-out-of-scope.ts.json +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/module-out-of-scope.ts.json @@ -66,7 +66,7 @@ "end": 391 }, "milestone": "M4", - "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" }, { "code": "SC1010", @@ -77,7 +77,7 @@ "end": 424 }, "milestone": "M4", - "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" }, { "code": "SC1010", @@ -88,7 +88,7 @@ "end": 468 }, "milestone": "M4", - "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" }, { "code": "SC1010", @@ -99,7 +99,7 @@ "end": 511 }, "milestone": "M4", - "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" }, { "code": "SC1010", @@ -110,7 +110,7 @@ "end": 550 }, "milestone": "M4", - "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" }, { "code": "SC1010", @@ -121,7 +121,7 @@ "end": 600 }, "milestone": "M4", - "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" } ] } diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/npm-imports/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/npm-imports/main.ts.json deleted file mode 100644 index 1f512c532..000000000 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/npm-imports/main.ts.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "order": [ - "/tests/diagnostics/npm-imports/main.ts" - ], - "diags": [] -} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/pkg-import-fences/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/pkg-import-fences/main.ts.json index b18eecd2d..50b586123 100644 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/pkg-import-fences/main.ts.json +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/pkg-import-fences/main.ts.json @@ -12,7 +12,7 @@ "end": 476 }, "milestone": "M4", - "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" }, { "code": "SC1010", @@ -23,7 +23,7 @@ "end": 415 }, "milestone": "M4", - "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" }, { "code": "SC1010", @@ -34,7 +34,7 @@ "end": 448 }, "milestone": "M4", - "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" } ] } diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1112-number-methods.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1112-number-methods.ts.json new file mode 100644 index 000000000..27b24a99a --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1112-number-methods.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-1112-number-methods.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1123-any-conditional-spread.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1123-any-conditional-spread.ts.json new file mode 100644 index 000000000..057d24d55 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1123-any-conditional-spread.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-1123-any-conditional-spread.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1587-any-field-unassigned.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1587-any-field-unassigned.ts.json new file mode 100644 index 000000000..963b49c53 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-1587-any-field-unassigned.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-1587-any-field-unassigned.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2083-destructuring-island-decl.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2083-destructuring-island-decl.ts.json new file mode 100644 index 000000000..0f93762f8 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2083-destructuring-island-decl.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-2083-destructuring-island-decl.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2084-destructuring-primitive-sources.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2084-destructuring-primitive-sources.ts.json new file mode 100644 index 000000000..ab7f44416 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2084-destructuring-primitive-sources.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-2084-destructuring-primitive-sources.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2086-destructuring-island-globals.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2086-destructuring-island-globals.ts.json new file mode 100644 index 000000000..e37d0ca4f --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2086-destructuring-island-globals.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-2086-destructuring-island-globals.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2103-optional-tuple-elements.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2103-optional-tuple-elements.ts.json new file mode 100644 index 000000000..cbe036cf4 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2103-optional-tuple-elements.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-2103-optional-tuple-elements.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2104-computed-key-destructuring.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2104-computed-key-destructuring.ts.json new file mode 100644 index 000000000..651eeb603 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2104-computed-key-destructuring.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-2104-computed-key-destructuring.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2251-tagged-templates-dyn.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2251-tagged-templates-dyn.ts.json new file mode 100644 index 000000000..2af7d599f --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2251-tagged-templates-dyn.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-2251-tagged-templates-dyn.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2513-dyn-evolving-array-derived.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2513-dyn-evolving-array-derived.ts.json new file mode 100644 index 000000000..b19cea4d7 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2513-dyn-evolving-array-derived.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-2513-dyn-evolving-array-derived.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2667-array-to-sorted-any.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2667-array-to-sorted-any.ts.json new file mode 100644 index 000000000..83526ffee --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2667-array-to-sorted-any.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-2667-array-to-sorted-any.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2790-array-missing-tagged-substitutions.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2790-array-missing-tagged-substitutions.ts.json new file mode 100644 index 000000000..571eaa53d --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-2790-array-missing-tagged-substitutions.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-2790-array-missing-tagged-substitutions.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-760-any-arithmetic.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-760-any-arithmetic.ts.json new file mode 100644 index 000000000..9b0502400 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-760-any-arithmetic.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-760-any-arithmetic.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-761-any-objects.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-761-any-objects.ts.json new file mode 100644 index 000000000..ed04bcd16 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-761-any-objects.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-761-any-objects.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-763-any-flow.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-763-any-flow.ts.json new file mode 100644 index 000000000..aaa3e68bb --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-763-any-flow.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-763-any-flow.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-968-jsval-lift.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-968-jsval-lift.ts.json new file mode 100644 index 000000000..b1f491f02 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-968-jsval-lift.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-968-jsval-lift.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-import-refusal/main.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-import-refusal/main.ts.json new file mode 100644 index 000000000..ea069ee91 --- /dev/null +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/diagnostics/retired-engine-import-refusal/main.ts.json @@ -0,0 +1,6 @@ +{ + "order": [ + "/tests/diagnostics/retired-engine-import-refusal/main.ts" + ], + "diags": [] +} diff --git a/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/node-types/import-fences.ts.json b/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/node-types/import-fences.ts.json index c2d6bcbf5..52a865199 100644 --- a/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/node-types/import-fences.ts.json +++ b/packages/compiler/test/ts7/baselines/order-parity/tests/fixtures/node-types/import-fences.ts.json @@ -12,7 +12,7 @@ "end": 461 }, "milestone": "M4", - "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" + "hint": "relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported" } ] } diff --git a/packages/compiler/test/tuple-forof.test.ts b/packages/compiler/test/tuple-forof.test.ts index 54e4b6d74..3a66d9c09 100644 --- a/packages/compiler/test/tuple-forof.test.ts +++ b/packages/compiler/test/tuple-forof.test.ts @@ -20,7 +20,7 @@ for (const n of pair()) total += n; console.log(total, calls); `, ); - const result = await compile(entry, { outDir: dir, outPath, outputKind: "ir", dynamic: false }); + const result = await compile(entry, { outDir: dir, outPath, outputKind: "ir" }); if (!result.ok) throw new Error(result.diagnostics.map((d) => d.message).join("\n")); const mod = deserializeModule(await readFile(outPath, "utf8")); expect(validateModule(mod)).toEqual([]); diff --git a/packages/compiler/test/type-mapper-unions.test.ts b/packages/compiler/test/type-mapper-unions.test.ts index 7becd7804..c714df4d7 100644 --- a/packages/compiler/test/type-mapper-unions.test.ts +++ b/packages/compiler/test/type-mapper-unions.test.ts @@ -65,7 +65,6 @@ function context(): TypeMapperCtx { shapes: new ShapeRegistry(), unions: new UnionRegistry(), classNamer: (decl) => decl.name?.text ?? "anonymous", - dynamic: false, typeMemo: new Map(), isStdlibFile: (sf) => load.program.isSourceFileDefaultLibrary(sf), isNpmFile: () => false, @@ -82,16 +81,13 @@ function mapped(name: string, ctx: TypeMapperCtx): IrType & { kind: "union" } { test("primitive mapping preserves template widening and mixed enum member domains", () => { const ctx = context(); ctx.canMemoizeType = () => false; - for (const dynamic of [false, true]) { - ctx.dynamic = dynamic; - expect(mapType(aliases.get("PrimitiveText")!, ctx)).toEqual({ kind: "string" }); - expect(mapType(aliases.get("PrimitiveNumber")!, ctx)).toEqual({ kind: "f64" }); - expect(mapType(aliases.get("PrimitiveBoolean")!, ctx)).toEqual({ kind: "bool" }); - expect(mapType(aliases.get("TemplateText")!, ctx)).toEqual({ kind: "string" }); - const enumType = mapped("EnumValue", ctx); - expect(mapType(aliases.get("EnumMember")!, ctx)).toEqual(enumType); - expect(ctx.unions.get(enumType.unionId)!.arms).toEqual([{ kind: "f64" }, { kind: "string" }]); - } + expect(mapType(aliases.get("PrimitiveText")!, ctx)).toEqual({ kind: "string" }); + expect(mapType(aliases.get("PrimitiveNumber")!, ctx)).toEqual({ kind: "f64" }); + expect(mapType(aliases.get("PrimitiveBoolean")!, ctx)).toEqual({ kind: "bool" }); + expect(mapType(aliases.get("TemplateText")!, ctx)).toEqual({ kind: "string" }); + const enumType = mapped("EnumValue", ctx); + expect(mapType(aliases.get("EnumMember")!, ctx)).toEqual(enumType); + expect(ctx.unions.get(enumType.unionId)!.arms).toEqual([{ kind: "f64" }, { kind: "string" }]); }); describe("checker and synthesized optional union identity", () => { diff --git a/packages/compiler/test/unassigned-field-reads.test.ts b/packages/compiler/test/unassigned-field-reads.test.ts index 5285c474a..a1579094f 100644 --- a/packages/compiler/test/unassigned-field-reads.test.ts +++ b/packages/compiler/test/unassigned-field-reads.test.ts @@ -16,7 +16,6 @@ async function lower(source: string): Promise { outDir: dir, outPath: output, outputKind: "ir", - dynamic: false, }); if (!result.ok) throw new Error(result.diagnostics.map((item) => `${item.code}: ${item.message}`).join("\n")); diff --git a/packages/compiler/test/worker-threads.test.ts b/packages/compiler/test/worker-threads.test.ts index 68e115909..68c09936a 100644 --- a/packages/compiler/test/worker-threads.test.ts +++ b/packages/compiler/test/worker-threads.test.ts @@ -22,7 +22,7 @@ async function fixture(source: string) { const worker = 'import { Worker } from "node:worker_threads"; new Worker(new URL(import.meta.url));'; -test.each(["dynamic", "wasi"])( +test.each(["wasi"])( "worker constructors refuse %s execution before code generation", async (mode) => { const request = await fixture(worker); @@ -30,7 +30,7 @@ test.each(["dynamic", "wasi"])( vi.stubEnv("SCRIPTC_CC", "zigcc"); vi.stubEnv("SCRIPTC_TARGET", "wasm32-wasi"); } - const result = await compile(request.entry, { ...request, dynamic: mode === "dynamic" }); + const result = await compile(request.entry, { ...request }); expect(result.ok).toBe(false); if (!result.ok) expect(result.diagnostics).toEqual( diff --git a/packages/runtime-darwin-arm64/runtime-pack-matrix.mjs b/packages/runtime-darwin-arm64/runtime-pack-matrix.mjs index 699bc5662..79f4f8a6d 100644 --- a/packages/runtime-darwin-arm64/runtime-pack-matrix.mjs +++ b/packages/runtime-darwin-arm64/runtime-pack-matrix.mjs @@ -62,7 +62,6 @@ const optional = [ ["scr_dc.c", "dc"], ["scr_async_dyn.c", any("dynAsync", "dynInvoke", "dc", "fileHandle", "nativeFetch")], ["scr_zlib.c", "zlib"], - ["scr_zlib_island.c", all("zlib", "dynamic")], ["scr_events.c", "events"], ["scr_readline.c", "events"], ["scr_events_emitter.c", "emitter"], @@ -88,23 +87,9 @@ const optional = [ ["scr_tls_ca.c", "tlsCaEffective"], ["scr_tls.c", "tlsEffective"], ["scr_fetch.c", "nativeFetch"], - ["scr_island.c", "dynamic"], - ["scr_web.c", "dynamic"], - ["scr_inspect_island.c", all("dynamic", "inspect")], - ["scr_net_island.c", "netIslandEffective"], ]; function variantsFor(source) { - const dynamicOnly = new Set([ - "scr_zlib_island.c", - "scr_island.c", - "scr_web.c", - "scr_inspect_island.c", - "scr_net_island.c", - ]); - if (dynamicOnly.has(source)) { - return [{ id: "dynamic", when: { dynamic: true }, defines: ["SCR_DYNAMIC"] }]; - } const variants = [{ id: "default", when: {}, defines: [] }]; if (source === "scr_bytes.c") { variants.push({ @@ -113,14 +98,6 @@ function variantsFor(source) { defines: ["SCR_TEXT_DECODER_LEGACY"], }); } - variants.push({ id: "dynamic", when: { dynamic: true }, defines: ["SCR_DYNAMIC"] }); - if (source === "scr_bytes.c") { - variants.push({ - id: "dynamic-text-decoder-legacy", - when: { dynamic: true, textDecoderLegacy: true }, - defines: ["SCR_DYNAMIC", "SCR_TEXT_DECODER_LEGACY"], - }); - } return variants; } @@ -141,14 +118,11 @@ export const RUNTIME_PACK_MATRIX = withLibraryRuntimeFlavors( ...optional.map(([source, predicate]) => ({ source, predicate })), ].map((unit) => ({ ...unit, variants: variantsFor(unit.source) })), archives: [ - { id: "quickjs", predicate: "dynamic" }, - { id: "libregexp", predicate: { all: ["regex"], not: ["dynamic"] } }, + { id: "quickjs", predicate: false }, + { id: "libregexp", predicate: "regex" }, { id: "zlib", predicate: "zlibEffective" }, { id: "mbedtls", predicate: "tlsEffective" }, ], - system_libraries: [ - { name: "System", predicate: true }, - { name: "m", predicate: "dynamic" }, - ], + system_libraries: [{ name: "System", predicate: true }], }), ); diff --git a/packages/runtime-darwin-arm64/scripts/build.mjs b/packages/runtime-darwin-arm64/scripts/build.mjs index 45a96f84e..f21193724 100644 --- a/packages/runtime-darwin-arm64/scripts/build.mjs +++ b/packages/runtime-darwin-arm64/scripts/build.mjs @@ -141,15 +141,13 @@ async function build() { const flavors = {}; // The executable `speed` flavor (--optimization=speed) exists only when // it differs from release: its static units are emitted through the host - // LLVM helper with import bitcode. Its SCR_DYNAMIC variants are the - // release objects themselves. + // LLVM helper with import bitcode. const flavorPlan = [ ...Object.entries(RUNTIME_PACK_MATRIX.flavors), ...("release" in RUNTIME_PACK_MATRIX.flavors && unitHelper !== null ? [["speed", RUNTIME_PACK_MATRIX.flavors.release]] : []), ]; - const releaseVariants = new Map(); for (const [flavor, flavorSpec] of flavorPlan) { const units = await parallel( flavorSpec.runtime_units ?? RUNTIME_PACK_MATRIX.runtime_units, @@ -160,11 +158,6 @@ async function build() { ...baseVariant, defines: [...(flavorSpec.defines ?? []), ...baseVariant.defines], }; - const variantKey = `${unit.source}\0${variant.id}`; - if (flavor === "speed" && variant.defines.includes("SCR_DYNAMIC")) { - variants.push(releaseVariants.get(variantKey)); - continue; - } const variantName = variant.id === "default" ? "default" : variant.id; const output = join( stagedOutputRoot, @@ -174,9 +167,7 @@ async function build() { unit.source.replace(/\.c$/, ".o"), ); const includeFlags = [ - ...(unit.source === "scr_regex.c" || variant.defines.includes("SCR_DYNAMIC") - ? ["-I", quickjs] - : []), + ...(unit.source === "scr_regex.c" ? ["-I", quickjs] : []), ...(unit.source === "scr_tls.c" ? ["-I", join(mbedtls, "include")] : []), ...(unit.source === "scr_zlib.c" || unit.source === "scr_fetch.c" ? ["-I", zlib] @@ -232,7 +223,6 @@ async function build() { size: (await stat(output)).size, ...(bitcode === undefined ? {} : { bitcode }), }; - if (flavor === "release") releaseVariants.set(variantKey, built); variants.push(built); } return { source: unit.source, predicate: unit.predicate, variants }; @@ -316,7 +306,7 @@ async function build() { package: packageManifest.name, version: packageManifest.version, target: RUNTIME_PACK_MATRIX.target, - runtime_abi: { version: 13, marker: "scr_runtime_abi_v13" }, + runtime_abi: { version: 14, marker: "scr_runtime_abi_v14" }, compiler: { command: compiler, identity: compilerVersion, @@ -324,7 +314,7 @@ async function build() { ...(unitHelper === null ? {} : { speed_codegen: unitHelper.identity }), }, macros: { - executable: ["SCR_DYNAMIC", "SCR_TEXT_DECODER_LEGACY"], + executable: ["SCR_TEXT_DECODER_LEGACY"], excluded: ["SCR_RC_AUDIT", "SCR_ASAN_FIBERS"], sanitizer: "external-toolchain-required", }, diff --git a/packages/runtime-pack-common/library-matrix.mjs b/packages/runtime-pack-common/library-matrix.mjs index d4728dc50..9c8cb93c5 100644 --- a/packages/runtime-pack-common/library-matrix.mjs +++ b/packages/runtime-pack-common/library-matrix.mjs @@ -26,10 +26,7 @@ export function withLibraryRuntimeFlavors(matrix) { }, ].map((unit) => ({ ...unit, - variants: unit.variants.filter( - (variant) => - !variant.defines.includes("SCR_DYNAMIC") && !variant.defines.includes("SCR_WORKERS"), - ), + variants: unit.variants.filter((variant) => !variant.defines.includes("SCR_WORKERS")), })); const flavors = { ...matrix.flavors }; for (const [flavor, spec] of Object.entries(matrix.flavors)) { diff --git a/packages/runtime-pack-common/runtime-pack-matrix.mjs b/packages/runtime-pack-common/runtime-pack-matrix.mjs index db6daab75..b7ca15bb7 100644 --- a/packages/runtime-pack-common/runtime-pack-matrix.mjs +++ b/packages/runtime-pack-common/runtime-pack-matrix.mjs @@ -52,7 +52,6 @@ const OPTIONAL = [ ["scr_dc.c", "dc"], ["scr_async_dyn.c", any("dynAsync", "dynInvoke", "dc", "fileHandle", "nativeFetch")], ["scr_zlib.c", "zlib"], - ["scr_zlib_island.c", all("zlib", "dynamic")], ["scr_events.c", "events"], ["scr_readline.c", "events"], ["scr_events_emitter.c", "emitter"], @@ -78,23 +77,9 @@ const OPTIONAL = [ ["scr_tls_ca.c", "tlsCaEffective"], ["scr_tls.c", "tlsEffective"], ["scr_fetch.c", "nativeFetch"], - ["scr_island.c", "dynamic"], - ["scr_web.c", "dynamic"], - ["scr_inspect_island.c", all("dynamic", "inspect")], - ["scr_net_island.c", "netIslandEffective"], ]; function variantsFor(source) { - const dynamicOnly = new Set([ - "scr_zlib_island.c", - "scr_island.c", - "scr_web.c", - "scr_inspect_island.c", - "scr_net_island.c", - ]); - if (dynamicOnly.has(source)) { - return [{ id: "dynamic", when: { dynamic: true }, defines: ["SCR_DYNAMIC"] }]; - } const variants = [{ id: "default", when: {}, defines: [] }]; if (source === "scr_bytes.c") { variants.push({ @@ -103,14 +88,6 @@ function variantsFor(source) { defines: ["SCR_TEXT_DECODER_LEGACY"], }); } - variants.push({ id: "dynamic", when: { dynamic: true }, defines: ["SCR_DYNAMIC"] }); - if (source === "scr_bytes.c") { - variants.push({ - id: "dynamic-text-decoder-legacy", - when: { dynamic: true, textDecoderLegacy: true }, - defines: ["SCR_DYNAMIC", "SCR_TEXT_DECODER_LEGACY"], - }); - } return variants; } @@ -125,8 +102,8 @@ export function createRuntimePackMatrix({ libraryOnly = false, }) { const vendorArchives = [ - { id: "quickjs", predicate: "dynamic" }, - { id: "libregexp", predicate: { all: ["regex"], not: ["dynamic"] } }, + { id: "quickjs", predicate: false }, + { id: "libregexp", predicate: "regex" }, { id: "zlib", predicate: "zlibEffective" }, { id: "mbedtls", predicate: "tlsEffective" }, ]; diff --git a/packages/runtime-pack-common/scripts/build.mjs b/packages/runtime-pack-common/scripts/build.mjs index 74f1a12ee..c2eaa0517 100644 --- a/packages/runtime-pack-common/scripts/build.mjs +++ b/packages/runtime-pack-common/scripts/build.mjs @@ -175,15 +175,13 @@ async function build() { const flavors = {}; // The executable `speed` flavor (--optimization=speed) exists only when // it differs from release: its static units are emitted through the host - // LLVM helper with import bitcode. Its SCR_DYNAMIC variants are the - // release objects themselves. + // LLVM helper with import bitcode. const flavorPlan = [ ...Object.entries(matrix.flavors), ...("release" in matrix.flavors && unitHelper !== null ? [["speed", matrix.flavors.release]] : []), ]; - const releaseVariants = new Map(); for (const [flavor, flavorSpec] of flavorPlan) { process.stdout.write(`building ${packageManifest.name} ${flavor} runtime\n`); // Zig emits DWARF by default, including descriptions of functions @@ -208,11 +206,6 @@ async function build() { ...baseVariant, defines: [...(flavorSpec.defines ?? []), ...baseVariant.defines], }; - const variantKey = `${unit.source}\0${variant.id}`; - if (flavor === "speed" && variant.defines.includes("SCR_DYNAMIC")) { - variants.push(releaseVariants.get(variantKey)); - continue; - } const output = join( stagedOutputRoot, flavor, @@ -221,9 +214,7 @@ async function build() { unit.source.replace(/\.c$/, ".o"), ); const includeFlags = [ - ...(unit.source === "scr_regex.c" || variant.defines.includes("SCR_DYNAMIC") - ? ["-I", quickjs] - : []), + ...(unit.source === "scr_regex.c" ? ["-I", quickjs] : []), ...(unit.source === "scr_tls.c" ? ["-I", join(mbedtls, "include")] : []), ...(unit.source === "scr_zlib.c" || unit.source === "scr_fetch.c" ? ["-I", zlib] @@ -293,7 +284,6 @@ async function build() { size: (await stat(output)).size, ...(bitcode === undefined ? {} : { bitcode }), }; - if (flavor === "release") releaseVariants.set(variantKey, built); variants.push(built); } return { source: unit.source, predicate: unit.predicate, variants }; @@ -403,7 +393,7 @@ async function build() { package: packageManifest.name, version: packageManifest.version, target: matrix.target, - runtime_abi: { version: 13, marker: "scr_runtime_abi_v13" }, + runtime_abi: { version: 14, marker: "scr_runtime_abi_v14" }, compiler: { command: compiler, identity: compilerVersion, @@ -411,7 +401,7 @@ async function build() { ...(unitHelper === null ? {} : { speed_codegen: unitHelper.identity }), }, macros: { - executable: ["SCR_DYNAMIC", "SCR_TEXT_DECODER_LEGACY"], + executable: ["SCR_TEXT_DECODER_LEGACY"], excluded: ["SCR_RC_AUDIT", "SCR_ASAN_FIBERS"], sanitizer: "external-toolchain-required", }, diff --git a/packages/runtime-pack-common/worker-matrix.mjs b/packages/runtime-pack-common/worker-matrix.mjs index 8925c0815..c5e4003eb 100644 --- a/packages/runtime-pack-common/worker-matrix.mjs +++ b/packages/runtime-pack-common/worker-matrix.mjs @@ -11,16 +11,14 @@ export function withWorkerRuntimeVariants(matrix) { ...unit, variants: unit.variants.flatMap((variant) => [ { ...variant, when: { ...variant.when, workers: false } }, - ...(variant.defines.includes("SCR_DYNAMIC") - ? [] - : [ - { - ...variant, - id: `${variant.id}-workers`, - when: { ...variant.when, workers: true }, - defines: [...variant.defines, "SCR_WORKERS"], - }, - ]), + ...[ + { + ...variant, + id: `${variant.id}-workers`, + when: { ...variant.when, workers: true }, + defines: [...variant.defines, "SCR_WORKERS"], + }, + ], ]), })), ...sources.map((source) => ({ diff --git a/packages/runtime-wasm32-wasi/scripts/build.mjs b/packages/runtime-wasm32-wasi/scripts/build.mjs index 0abe17f99..9b39ec263 100644 --- a/packages/runtime-wasm32-wasi/scripts/build.mjs +++ b/packages/runtime-wasm32-wasi/scripts/build.mjs @@ -18,7 +18,6 @@ process.env.SCRIPTC_RUNTIME_PACK_CONFIG = JSON.stringify({ "scr_tls_ca.c", "scr_tls.c", "scr_fetch.c", - "scr_net_island.c", ], omitArchives: ["mbedtls"], compiler: "zig", diff --git a/packages/runtime/src/scr_abort.c b/packages/runtime/src/scr_abort.c index d29c694d6..61c6bdc67 100644 --- a/packages/runtime/src/scr_abort.c +++ b/packages/runtime/src/scr_abort.c @@ -1,5 +1,5 @@ /* Portable AbortController/AbortSignal use the same implementation as native * fetch, without its network transport, Web Streams, or global fetch setup. */ -#undef SCR_DYNAMIC + #define SCR_FETCH_SIGNAL_ONLY 1 #include "scr_fetch.c" diff --git a/packages/runtime/src/scr_assert.c b/packages/runtime/src/scr_assert.c index 2b62a5927..b80d59666 100644 --- a/packages/runtime/src/scr_assert.c +++ b/packages/runtime/src/scr_assert.c @@ -464,11 +464,7 @@ static bool scr_assert_dyn_same_value(const ScrDyn *a, const ScrDyn *b) { case SCR_DYN_PROMISE: /* Identity is the PROMISE (the strict_eq stance). */ return a->v.promise == b->v.promise; - case SCR_DYN_JSVAL: - /* Identity is the ENGINE VALUE (the strict_eq stance): the engine's - * === — exact for SameValue too, since wrap-time scalar - * normalization leaves only reference kinds behind. */ - return a == b || scr_dyn_jsval_ops()->strict_eq(a->v.jsval.cell, b->v.jsval.cell); + case SCR_DYN_TYPED_REF: return scr_dyn_strict_eq(a, b); default: @@ -503,13 +499,8 @@ static bool scr_assert_dyn_deep_eq(const ScrDyn *a, const ScrDyn *b) { return same; } if (a->kind != b->kind) { - /* A MIXED comparison with an island side (wrapped engine object vs - * dyn data): Node walks both structurally — a plain `false` would - * mint a fabricated AssertionError for values Node may call equal. - * Loud fence (the long-tail lane's structural walk). */ - if (a->kind == SCR_DYN_JSVAL || b->kind == SCR_DYN_JSVAL) { - scr_dyn_isl_fence(a->kind == SCR_DYN_JSVAL ? a : b, "deepStrictEqual"); - } + + return false; } switch (a->kind) { @@ -568,14 +559,7 @@ static bool scr_assert_dyn_deep_eq(const ScrDyn *a, const ScrDyn *b) { } return true; } - case SCR_DYN_JSVAL: - /* Node walks the engine objects structurally — a walk this runtime - * cannot run. Engine-identical answers true honestly; anything else - * throws the loud ladder (scr_assert_eq_dyn propagates the pending - * exception INSTEAD of minting an AssertionError). */ - if (scr_dyn_jsval_ops()->strict_eq(a->v.jsval.cell, b->v.jsval.cell)) return true; - scr_dyn_isl_fence(a, "deepStrictEqual"); - return false; + case SCR_DYN_TYPED_REF: return false; /* both mixed and same-kind capsules returned above */ } @@ -742,14 +726,7 @@ static void scr_assert_cf_value(ScrAssertBuf *b, const ScrDyn *d, size_t indent, ab_char(b, ']'); return; } - case SCR_DYN_JSVAL: { - /* The depth-elided placeholder (the handle stance): Node renders - * the engine object's property dump — internals this walker does - * not model; the text only appears inside FAILURE reports, which - * already diverge in format. */ - ab_cstr(b, "[island value]"); - return; - } + case SCR_DYN_TYPED_REF: { ScrDyn *materialized = scr_dyn_typed_ref_materialize(d); scr_assert_cf_value(b, materialized, indent, depth); @@ -1004,7 +981,7 @@ static bool scr_assert_dyn_is_object(const ScrDyn *d) { return d->kind == SCR_DYN_ARR || d->kind == SCR_DYN_OBJ || d->kind == SCR_DYN_BYTES || d->kind == SCR_DYN_HANDLE || d->kind == SCR_DYN_PROMISE || d->kind == SCR_DYN_TYPED_REF || d->kind == SCR_DYN_PROXY || - scr_dyn_isl_typeof_is(d, "object"); /* engine-held: the engine's typeof */ + scr_dyn_ref_typeof_is(d, "object"); /* engine-held: the engine's typeof */ } /* The failing EQUAL operators over dyn operands — createErrDiff. */ @@ -1176,9 +1153,7 @@ static void scr_assert_dyn_neq_fail(ScrDyn *a, bool deep, ScrStr *msg, bool has_ void scr_assert_eq_dyn(ScrDyn *a, ScrDyn *b, bool negated, bool deep, ScrStr *msg, bool has_msg) { bool same = deep ? scr_assert_dyn_deep_eq(a, b) : scr_assert_dyn_same_value(a, b); - /* The deep walk's JSVAL arm fences loudly (an island value it cannot - * compare structurally): propagate THAT, never a fabricated - * AssertionError over a comparison that did not run. */ + if (scr_exc_pending()) return; if ((negated && !same) || (!negated && same)) return; if (negated) { diff --git a/packages/runtime/src/scr_async.c b/packages/runtime/src/scr_async.c index c445711cc..e1606a2e7 100644 --- a/packages/runtime/src/scr_async.c +++ b/packages/runtime/src/scr_async.c @@ -87,15 +87,6 @@ void __lsan_unregister_root_region(const void *p, size_t size) __attribute__((we #endif #endif -/* ASan inflates stack frames severalfold (unoptimized locals + redzones), - * so the sanitized lane gets proportionally bigger fiber stacks — same - * headroom DISCIPLINE, instrumented scale. Keep the island's stack budget - * (scr_island.c) at half of whichever size is active. 8MB under ASan is - * the measured need: an engine call costs 64–96KB there, and a real - * embedded graph entered FROM A FIBER (a commander action awaiting - * generateText — zod parses inside promise chains) nests dozens of engine - * frames; native POSIX stacks are mapped and committed lazily, so idle - * fibers pay address space, not RSS. */ #ifdef SCR_ASAN_FIBERS #define SCR_FIBER_STACK (8 * 1024 * 1024) #else @@ -606,8 +597,6 @@ void scr_als_ctx_release(ScrAlsCtx *c) { free(c); } - - static SCR_TL ScrCtx scr_loop_ctx; /* the main stack (scheduler home) */ static SCR_TL ScrFiber *scr_current = NULL; static SCR_TL long scr_fibers_live = 0; @@ -645,10 +634,6 @@ static void scr_fiber_keep_abandoned(ScrFiber *fiber) { } #endif -/* True while executing on an async fiber (vs the main stack). The island - * sizes its engine stack budget per stack: fibers are small and fixed, - * the main stack is the process's megabytes (scr_island.c isl_entry). */ -bool scr_on_fiber(void) { return scr_current != NULL; } void *scr_fiber_self(void) { return scr_current; } #ifdef __wasi__ @@ -710,8 +695,6 @@ static SCR_TL unsigned long scr_timer_seq = 0; * and by ref/unref. */ static SCR_TL size_t scr_reffed_timers = 0; -/* Exported: the island's timer machinery (scr_web.c) shares this clock so - * its deadlines are comparable with the loop's. */ double scr_now_ms(void) { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); @@ -906,10 +889,6 @@ double scr_set_interval(ScrClosure *cb, double ms) { return (double)id; } -/* A one-shot timer WITH a clear handle — the island's setTimeout (its - * clearTimeout must cancel, unlike the static surface's clear-less - * setTimeout). Rides the interval id space so scr_clear_interval serves - * both; repeat_ms 0 keeps it one-shot at the firing site. */ double scr_set_timeout_handle(ScrClosure *cb, double ms) { ms = scr_timer_coerce_ms(ms); unsigned long id = scr_interval_next_id++; @@ -1079,10 +1058,6 @@ void scr_nticks_teardown(void) { scr_nt_tail = NULL; } -/* Releases every armed timer — the island teardown calls this before the - * engine dies so closures holding engine callbacks free first and the - * counting allocator's zero-live audit holds (the loop only exits with - * entries still armed on the uncaught/unhandled paths). */ static void scr_immediates_teardown(void); void scr_timers_teardown(void) { for (size_t i = 0; i < scr_ntimers; i++) scr_closure_release(scr_timers[i].cb); @@ -1975,10 +1950,6 @@ void scr_promise_rethrow_top_level(ScrPromise *p) { if (p->state == SCR_PROM_REJECTED) scr_promise_rethrow(p); } - - - - /* Fulfillment storers, called by the compiled trampolines / resolve thunks. */ void scr_promise_fulfill_f64(ScrPromise *p, double v) { if (p->state != SCR_PROM_PENDING) return; /* first settle wins */ @@ -2031,14 +2002,6 @@ ScrStr *scr_await_str(ScrPromise *p) { return scr_await_settled(p) && p->payload ? scr_str_retain((ScrStr *)p->payload) : NULL; } -/* REJECTS `p` with the exception pending in the ACTIVE cell (moved out — - * the cell resets, so the caller returns to the engine/loop with a clean - * cell) and wakes waiters; the rejection enters the unhandled ledger like - * any other. The island → static promise bridge's rejection half: its - * settle callback converts the engine reason into a pending exception - * (the exception bridge's one conversion), then lands it here. A no-op - * with nothing pending; an already-settled `p` just clears the cell - * (first settle wins, like resolve-then-throw). */ void scr_promise_reject_pending(ScrPromise *p) { if (!scr_exc_pending()) return; if (p->state == SCR_PROM_PENDING) { @@ -2951,26 +2914,6 @@ static void scr_resume_fiber(ScrFiber *f) { * the wake pipe and fd 0 directly. */ #define SCR_SIGNAL_POLL_MS 50.0 -/* The external io hook (scr_runtime.h): the dynamic island registers - * engine-job draining + fetch transfer polling here. Static builds never - * set it — both slots stay NULL and the loop is byte-identical in - * behavior. */ -static SCR_TL bool (*scr_io_pending_fn)(void) = NULL; -static SCR_TL void (*scr_io_poll_fn)(double max_wait_ms) = NULL; - -void scr_loop_set_io(bool (*pending)(void), void (*poll)(double)) { - scr_io_pending_fn = pending; - scr_io_poll_fn = poll; -} - -/* The island's earliest armed timer deadline (HUGE_VAL when none): caps - * the sleep below so an armed AbortSignal.timeout fires on time while - * the loop waits on socket readiness — without keeping the loop alive by - * itself (the liveness test never consults it, Node's unref'd timer). */ -static SCR_TL double (*scr_island_deadline_fn)(void) = NULL; - -void scr_loop_set_island_deadline(double (*fn)(void)) { scr_island_deadline_fn = fn; } - /* The net hook (scr_net.c, when linked — the events-hook shape): * `pending` keeps the loop alive while servers/sockets are live, * `dispatch` fires at every turn top, and `pollfd` is the unit's poller @@ -3241,7 +3184,6 @@ static bool scr_loop_run_pass(ScrPromise *top_level, bool first_checkpoint) { /* spawn failures settle regardless: their 'error' is a * next-tick event, delivered even on an unref'd child */ scr_children_failed_pending() || - (scr_io_pending_fn != NULL && scr_io_pending_fn()) || (scr_events_pending_fn != NULL && scr_events_pending_fn()) || (scr_net_pending_fn != NULL && scr_net_pending_fn()) || (scr_dgram_pending_fn != NULL && scr_dgram_pending_fn()) || @@ -3261,7 +3203,6 @@ static bool scr_loop_run_pass(ScrPromise *top_level, bool first_checkpoint) { if (scr_stream_pending_fn != NULL && scr_stream_pending_fn()) continue; if (scr_nt_head != NULL) continue; bool kids = scr_children_pending(); - bool io = scr_io_pending_fn != NULL && scr_io_pending_fn(); bool events = scr_events_pending_fn != NULL && scr_events_pending_fn(); bool net = scr_net_pending_fn != NULL && scr_net_pending_fn(); bool dgram = scr_dgram_pending_fn != NULL && scr_dgram_pending_fn(); @@ -3276,7 +3217,7 @@ static bool scr_loop_run_pass(ScrPromise *top_level, bool first_checkpoint) { * Children follow the same rule: an unref'd child is still REAPED * while the loop runs (kids drives the sweeps and sleeps above) but * only reffed ones keep the process alive. */ - if (scr_reffed_timers == 0 && scr_reffed_immediates == 0 && !scr_children_reffed_pending() && !io && !events && !net && !dgram && !watch && !ffi && !renames && !crypto && !workers) break; + if (scr_reffed_timers == 0 && scr_reffed_immediates == 0 && !scr_children_reffed_pending() && !events && !net && !dgram && !watch && !ffi && !renames && !crypto && !workers) break; /* Sleep to the earliest deadline, then run every due timer (each may * enqueue microtasks, which the next iteration drains first). Who * sleeps depends on what is pending: @@ -3301,12 +3242,6 @@ static bool scr_loop_run_pass(ScrPromise *top_level, bool first_checkpoint) { * wait exactly like the portable child fallback so completion is noticed * promptly even when another poller owns the sleep. */ if (renames && due > now + SCR_CHILD_POLL_MS) due = now + SCR_CHILD_POLL_MS; - /* An armed island timer (AbortSignal.timeout) caps the sleep: it must - * fire on time even while the poller waits on socket readiness. */ - if (scr_island_deadline_fn != NULL) { - double isl_due = scr_island_deadline_fn(); - if (isl_due < due) due = isl_due; - } /* Pending immediates are always-ready work: no sleep — run due timers * (Node's timers phase precedes check), then the check phase below. */ if (scr_pending_immediates > 0) due = now; @@ -3323,22 +3258,12 @@ static bool scr_loop_run_pass(ScrPromise *top_level, bool first_checkpoint) { #endif bool evw = scr_events_watching_fn != NULL && scr_events_watching_fn(); #ifdef SCR_WORKERS - if (workers && scr_workers_wait_fn && !io && !kids && !evw && !net && !dgram && !watch && !ffi && !renames && !crypto) { + if (workers && scr_workers_wait_fn && !kids && !evw && !net && !dgram && !watch && !ffi && !renames && !crypto) { scr_workers_wait_fn(due > now ? due - now : 0); now = scr_now_ms(); } else #endif - if (io) { - if (kids && due > now + SCR_CHILD_POLL_MS) due = now + SCR_CHILD_POLL_MS; - /* Signals/stdin/net can't wake curl's fd wait (and its poll retries - * on EINTR), so they re-impose a coarser cap — bounded Ctrl-C and - * socket latency during a fetch, without the reap-granularity - * cost. */ - else if ((evw || net || dgram || watch || ffi || workers) && due > now + SCR_SIGNAL_POLL_MS) due = now + SCR_SIGNAL_POLL_MS; - scr_io_poll_fn(due > now ? due - now : 0); - now = scr_now_ms(); - if (scr_ready_len > 0) continue; /* io callbacks woke fibers */ - } else if (evw || net || dgram || watch || ffi || workers) { + if (evw || net || dgram || watch || ffi || workers) { #if defined(_WIN32) || defined(__wasi__) /* The win32 arm, and WASI hosts whose poll_oneoff adapters do not * reliably wake for a closed inherited stdin pipe: the sleep is a capped nanosleep and @@ -3600,20 +3525,6 @@ bool scr_loop_run(ScrPromise *top_level) { return rejection_failed; } -/* The island's half of the unhandled-rejection report (scr_island.c - * registers it at engine boot): called with print=true when the static - * ledger below reported nothing — one report, one voice, like Node's - * first-unhandled-rejection death. Returns whether the island had any. - * Static builds never set it. */ -static SCR_TL bool (*scr_island_rejections_fn)(bool print) = NULL; -static SCR_TL int (*scr_island_jobs_drain_fn)(void) = NULL; - -void scr_loop_set_island_rejections(bool (*fn)(bool print), - int (*drain_jobs)(void)) { - scr_island_rejections_fn = fn; - scr_island_jobs_drain_fn = drain_jobs; -} - /* ── process.on('unhandledRejection') ───────────────────────────────── * Dyn listeners are called per never-observed rejection at the completed * nextTick/microtask checkpoint. A registered listener suppresses the @@ -3630,16 +3541,6 @@ SCR_TL bool (*scr_urj_deliver_fn)(ScrPromise *p) = NULL; * Snapshot the ledger: a listener can reject another promise, but that * new rejection belongs to the NEXT checkpoint rather than this report. */ bool scr_report_unhandled_rejections(void) { - /* Static fibers drain before engine jobs in this runtime's documented - * island ordering. Complete BOTH halves of that microtask checkpoint - * before deciding either rejection ledger; engine reactions can attach - * a handler to a rejection that would otherwise look unhandled here. - * A host callback can wake a static fiber/tick, in which case the loop - * must drain that work before reporting too. */ - if (scr_island_jobs_drain_fn != NULL) { - scr_island_jobs_drain_fn(); - if (scr_ready_len > 0 || scr_nt_head != NULL) return false; - } bool any = false; bool crashed = false; size_t report_count = scr_nunhandled; @@ -3711,10 +3612,6 @@ bool scr_report_unhandled_rejections(void) { scr_exc_print_uncaught(); return true; } - if (scr_island_rejections_fn != NULL) { - bool island = scr_island_rejections_fn(!any); - any = any || island; - } /* main returns 1 on a reported rejection — the 'exit' listeners (atexit) * must see that code, like Node's. */ if (any) scr_exit_code_note(1); diff --git a/packages/runtime/src/scr_bytes_io.c b/packages/runtime/src/scr_bytes_io.c index 1e2cc8a13..89868b17e 100644 --- a/packages/runtime/src/scr_bytes_io.c +++ b/packages/runtime/src/scr_bytes_io.c @@ -653,7 +653,7 @@ static bool scr_fs_callback_times(const ScrDyn *atime, const ScrDyn *mtime, bool } static ScrArr *scr_fs_cb_vectors(const ScrDyn *buffers) { - ScrDyn *snapshot = buffers->kind == SCR_DYN_TYPED_REF && scr_dyn_isl_is_array(buffers) + ScrDyn *snapshot = buffers->kind == SCR_DYN_TYPED_REF && scr_dyn_ref_is_array(buffers) ? scr_dyn_typed_ref_materialize(buffers) : NULL; const ScrDyn *array = snapshot ? snapshot : buffers; if (array->kind != SCR_DYN_ARR) { @@ -1057,7 +1057,7 @@ ScrBytes *scr_buffer_from_dyn(const ScrDyn *value, const ScrStr *encoding) { return out; } } - if (value->kind == SCR_DYN_TYPED_REF || value->kind == SCR_DYN_HANDLE || value->kind == SCR_DYN_JSVAL) { + if (value->kind == SCR_DYN_TYPED_REF || value->kind == SCR_DYN_HANDLE) { return scr_buffer_from_refusal("with an opaque reference"); } char detail[64]; diff --git a/packages/runtime/src/scr_console.c b/packages/runtime/src/scr_console.c index f45502e2a..c461a8769 100644 --- a/packages/runtime/src/scr_console.c +++ b/packages/runtime/src/scr_console.c @@ -47,9 +47,6 @@ extern long scr_obj_lifetime_count(void); /* scr_object.c */ extern long scr_union_live_count(void); /* scr_union.c */ extern long scr_dyn_live_count(void); /* scr_json.c */ extern long scr_bytes_live_count(void); /* scr_bytes.c */ -#ifdef SCR_DYNAMIC -extern long scr_jsval_live_count(void); /* scr_island.c */ -#endif static void scr_rc_audit_at_exit(void) { /* Fibers suspended forever at loop exhaustion (awaits nobody resolves — @@ -78,21 +75,15 @@ static void scr_rc_audit_at_exit(void) { long unions = scr_union_live_count(); long dyns = scr_dyn_live_count(); long bytes = scr_bytes_live_count(); -#ifdef SCR_DYNAMIC - long jsvals = scr_jsval_live_count(); -#else - long jsvals = 0; -#endif if (strings != 0 || arrays != 0 || maps != 0 || boxes != 0 || closures != 0 || - objects != 0 || unions != 0 || dyns != 0 || bytes != 0 || jsvals != 0) { + objects != 0 || unions != 0 || dyns != 0 || bytes != 0) { fflush(stdout); fprintf(stderr, "scriptc RC AUDIT FAILED: %ld heap string(s), %ld array(s), " "%ld map(s), %ld box(es), %ld closure(s), %ld object(s), " - "%ld union(s), %ld dyn value(s), %ld bytes value(s), " - "%ld island value(s) live at exit\n", + "%ld union(s), %ld dyn value(s), %ld bytes value(s) live at exit\n", strings, arrays, maps, boxes, closures, objects, unions, dyns, - bytes, jsvals); + bytes); _Exit(99); } } @@ -135,7 +126,7 @@ static void scr_enable_utf8_console_output(void) { } #endif -void scr_runtime_abi_v13(void) {} +void scr_runtime_abi_v14(void) {} void scr_init(void) { #ifdef SCR_WORKERS diff --git a/packages/runtime/src/scr_dc.c b/packages/runtime/src/scr_dc.c index 688796872..4c16ab5b6 100644 --- a/packages/runtime/src/scr_dc.c +++ b/packages/runtime/src/scr_dc.c @@ -135,12 +135,7 @@ static void dc_throw_bad_fn_arg(const ScrDyn *cb, const char *arg_name) { (int)(cb->v.str->len < 28 ? cb->v.str->len : 28), cb->v.str->data); received = detail; break; - case SCR_DYN_JSVAL: - /* An engine callback may well BE a function — subscribing island - * values is unarmed (lane dyn-routing-ops); fence loudly rather - * than claim "Received an instance of Object". */ - scr_dyn_isl_fence(cb, "subscribing"); - return; + default: break; } char buf[160]; diff --git a/packages/runtime/src/scr_dyn_invoke.c b/packages/runtime/src/scr_dyn_invoke.c index 2277ef598..a31d32236 100644 --- a/packages/runtime/src/scr_dyn_invoke.c +++ b/packages/runtime/src/scr_dyn_invoke.c @@ -129,11 +129,7 @@ static void scr_dyn_display_buf(ScrJsonBuf *b, const ScrDyn *d) { * for a bare promise is "[object Promise]". */ scr_jb_puts(b, "[object Promise]"); return; - case SCR_DYN_JSVAL: - /* The engine's own ToString (a bridged failure leaves the exception - * pending and appends nothing — the loud path). */ - scr_dyn_isl_tostr_buf(b, d); - return; + case SCR_DYN_TYPED_REF: { ScrDyn *materialized = scr_dyn_typed_ref_materialize(d); scr_dyn_display_buf(b, materialized); @@ -220,12 +216,8 @@ static ScrDyn *dyn_call_cb(ScrDyn *cb, ScrDyn *item, size_t i, ScrDyn *recv) { static bool dyn_cb_check(ScrDyn *const *args, size_t argc) { ScrDyn *cb = argc > 0 ? args[0] : scr_dyn_undefined(); if (scr_dyn_is_callable(cb)) return true; - /* An ENGINE function is callable — scr_dyn_call's JSVAL arm routes it - * (the loops below call through scr_dyn_call, which converts the checked-dynamic tree - * element arguments per the uniform crossing). A wrapped NON-function - * falls through to the display path: String(cb) renders through the - * engine, exactly Node's message. */ - if (cb->kind == SCR_DYN_JSVAL && scr_dyn_isl_typeof_is(cb, "function")) return true; + + ScrJsonBuf b; scr_jb_init(&b); scr_dyn_display_buf(&b, cb); @@ -261,7 +253,7 @@ static ScrDyn *dyn_borrow_get(ScrDyn *recv, const ScrStr *key) { } if (recv->kind == SCR_DYN_OBJ) return scr_dyn_obj_read(recv, key->data, key->len); if (recv->kind == SCR_DYN_PROXY) return scr_dyn_proxy_get(recv, key); - if (recv->kind == SCR_DYN_JSVAL) return scr_dyn_isl_key_get(recv, key); + if (recv->kind == SCR_DYN_FUNC) { ScrDyn *value = scr_dyn_fn_get(recv, key->data, key->len); return value ? value : scr_dyn_retain(scr_dyn_undefined()); @@ -310,7 +302,7 @@ static bool dyn_borrow_has(ScrDyn *recv, const ScrStr *key) { scr_dyn_release(value); return present; } - if (recv->kind == SCR_DYN_JSVAL) return scr_dyn_isl_fence(recv, "Array.prototype borrowed property presence"); + return scr_dyn_has_key(recv, key); } @@ -655,7 +647,7 @@ static bool dyn_arr_flatten(ScrDyn *out, const ScrDyn *source, double depth, siz if (!dyn_borrow_present((ScrDyn *)source, i)) { if (scr_exc_pending()) return false; continue; } ScrDyn *item = dyn_borrow_item((ScrDyn *)source, i); if (!item) return false; - if (depth > 0 && item->kind == SCR_DYN_TYPED_REF && scr_dyn_isl_is_array(item)) { + if (depth > 0 && item->kind == SCR_DYN_TYPED_REF && scr_dyn_ref_is_array(item)) { ScrDyn *view = scr_dyn_typed_ref_materialize(item); if (!view || scr_exc_pending()) { scr_dyn_release(view); scr_dyn_release(item); return false; } bool ok = dyn_arr_flatten(out, view, depth - 1, visits); @@ -815,16 +807,7 @@ static ScrDyn *scr_dyn_invoke_impl( return scr_dynh_dispatch(recv, method, args, argc, what); } - /* Island-held receivers: the ENGINE runs its own prototypes (JS-exact - * flatMap/map/forEach/filter — Array.prototype is the engine's) through - * scr_jsval_call_method; arguments cross per the uniform conversion - * (wrapped cells by reference, dyn data deep-copied, FUNC boxes through - * the host shim), a missing member throws the engine's own TypeError, - * and the result wraps back scalar-normalized. `what` is unused — the - * engine's message names the failure. */ - if (recv->kind == SCR_DYN_JSVAL) { - return scr_dyn_jsval_ops()->invoke(recv->v.jsval.cell, method, args, argc, what); - } + if (recv->kind == SCR_DYN_PROXY) { ScrStr *key = scr_str_new(method, strlen(method)); ScrDyn *callable = scr_dyn_proxy_get(recv, key); @@ -868,10 +851,7 @@ static ScrDyn *scr_dyn_invoke_impl( * original receiver as `this`. */ if (recv->kind == SCR_DYN_OBJ || recv->kind == SCR_DYN_PROXY) { ScrDyn *m = scr_dyn_obj_read(recv, method, strlen(method)); - if (m && (scr_dyn_is_callable(m) || - /* a WRAPPED engine function stored as a dyn member: the - * routed call (scr_dyn_call's JSVAL arm) runs it. */ - (m->kind == SCR_DYN_JSVAL && scr_dyn_isl_typeof_is(m, "function")))) { + if (m && (scr_dyn_is_callable(m))) { /* JS binds the receiver for the call (`obj.method()` — this === obj): * the ambient-receiver window (scr_runtime.h). */ scr_dyn_this_push_dyn(callback_recv ? callback_recv : recv); @@ -917,7 +897,7 @@ static ScrDyn *scr_dyn_invoke_impl( { ScrDyn *own = scr_dyn_fn_get(recv, method, strlen(method)); if (own) { - if (own->kind == SCR_DYN_FUNC || own->kind == SCR_DYN_JSVAL) { + if (own->kind == SCR_DYN_FUNC) { scr_dyn_this_push_dyn(recv); ScrDyn *r = scr_dyn_call(own, args, argc, what); scr_dyn_this_pop(); @@ -1239,7 +1219,7 @@ static ScrDyn *scr_dyn_invoke_impl( if (!dyn_arr_copy_item(out, recv, i, true)) { scr_dyn_release(out); return NULL; } } for (size_t a = 0; a < argc; a++) { - ScrDyn *view = args[a]->kind == SCR_DYN_TYPED_REF && scr_dyn_isl_is_array(args[a]) + ScrDyn *view = args[a]->kind == SCR_DYN_TYPED_REF && scr_dyn_ref_is_array(args[a]) ? scr_dyn_typed_ref_materialize(args[a]) : NULL; if (scr_exc_pending()) { scr_dyn_release(view); scr_dyn_release(out); return NULL; } const ScrDyn *source = view ? view : args[a]; @@ -1460,7 +1440,7 @@ static ScrDyn *scr_dyn_invoke_impl( cb, item, i, callback_recv ? callback_recv : recv); scr_dyn_release(item); if (!r) { scr_dyn_release(out); return NULL; } - if (r->kind == SCR_DYN_TYPED_REF && scr_dyn_isl_is_array(r)) { + if (r->kind == SCR_DYN_TYPED_REF && scr_dyn_ref_is_array(r)) { ScrDyn *view = scr_dyn_typed_ref_materialize(r); scr_dyn_release(r); r = view; @@ -1472,25 +1452,6 @@ static ScrDyn *scr_dyn_invoke_impl( if (scr_exc_pending()) { scr_dyn_release(r); scr_dyn_release(out); return NULL; } } scr_dyn_release(r); - } else if (scr_dyn_isl_is_array(r)) { - /* An engine-array result: length + element reads through the - * routed engine ops (a bridged surprise unwinds). */ - ScrStr *lk = scr_str_new("length", 6); - ScrDyn *lenv = scr_dyn_isl_key_get(r, lk); - scr_str_release(lk); - if (!lenv) { scr_dyn_release(r); scr_dyn_release(out); return NULL; } - size_t rn = lenv->kind == SCR_DYN_NUM ? (size_t)lenv->v.num : 0; - scr_dyn_release(lenv); - for (size_t j = 0; j < rn; j++) { - char idx[24]; - int ilen = snprintf(idx, sizeof idx, "%zu", j); - ScrStr *jk = scr_str_new(idx, (size_t)ilen); - ScrDyn *el = scr_dyn_isl_key_get(r, jk); - scr_str_release(jk); - if (!el) { scr_dyn_release(r); scr_dyn_release(out); return NULL; } - scr_dyn_arr_push(out, el); /* ownership moves in */ - } - scr_dyn_release(r); } else { scr_dyn_arr_push(out, r); /* ownership moves in */ } @@ -1830,8 +1791,8 @@ ScrDyn *scr_dyn_array_prototype(void) { static ScrDyn *scr_dyn_define_props_internal(ScrDyn *target, ScrDyn *descs, ScrDyn *protected_keys) { /* Island-held operands ARE objects to Node — the non-object TypeError * below would be a wrong claim. Loud fence (lane dyn-routing-ops). */ - scr_dyn_isl_fence(target, "Object.defineProperties"); - if (!scr_exc_pending()) scr_dyn_isl_fence(descs, "Object.defineProperties"); + + if (scr_exc_pending()) return NULL; if (target->kind != SCR_DYN_OBJ && target->kind != SCR_DYN_FUNC && target->kind != SCR_DYN_ARR) { scr_throw_error_msg(SCR_ERR_TYPE, "Object.defineProperties called on non-object", diff --git a/packages/runtime/src/scr_fetch.c b/packages/runtime/src/scr_fetch.c index 849cdbfe6..5fce85570 100644 --- a/packages/runtime/src/scr_fetch.c +++ b/packages/runtime/src/scr_fetch.c @@ -1,79 +1,6 @@ -/* fetch over scriptc's OWN net stack — the static tier below is entirely - * engine-free, while the dynamic tier exposes the same transport through - * the island's full web API. Both use the - * scr_platform poller + scr_net sockets, scr_http's HTTP/1.1 client - * parser, scr_tls (vendored mbedTLS) for https, and zlib for response - * decompression. No libcurl anywhere: the architecture is Node's own - * (libuv sockets + OpenSSL + undici; ours: poller + mbedTLS + this - * unit), which is what lets fetch compile for every target the socket - * units reach — win32 included, where no system-libcurl contract - * exists. The curl implementation this replaces stays compilable for - * one release as the reference (scr_fetch_curl.c, selected by - * SCRIPTC_FETCH_CURL=1 at build time; same install symbol, same island - * surface, same fixture suite). - * - * Architecture (the JS half is UNCHANGED from the curl bridge): - * - The JS half (fetch_glue below) defines globalThis.fetch over two host - * functions: host.start(req, cbs) begins a transfer and host.abort(id) - * cancels one (response-body cancel). fetch() returns a REAL island - * promise; the Response's body is an island ReadableStream fed by - * C→engine callbacks as data arrives. - * - The C half is a fetch-layer client over scr_http's client machinery: - * one ScrHttpClientReq per hop, minted runtime closures (caps[0] boxes - * the transfer) as its response/data/end/error listeners, callbacks - * firing from the net unit's dispatch station — the loop's own poller - * sleeps on socket readiness, so this unit registers NO poll hook with - * the island (the curl bridge needed one to sleep on curl's fds). - * AbortSignal.timeout stays punctual through the loop's island-timer - * deadline hook (scr_loop_set_island_deadline — armed island timers cap - * the idle sleep exactly the way the curl poll capped its own). - * - fetch SEMANTICS, matched to Node/undici: HTTP errors RESOLVE (only - * network failure rejects, with TypeError "fetch failed" — Node's exact - * message); redirects are followed IN THIS UNIT (20 hops, fetch's - * limit; 303 — and 301/302 for POST — rewrite to GET and drop the body - * and its content-* headers, the fetch spec's rules; authorization is - * stripped on cross-origin hops; response.url = the final URL without - * its fragment, response.redirected set; a redirect hop's own body - * never reaches the island). The request head carries undici's exact - * default header set in undici's order (host, connection, the user - * headers, accept, accept-language, sec-fetch-mode, user-agent, - * accept-encoding — captured from Node 24 on the wire); gzip/zlib - * response bodies arrive decompressed (accept-encoding advertises - * "gzip, deflate", and content-encoding: gzip/x-gzip/deflate inflates - * through zlib's 15+32 auto-detect — raw-deflate servers and br/zstd - * are out of the slice, honestly: br/zstd are never offered). - * - DNS: scr_net dials IP literals only (Node's shape for its slice), so - * this unit resolves hostnames with getaddrinfo AT HOP START — the - * dns.lookup precedent (scr_dgram.c): synchronous resolution, first - * answer wins; failures ride the socket's deferred - * "getaddrinfo ENOTFOUND host" error so the rejection's cause is - * Node's exact shape. TLS handshakes verify/SNI against the URL - * HOSTNAME while the socket dials the resolved IP. - * - Proxies, matched to Node: undici's global fetch IGNORES http_proxy/ - * https_proxy unless NODE_USE_ENV_PROXY=1 opts in (Node 24's - * EnvHttpProxyAgent). Opted in, http:// targets relay through the - * proxy as absolute-URI requests (the classic forward-proxy wire form; - * undici tunnels CONNECT, but the fixture proxy counts either form - * identically), no_proxy exclusions honored. https-over-proxy - * (CONNECT) is out of the slice, so an opted-in HTTPS proxy rejects - * instead of silently bypassing the configured policy. - * - AbortSignal is wired in both tiers: an already-aborted signal rejects - * with its reason before any transfer starts and aborting a live - * transfer destroys the hop's connection. The dynamic tier uses the - * island's Web/timer glue; the static tier below uses native signal - * handles and the runtime's unref'd timer heap. - * - Error causes, Node's shapes: connect ECONNREFUSED ip:port / - * getaddrinfo ENOTFOUND host pass through from the net layer with - * their codes; a server that dies before the response head maps to - * undici's cause exactly — "other side closed", code UND_ERR_SOCKET - * (the curl bridge could only offer curl's own string there). - * - Ownership: each transfer is refcounted — the live registry holds +1 - * and every minted listener closure's box holds +1; settling releases - * the engine callback object and the hop client, and teardown - * (registered with the island) frees whatever is still live before the - * engine goes down, so the island audit stays zero. */ -/* Fetch's bad-port table. Keep the static and dynamic transports on one - * source of truth: both start a fresh hop after every followed redirect. */ +/* Native Fetch, AbortSignal, Headers, and ReadableStream implementations. + * Requests use the native socket, TLS, and event-loop runtime. */ +/* Fetch's bad-port table applies to the initial request and each redirect. */ #define SCR_FETCH_BAD_PORTS \ 1, 7, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 25, 37, 42, 43, 53, 69, \ 77, 79, 87, 95, 101, 102, 103, 104, 109, 110, 111, 113, 115, 117, 119, \ @@ -82,8 +9,6 @@ 993, 995, 1719, 1720, 1723, 2049, 3659, 4045, 5060, 5061, 6000, 6566, \ 6665, 6666, 6667, 6668, 6669, 6679, 6697, 10080 -#ifndef SCR_DYNAMIC - #include "scr_runtime.h" #include "scr_url_internal.h" @@ -98,15 +23,6 @@ static void sf_signal_install(void); #endif -/* - * The static tier is a small native Web-platform island of its own: - * AbortSignal, Response, ReadableStream, its default reader, and its - * controller are SCR_DYN_HANDLE values. That preserves identity and - * permits normal typed member syntax while every operation still lands - * in C. Response promises resolve at the response HEAD; body chunks flow - * into the same native stream consumed by reader.read() or json(). - */ - typedef struct SfTransfer SfTransfer; typedef struct SfSignal SfSignal; typedef struct SfSignalWatch SfSignalWatch; @@ -881,25 +797,6 @@ static void sf_signal_dispatch_listeners(SfSignal *s, ScrDyn *provided_event) { } this_listener = callable; callable = (ScrDyn *)handle; - } else if (callable->kind == SCR_DYN_JSVAL && - !scr_dyn_isl_typeof_is(callable, "function")) { - ScrStr *key = scr_str_new("handleEvent", 11); - owned_handle = scr_dyn_isl_key_get(callable, key); - scr_str_release(key); - if (!owned_handle) { - scr_dyn_release(dispatch[i].listener); - if (scr_exc_pending()) { - sf_defer_listener_error(scr_exc_take()); - } - continue; - } - if (owned_handle->kind == SCR_DYN_UNDEF) { - scr_dyn_release(owned_handle); - scr_dyn_release(dispatch[i].listener); - continue; - } - this_listener = callable; - callable = owned_handle; } else if (callable->kind != SCR_DYN_FUNC) { /* Web IDL accepts every object as an EventListener. Native arrays, * byte views, handles, and promises cannot carry an expando @@ -1177,10 +1074,10 @@ static bool sf_abort_listener_value(const ScrDyn *listener) { case SCR_DYN_HANDLE: case SCR_DYN_PROMISE: return true; - case SCR_DYN_JSVAL: + case SCR_DYN_TYPED_REF: - return scr_dyn_isl_typeof_is(listener, "function") || - scr_dyn_isl_typeof_is(listener, "object"); + return scr_dyn_ref_typeof_is(listener, "function") || + scr_dyn_ref_typeof_is(listener, "object"); default: return false; } @@ -2540,23 +2437,14 @@ ScrDyn *scr_fetch_stream_from(ScrDyn *iterable) { "Cannot read properties of undefined (reading 'Symbol(Symbol.asyncIterator)')"); return NULL; } - if (iterable->kind != SCR_DYN_ARR && - iterable->kind != SCR_DYN_BYTES && - iterable->kind != SCR_DYN_STR && - iterable->kind != SCR_DYN_JSVAL) { + if (iterable->kind != SCR_DYN_ARR && iterable->kind != SCR_DYN_BYTES && iterable->kind != SCR_DYN_STR) { /* Reuse the checked-dynamic iterable error wording. */ ScrDyn *packed = scr_dyn_iter_pack(iterable, NULL); scr_dyn_release(packed); return NULL; } ScrDyn *source = iterable; - if (iterable->kind == SCR_DYN_JSVAL) { - /* Static builds do not normally carry engine values. If one reaches - * this fallback, validate/drain it through the engine once; native - * arrays/bytes/strings retain their live container below. */ - source = scr_dyn_iter_pack(iterable, NULL); - if (!source) return NULL; - } + SfStream *s = sf_stream_new_native(); s->from_dyn = scr_dyn_retain(source); sf_stream_schedule_initial_pull(s); @@ -2623,21 +2511,14 @@ static ScrDyn *sf_stream_invoke(void *ptr, ScrDyn *self, const char *method, ScrDyn *options = argc ? args[0] : NULL; ScrDyn *materialized = NULL; ScrDyn *mode = NULL; - bool owned_mode = false; if (options && options->kind == SCR_DYN_TYPED_REF) { materialized = scr_dyn_typed_ref_materialize(options); options = materialized; } if (options && options->kind == SCR_DYN_OBJ) { mode = scr_dyn_obj_get(options, "mode", 4); - } else if (options && options->kind == SCR_DYN_JSVAL) { - ScrStr *key = scr_str_new("mode", 4); - mode = scr_dyn_isl_key_get(options, key); - scr_str_release(key); - owned_mode = mode != NULL; } bool byob = mode && mode->kind != SCR_DYN_UNDEF; - if (owned_mode) scr_dyn_release(mode); scr_dyn_release(materialized); if (scr_exc_pending()) return NULL; if (byob) { @@ -4398,6 +4279,10 @@ static void sf_stream_request_flush(SfStream *s) { scr_bytes_release(bytes); sf_chunk_release(c); } + /* A response body reused as an upload may have paused its source socket + * before fetch attached this consumer. Draining its queue creates demand + * just as a reader.read() does, so let the source transport deliver more. */ + sf_response_resume_if_ready(s); if (s->error) { sf_transfer_stream_error(t, s->error); } else if (s->close_requested) { @@ -4993,7 +4878,7 @@ static bool sf_response_init_object_like(const ScrDyn *init) { case SCR_DYN_HANDLE: case SCR_DYN_PROMISE: case SCR_DYN_TYPED_REF: - case SCR_DYN_JSVAL: + return true; default: return false; @@ -5822,1705 +5707,4 @@ static void sf_signal_install(void) { #endif /* SCR_FETCH_SIGNAL_ONLY */ -#else /* SCR_DYNAMIC */ - -#include "scr_runtime.h" -#include "scr_url_internal.h" - -#include -#include -#include - -#include - -#include "quickjs.h" - -static void fx_oom(void) { - fputs("scriptc: out of memory\n", stderr); - abort(); -} - -/* ── small string helpers (ScrStr names are not NUL-guaranteed at the - * lengths we compare, so everything is len-aware, ASCII-case-folded) ── */ - -static bool fx_eq_ci(const char *a, size_t alen, const char *b) { - size_t blen = strlen(b); - if (alen != blen) return false; - for (size_t i = 0; i < alen; i++) { - char c = a[i]; - if (c >= 'A' && c <= 'Z') c = (char)(c - 'A' + 'a'); - if (c != b[i]) return false; - } - return true; -} - -/* HTTP field values and reason phrases are ByteStrings: each wire octet - * becomes the same U+00XX code point in JavaScript. QuickJS string creation - * consumes UTF-8, so expand Latin-1 before crossing into the engine. */ -static ScrStr *fx_latin1_to_utf8(const ScrStr *raw) { - size_t extra = 0; - for (size_t i = 0; i < raw->len; i++) { - if ((unsigned char)raw->data[i] >= 0x80) extra++; - } - if (extra == 0) return scr_str_retain((ScrStr *)raw); - char *utf8 = malloc(raw->len + extra); - if (!utf8) fx_oom(); - size_t at = 0; - for (size_t i = 0; i < raw->len; i++) { - unsigned char byte = (unsigned char)raw->data[i]; - if (byte < 0x80) { - utf8[at++] = (char)byte; - } else { - utf8[at++] = (char)(0xc0 | (byte >> 6)); - utf8[at++] = (char)(0x80 | (byte & 0x3f)); - } - } - ScrStr *out = scr_str_new(utf8, at); - free(utf8); - return out; -} - -static bool fx_str_is(const ScrStr *s, const char *lit) { return fx_eq_ci(s->data, s->len, lit); } - -static ScrStr *fx_location_to_utf8(const ScrStr *raw) { - ScrBytes *bytes = scr_bytes_new(SCR_BYTES_U8, (double)raw->len); - if (raw->len > 0) memcpy(bytes->data, raw->data, raw->len); - ScrStr *encoding = scr_str_new("utf8", 4); - ScrStr *out = scr_bytes_to_str(bytes, encoding); - scr_str_release(encoding); - scr_bytes_release(bytes); - return out; -} - -/* Does the flat [name, value, ...] pairs array carry `name`? */ -static bool fx_pairs_have(ScrArr *pairs, const char *name) { - size_t n = (size_t)scr_arr_len(pairs); - bool found = false; - for (size_t i = 0; i + 1 < n && !found; i += 2) { - ScrStr *nm = (ScrStr *)scr_arr_get_ref(pairs, (double)i); - found = fx_eq_ci(nm->data, nm->len, name); - scr_str_release(nm); - } - return found; -} - -static void fx_pairs_push(ScrArr *pairs, const char *name, const char *value, size_t vlen) { - scr_arr_push_ref(pairs, scr_str_new(name, strlen(name))); - scr_arr_push_ref(pairs, scr_str_new(value, vlen)); -} - -static bool fx_content_length(ScrArr *headers, bool *present_out, - size_t *length_out) { - bool present = false; - size_t length = 0; - size_t n = (size_t)scr_arr_len(headers); - for (size_t i = 0; i + 1 < n; i += 2) { - ScrStr *name = scr_arr_get_ref(headers, (double)i); - ScrStr *value = scr_arr_get_ref(headers, (double)(i + 1)); - if (!fx_eq_ci(name->data, name->len, "content-length")) { - scr_str_release(name); - scr_str_release(value); - continue; - } - if (present) { - scr_str_release(name); - scr_str_release(value); - return false; - } - size_t start = 0; - size_t end = value->len; - while (start < end && - (value->data[start] == ' ' || value->data[start] == '\t')) { - start++; - } - while (end > start && - (value->data[end - 1] == ' ' || - value->data[end - 1] == '\t')) { - end--; - } - bool valid = start < end; - size_t parsed = 0; - for (size_t j = start; j < end && valid; j++) { - unsigned char c = (unsigned char)value->data[j]; - if (c < '0' || c > '9') { - valid = false; - break; - } - size_t digit = (size_t)(c - '0'); - if (parsed > (SIZE_MAX - digit) / 10) { - valid = false; - break; - } - parsed = parsed * 10 + digit; - } - scr_str_release(name); - scr_str_release(value); - if (!valid) return false; - present = true; - length = parsed; - } - *present_out = present; - *length_out = length; - return true; -} - -/* ── transfers ───────────────────────────────────────────────────────── */ - -enum { - FX_REDIRECT_FOLLOW, - FX_REDIRECT_ERROR, - FX_REDIRECT_MANUAL, -}; - -typedef struct FxTransfer { - size_t rc; /* the live registry's +1 plus one per minted listener box */ - int id; - JSContext *ctx; - JSValue cbs; /* { onResponse, onData, onEnd, onError } — owned while live */ - bool cbs_live; - /* the request, as it evolves across redirect hops */ - ScrStr *method; /* owned */ - ScrArr *headers; /* flat [name, value, ...] user pairs — owned */ - ScrBytes *body; /* owned, NULL = none */ - ScrUrl *url; /* the CURRENT hop's URL — owned */ - int redirect_mode; - int hops; - bool redirected; - bool request_streaming; - bool use_env_proxy; - bool request_ended; - bool request_has_content_length; - size_t request_content_length; - size_t request_body_sent; - /* the live hop */ - ScrHttpClientReq *client; /* +1, NULL between/after hops */ - bool responded; /* onResponse fired (the final response) */ - bool cancelled; /* island aborted/cancelled: die silently */ - bool done; /* settled: no callback ever fires again */ - /* response decompression */ - bool inflating; - bool inflate_member_end; - z_stream zs; - struct FxTransfer *next; -} FxTransfer; - -static SCR_TL FxTransfer *fx_live = NULL; /* registry: +1 each */ -static SCR_TL size_t fx_nlive = 0; -static SCR_TL int fx_next_id = 1; - -static FxTransfer *fx_retain(FxTransfer *t) { - t->rc++; - return t; -} - -static void fx_release(FxTransfer *t) { - if (--t->rc > 0) return; - scr_str_release(t->method); - scr_arr_release(t->headers); - if (t->body) scr_bytes_release(t->body); - if (t->url) scr_url_release(t->url); - if (t->client) scr_http_client_release(t->client); - if (t->inflating) inflateEnd(&t->zs); - if (t->cbs_live) JS_FreeValue(t->ctx, t->cbs); - free(t); -} - -static void *fx_retain_v(void *p) { return fx_retain((FxTransfer *)p); } -static void fx_release_v(void *p) { fx_release((FxTransfer *)p); } - -/* Settle: the transfer is over (delivered, failed, or aborted) — drop the - * hop client, free the engine callbacks, and leave the registry. Idempotent. */ -static void fx_settle(FxTransfer *t) { - if (t->done) return; - t->done = true; - if (t->client) { - scr_http_client_release(t->client); - t->client = NULL; - } - if (t->cbs_live) { - JS_FreeValue(t->ctx, t->cbs); - t->cbs = JS_UNDEFINED; - t->cbs_live = false; - } - for (FxTransfer **link = &fx_live; *link; link = &(*link)->next) { - if (*link == t) { - *link = t->next; - fx_nlive--; - fx_release(t); /* the registry's +1 */ - return; - } - } -} - -/* Calls one callback off the cbs object, swallowing (but reporting) any - * engine exception — the callbacks are our own glue and must not throw. - * Entered from the net dispatch station (the main stack): re-anchor the - * engine's stack-overflow check first, the every-island-entry rule. */ -static void fx_call(FxTransfer *t, const char *name, int argc, JSValueConst *argv) { - if (!t->cbs_live) return; - scr_island_host_enter(); - JSContext *ctx = t->ctx; - JSValue fn = JS_GetPropertyStr(ctx, t->cbs, name); - JSValue r = JS_Call(ctx, fn, JS_UNDEFINED, argc, argv); - JS_FreeValue(ctx, fn); - if (JS_IsException(r)) { - JSValue e = JS_GetException(ctx); - const char *msg = JS_ToCString(ctx, e); - fprintf(stderr, "scriptc: fetch internal callback '%s' threw: %s\n", name, - msg ? msg : "?"); - if (msg) JS_FreeCString(ctx, msg); - JS_FreeValue(ctx, e); - return; - } - JS_FreeValue(ctx, r); -} - -/* Network failure → onError(detail, code) → the glue's TypeError "fetch - * failed" with the classified cause. Settles the transfer. */ -static void fx_error(FxTransfer *t, const char *detail, const char *code) { - if (t->done || t->cancelled) { - fx_settle(t); - return; - } - JSContext *ctx = t->ctx; - JSValue args[2]; - args[0] = JS_NewString(ctx, detail); - args[1] = code ? JS_NewString(ctx, code) : JS_UNDEFINED; - fx_call(t, "onError", 2, (JSValueConst *)args); - JS_FreeValue(ctx, args[0]); - JS_FreeValue(ctx, args[1]); - fx_settle(t); -} - -static void fx_request_length_mismatch(FxTransfer *t) { - if (t->client) scr_http_client_destroy(t->client); - fx_error(t, "Request body length does not match content-length header", - "UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"); -} - -/* ── minted listener closures (caps[0] boxes the transfer) ───────────── */ - -static ScrClosure *fx_closure(FxTransfer *t, void *fn) { - /* fn doubles as the closure's own entry: zero-payload lists (req 'end') - * call cb->fn(cb) directly, payload lists call the fn stored beside the - * registration — both routes land on the same handler here. */ - ScrClosure *cb = scr_closure_new(fn, 1); - ScrBox *box = scr_box_new_obj(&fx_retain_v, &fx_release_v, NULL); - scr_box_set_ref(box, fx_retain(t)); - cb->caps[0] = box; - return cb; -} - -/* +1 — release after use. */ -static FxTransfer *fx_from(ScrClosure *cb) { return (FxTransfer *)scr_box_get_ref(cb->caps[0]); } - -/* ── URL helpers ─────────────────────────────────────────────────────── */ - -/* scheme://[userinfo@]host[:port]path[?query][#fragment] — response.url - * and the proxy's absolute-URI form exclude the fragment (Node). */ -static ScrStr *fx_url_serialize(const ScrUrl *u, bool with_fragment) { - size_t cap = u->scheme->len + u->userinfo->len + u->host->len + u->port->len + - u->path->len + u->query->len + u->fragment->len + 8; - char *buf = malloc(cap); - if (!buf) fx_oom(); - size_t n = 0; - memcpy(buf + n, u->scheme->data, u->scheme->len); - n += u->scheme->len; - buf[n++] = ':'; - if (u->has_authority) { - buf[n++] = '/'; - buf[n++] = '/'; - if (u->userinfo->len > 0) { - memcpy(buf + n, u->userinfo->data, u->userinfo->len); - n += u->userinfo->len; - buf[n++] = '@'; - } - memcpy(buf + n, u->host->data, u->host->len); - n += u->host->len; - if (u->port->len > 0) { - buf[n++] = ':'; - memcpy(buf + n, u->port->data, u->port->len); - n += u->port->len; - } - } - if (u->path->len > 0) { - memcpy(buf + n, u->path->data, u->path->len); - n += u->path->len; - } else { - buf[n++] = '/'; - } - memcpy(buf + n, u->query->data, u->query->len); - n += u->query->len; - if (with_fragment) { - memcpy(buf + n, u->fragment->data, u->fragment->len); - n += u->fragment->len; - } - ScrStr *out = scr_str_new(buf, n); - free(buf); - return out; -} - -/* Parse an absolute URL, answering NULL (static exception CLEARED) instead - * of throwing — this unit runs inside engine host calls and the net - * dispatch, where a pending static exception belongs to nobody. */ -static ScrUrl *fx_url_parse(ScrStr *s) { - ScrUrl *u = scr_url_new(s); - if (!u) scr_exc_clear(); - return u; -} - -/* Resolve a Location header against the current hop's URL. Handles the - * absolute form plus the relative shapes real servers send (//authority, - * /rooted, ?query, plain relative); everything reparses through the - * WHATWG parser so dot segments and encoding normalize consistently. */ -static bool fx_same_scheme_relative(const ScrUrl *base, - const ScrStr *loc) { - if (loc->len <= base->scheme->len || - loc->data[base->scheme->len] != ':') { - return false; - } - for (size_t i = 0; i < base->scheme->len; i++) { - char a = loc->data[i]; - char b = base->scheme->data[i]; - if (a >= 'A' && a <= 'Z') a = (char)(a - 'A' + 'a'); - if (b >= 'A' && b <= 'Z') b = (char)(b - 'A' + 'a'); - if (a != b) return false; - } - size_t tail = base->scheme->len + 1; - return loc->len - tail < 2 || - !((loc->data[tail] == '/' || loc->data[tail] == '\\') && - (loc->data[tail + 1] == '/' || - loc->data[tail + 1] == '\\')); -} - -static ScrUrl *fx_resolve(const ScrUrl *base, const ScrStr *loc) { - bool same_scheme_relative = fx_same_scheme_relative(base, loc); - const char *ref_data = - loc->data + (same_scheme_relative ? base->scheme->len + 1 : 0); - size_t ref_len = - loc->len - (same_scheme_relative ? base->scheme->len + 1 : 0); - if (!same_scheme_relative) { - ScrStr *abs_try = scr_str_new(loc->data, loc->len); - ScrUrl *u = fx_url_parse(abs_try); - scr_str_release(abs_try); - if (u) return u; - } - - /* - * Empty and fragment-only references preserve the complete base path - * and query. The request serializer omits the fragment, but resolving it - * first keeps the redirect on the current resource rather than its parent. - */ - if (ref_len == 0 || ref_data[0] == '#') { - ScrStr *base_text = fx_url_serialize(base, false); - size_t len = base_text->len + ref_len; - char *joined = malloc(len); - if (!joined) fx_oom(); - memcpy(joined, base_text->data, base_text->len); - memcpy(joined + base_text->len, ref_data, ref_len); - ScrStr *text = scr_str_new(joined, len); - free(joined); - scr_str_release(base_text); - ScrUrl *out = fx_url_parse(text); - scr_str_release(text); - return out; - } - - /* relative: assemble scheme://authority + resolved path/query */ - size_t cap = base->scheme->len + base->userinfo->len + base->host->len + base->port->len + - base->path->len + base->query->len + ref_len + 16; - char *buf = malloc(cap); - if (!buf) fx_oom(); - size_t n = 0; - memcpy(buf + n, base->scheme->data, base->scheme->len); - n += base->scheme->len; - buf[n++] = ':'; - if (ref_len >= 2 && - (ref_data[0] == '/' || ref_data[0] == '\\') && - (ref_data[1] == '/' || ref_data[1] == '\\')) { - memcpy(buf + n, ref_data, ref_len); - n += ref_len; - } else { - buf[n++] = '/'; - buf[n++] = '/'; - if (base->userinfo->len > 0) { - memcpy(buf + n, base->userinfo->data, base->userinfo->len); - n += base->userinfo->len; - buf[n++] = '@'; - } - memcpy(buf + n, base->host->data, base->host->len); - n += base->host->len; - if (base->port->len > 0) { - buf[n++] = ':'; - memcpy(buf + n, base->port->data, base->port->len); - n += base->port->len; - } - if (ref_len > 0 && (ref_data[0] == '/' || ref_data[0] == '\\')) { - memcpy(buf + n, ref_data, ref_len); - n += ref_len; - } else if (ref_len > 0 && ref_data[0] == '?') { - memcpy(buf + n, base->path->data, base->path->len); - n += base->path->len; - memcpy(buf + n, ref_data, ref_len); - n += ref_len; - } else { - /* plain relative: replace everything after the path's last '/' */ - size_t keep = 0; - for (size_t i = 0; i < base->path->len; i++) { - if (base->path->data[i] == '/') keep = i + 1; - } - memcpy(buf + n, base->path->data, keep); - n += keep; - if (keep == 0) buf[n++] = '/'; - memcpy(buf + n, ref_data, ref_len); - n += ref_len; - } - } - ScrStr *s = scr_str_new(buf, n); - free(buf); - ScrUrl *out = fx_url_parse(s); - scr_str_release(s); - return out; -} - -/* The URL host with IPv6 brackets stripped (the dial/SNI form). +1. */ -static ScrStr *fx_bare_host(const ScrStr *host) { - if (host->len >= 2 && host->data[0] == '[' && host->data[host->len - 1] == ']') { - return scr_str_new(host->data + 1, host->len - 2); - } - return scr_str_retain((ScrStr *)host); -} - -static int fx_url_port(const ScrUrl *u, int deflt) { - if (u->port->len == 0) return deflt; - int p = 0; - for (size_t i = 0; i < u->port->len; i++) p = p * 10 + (u->port->data[i] - '0'); - return p; -} - -static bool fx_bad_port(int port) { - static const int ports[] = {SCR_FETCH_BAD_PORTS}; - for (size_t i = 0; i < sizeof ports / sizeof ports[0]; i++) { - if (port == ports[i]) return true; - } - return false; -} - -/* ── env proxy (NODE_USE_ENV_PROXY=1, undici's EnvHttpProxyAgent) ────── */ - -static SCR_TL bool fx_proxy_enabled; -static SCR_TL char *fx_http_proxy; -static SCR_TL char *fx_https_proxy; -static SCR_TL char *fx_all_proxy; -static SCR_TL char *fx_no_proxy; - -static char *fx_env_copy(const char *lower, const char *upper) { - const char *v = scr_getenv(lower); - if (v == NULL || v[0] == '\0') v = scr_getenv(upper); - if (v == NULL || v[0] == '\0') return NULL; - size_t len = strlen(v); - char *copy = malloc(len + 1); - if (!copy) fx_oom(); - memcpy(copy, v, len + 1); - return copy; -} - -static void fx_proxy_snapshot(void) { - const char *optin = scr_getenv("NODE_USE_ENV_PROXY"); - fx_proxy_enabled = optin != NULL && strcmp(optin, "1") == 0; - /* Snapshot even without Node's global opt-in: Vercel's dispatcher is a - * request-local proxy activation over the same startup environment. */ - fx_http_proxy = fx_env_copy("http_proxy", "HTTP_PROXY"); - fx_https_proxy = fx_env_copy("https_proxy", "HTTPS_PROXY"); - fx_all_proxy = fx_env_copy("all_proxy", "ALL_PROXY"); - fx_no_proxy = fx_env_copy("no_proxy", "NO_PROXY"); -} - -static void fx_proxy_snapshot_free(void) { - free(fx_http_proxy); - free(fx_https_proxy); - free(fx_all_proxy); - free(fx_no_proxy); - fx_http_proxy = fx_https_proxy = fx_all_proxy = fx_no_proxy = NULL; -} - -static int fx_hex_value(char c) { - if (c >= '0' && c <= '9') return c - '0'; - if (c >= 'a' && c <= 'f') return c - 'a' + 10; - if (c >= 'A' && c <= 'F') return c - 'A' + 10; - return -1; -} - -static ScrStr *fx_proxy_authorization(const ScrStr *userinfo) { - char *plain = malloc(userinfo->len + 1); - if (!plain) fx_oom(); - size_t plain_len = 0; - bool has_separator = false; - for (size_t i = 0; i < userinfo->len;) { - char c = userinfo->data[i]; - if (c == '%' && i + 2 < userinfo->len) { - int hi = fx_hex_value(userinfo->data[i + 1]); - int lo = fx_hex_value(userinfo->data[i + 2]); - if (hi >= 0 && lo >= 0) { - plain[plain_len++] = (char)((hi << 4) | lo); - i += 3; - continue; - } - } - if (c == ':') has_separator = true; - plain[plain_len++] = c; - i++; - } - if (!has_separator) plain[plain_len++] = ':'; - - static const char b64[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - size_t encoded_len = ((plain_len + 2) / 3) * 4; - char *header = malloc(6 + encoded_len); - if (!header) fx_oom(); - memcpy(header, "Basic ", 6); - size_t out = 6; - for (size_t i = 0; i < plain_len; i += 3) { - unsigned b0 = (unsigned char)plain[i]; - unsigned b1 = i + 1 < plain_len ? (unsigned char)plain[i + 1] : 0; - unsigned b2 = i + 2 < plain_len ? (unsigned char)plain[i + 2] : 0; - unsigned triple = (b0 << 16) | (b1 << 8) | b2; - header[out++] = b64[(triple >> 18) & 63]; - header[out++] = b64[(triple >> 12) & 63]; - header[out++] = i + 1 < plain_len ? b64[(triple >> 6) & 63] : '='; - header[out++] = i + 2 < plain_len ? b64[triple & 63] : '='; - } - free(plain); - ScrStr *result = scr_str_new(header, out); - free(header); - return result; -} - -/* no_proxy: comma/space-separated host suffixes; "*" excludes everything; - * a leading dot or "*." is stripped; entries match the host exactly or at - * a dot boundary. Port qualifiers (host:port) require the port to match. */ -static bool fx_no_proxy_match(const char *list, const ScrStr *host, int port) { - const char *p = list; - while (*p) { - while (*p == ',' || *p == ' ' || *p == '\t') p++; - const char *start = p; - while (*p && *p != ',' && *p != ' ' && *p != '\t') p++; - size_t len = (size_t)(p - start); - if (len == 0) continue; - if (len == 1 && start[0] == '*') return true; - /* split a :port qualifier */ - size_t hlen = len; - long eport = -1; - if (start[0] == '[') { - size_t close = 1; - while (close < len && start[close] != ']') close++; - if (close < len && close + 1 < len && start[close + 1] == ':') { - hlen = close + 1; - eport = strtol(start + close + 2, NULL, 10); - } - } else { - for (size_t i = 0; i < len; i++) { - if (start[i] == ':') { - hlen = i; - eport = strtol(start + i + 1, NULL, 10); - break; - } - } - } - if (hlen >= 2 && start[0] == '*' && start[1] == '.') { - start += 2; - hlen -= 2; - } else if (hlen > 0 && start[0] == '.') { - start++; - hlen--; - } - if (hlen == 0) continue; - if (eport >= 0 && eport != port) continue; - if (host->len == hlen) { - bool eq = true; - for (size_t i = 0; i < hlen && eq; i++) { - char a = host->data[i], b = start[i]; - if (a >= 'A' && a <= 'Z') a = (char)(a - 'A' + 'a'); - if (b >= 'A' && b <= 'Z') b = (char)(b - 'A' + 'a'); - eq = a == b; - } - if (eq) return true; - } else if (host->len > hlen && host->data[host->len - hlen - 1] == '.') { - bool eq = true; - for (size_t i = 0; i < hlen && eq; i++) { - char a = host->data[host->len - hlen + i], b = start[i]; - if (a >= 'A' && a <= 'Z') a = (char)(a - 'A' + 'a'); - if (b >= 'A' && b <= 'Z') b = (char)(b - 'A' + 'a'); - eq = a == b; - } - if (eq) return true; - } - } - return false; -} - -/* The proxy for this hop's target, parsed (+1), or NULL for direct. */ -static ScrUrl *fx_proxy_for(const ScrUrl *target, bool https, int target_port, - bool enabled, bool *invalid) { - *invalid = false; - if (!enabled) return NULL; - const char *proxy = https ? fx_https_proxy : fx_http_proxy; - if (proxy == NULL) proxy = fx_all_proxy; - if (proxy == NULL) return NULL; - if (fx_no_proxy != NULL && - fx_no_proxy_match(fx_no_proxy, target->host, target_port)) { - return NULL; - } - ScrStr *ps = scr_str_new(proxy, strlen(proxy)); - ScrUrl *u = fx_url_parse(ps); - scr_str_release(ps); - *invalid = u == NULL; - return u; -} - -/* ── DNS (the dns.lookup precedent: getaddrinfo at hop start) ────────── */ - -/* The address to DIAL for `host` (+1): brackets strip, then the shared - * blocking lookup (scr_net.c) — IP literals and localhost pass through, - * hostnames resolve first-answer, and resolution failure answers the - * HOSTNAME unchanged so the dial's deferred "getaddrinfo ENOTFOUND host" - * error is Node's exact cause. */ -static ScrStr *fx_dial_host(const ScrStr *host) { - ScrStr *bare = fx_bare_host(host); - ScrStr *out = scr_net_blocking_lookup(bare); - scr_str_release(bare); - return out; -} - -/* ── the hop ─────────────────────────────────────────────────────────── */ - -static void fx_on_response(ScrClosure *cb, ScrHttpReq *res /*+1*/); -static void fx_on_client_error(ScrClosure *cb, ScrStr *msg /*borrowed*/); -static void fx_on_upgrade( - ScrClosure *cb, ScrHttpReq *res, ScrNetSocket *socket, - ScrBytes *head); - -static void fx_start_hop(FxTransfer *t) { - if (!t->request_streaming && t->request_has_content_length) { - size_t body_len = t->body ? t->body->len : 0; - if (body_len != t->request_content_length) { - fx_request_length_mismatch(t); - return; - } - } - ScrUrl *u = t->url; - bool https = fx_str_is(u->scheme, "https"); - int default_port = https ? 443 : 80; - int port = fx_url_port(u, default_port); - if (fx_bad_port(port)) { - fx_error(t, "fetch failed", NULL); - return; - } - bool invalid_proxy = false; - ScrUrl *proxy = fx_proxy_for( - u, https, port, fx_proxy_enabled || t->use_env_proxy, &invalid_proxy); - bool proxy_http = proxy && fx_str_is(proxy->scheme, "http"); - bool proxy_https = proxy && fx_str_is(proxy->scheme, "https"); - if (invalid_proxy || (proxy && !proxy_http && !proxy_https) || - (https && proxy)) { - if (proxy) scr_url_release(proxy); - fx_error(t, "fetch failed", NULL); - return; - } - - /* undici's request head, in undici's order: host, connection, the user - * headers, then the fetch defaults for whatever the user left unset. */ - size_t nuser = (size_t)scr_arr_len(t->headers); - ScrArr *pairs = scr_arr_new(SCR_ELEM_STR, nuser + 16); - char authority[300]; - int alen; - if (port != default_port) { - alen = snprintf(authority, sizeof authority, "%.*s:%d", (int)u->host->len, u->host->data, port); - } else { - alen = snprintf(authority, sizeof authority, "%.*s", (int)u->host->len, u->host->data); - } - fx_pairs_push(pairs, "host", authority, (size_t)alen); - if (!fx_pairs_have(t->headers, "connection")) { - fx_pairs_push(pairs, "connection", "keep-alive", 10); - } - for (size_t i = 0; i + 1 < nuser; i += 2) { - ScrStr *name = scr_arr_get_ref(t->headers, (double)i); - ScrStr *value = scr_arr_get_ref(t->headers, (double)(i + 1)); - if (fx_eq_ci(name->data, name->len, "host")) { - scr_str_release(name); - scr_str_release(value); - continue; - } - scr_arr_push_ref(pairs, name); - scr_arr_push_ref(pairs, value); - } - if (proxy && proxy->userinfo->len > 0 && - !fx_pairs_have(t->headers, "proxy-authorization")) { - ScrStr *authorization = fx_proxy_authorization(proxy->userinfo); - fx_pairs_push(pairs, "proxy-authorization", - authorization->data, authorization->len); - scr_str_release(authorization); - } - if (!fx_pairs_have(t->headers, "accept")) fx_pairs_push(pairs, "accept", "*/*", 3); - if (!fx_pairs_have(t->headers, "accept-language")) fx_pairs_push(pairs, "accept-language", "*", 1); - if (!fx_pairs_have(t->headers, "sec-fetch-mode")) fx_pairs_push(pairs, "sec-fetch-mode", "cors", 4); - if (!fx_pairs_have(t->headers, "user-agent")) fx_pairs_push(pairs, "user-agent", "node", 4); - if (!fx_pairs_have(t->headers, "accept-encoding")) { - fx_pairs_push(pairs, "accept-encoding", "gzip, deflate", 13); - } - - /* the request-target and the wire to dial */ - ScrStr *path; - ScrStr *dial; - int dial_port; - if (proxy != NULL) { - path = fx_url_serialize(u, false); /* absolute-URI through the proxy */ - dial = fx_dial_host(proxy->host); - dial_port = fx_url_port(proxy, proxy_https ? 443 : 80); - } else { - if (u->query->len > 0) { - size_t plen = (u->path->len > 0 ? u->path->len : 1) + u->query->len; - char *pb = malloc(plen); - if (!pb) fx_oom(); - size_t n = 0; - if (u->path->len > 0) { - memcpy(pb, u->path->data, u->path->len); - n = u->path->len; - } else { - pb[n++] = '/'; - } - memcpy(pb + n, u->query->data, u->query->len); - n += u->query->len; - path = scr_str_new(pb, n); - free(pb); - } else { - path = u->path->len > 0 ? scr_str_retain(u->path) : scr_str_new("/", 1); - } - dial = fx_dial_host(u->host); - dial_port = port; - } - - ScrHttpClientReq *c; - if (https || proxy_https) { - ScrStr *sni = - fx_bare_host(https ? u->host : proxy->host); - void *cli = scr_tls_fetch_client_ctx(sni, true); - scr_str_release(sni); - c = scr_http_request_ex(dial, dial_port, path, t->method, 0, pairs, false, NULL, NULL, - 443, &scr_tls_fetch_client_wrap, cli); - } else { - c = scr_http_request_ex(dial, dial_port, path, t->method, 0, pairs, false, NULL, NULL, - 80, NULL, NULL); - } - scr_str_release(dial); - scr_str_release(path); - scr_arr_release(pairs); - if (proxy) scr_url_release(proxy); - - t->client = c; /* the constructor's +1 */ - t->request_ended = false; - scr_http_client_on_response(c, fx_closure(t, (void *)&fx_on_response), &fx_on_response, true); - scr_http_client_on_upgrade(c, fx_closure(t, (void *)&fx_on_upgrade), &fx_on_upgrade, true); - scr_http_client_on_error(c, fx_closure(t, (void *)&fx_on_client_error), &fx_on_client_error, false); - if (t->body != NULL) { - scr_http_client_end_bytes(c, t->body); - t->request_ended = true; - } else if (!t->request_streaming) { - scr_http_client_end(c); - t->request_ended = true; - } -} - -/* ── redirects ───────────────────────────────────────────────────────── */ - -static void fx_strip_header(ScrArr **headers, const char *name) { - ScrArr *old = *headers; - size_t n = (size_t)scr_arr_len(old); - ScrArr *out = scr_arr_new(SCR_ELEM_STR, n); - for (size_t i = 0; i + 1 < n; i += 2) { - ScrStr *nm = (ScrStr *)scr_arr_get_ref(old, (double)i); - if (fx_eq_ci(nm->data, nm->len, name)) { - scr_str_release(nm); - continue; - } - scr_arr_push_ref(out, nm); - scr_arr_push_ref(out, scr_arr_get_ref(old, (double)(i + 1))); - } - scr_arr_release(old); - *headers = out; -} - -/* Follows one redirect hop: rewrites the request per the fetch spec and - * dials the next URL. Consumes nothing; the caller drops res/client. */ -static bool fx_redirect(FxTransfer *t, int status, const ScrStr *loc) { - if (t->hops >= 20) { - fx_error(t, "redirect count exceeded", NULL); - return false; - } - ScrUrl *next = fx_resolve(t->url, loc); - if (next == NULL || - !(fx_str_is(next->scheme, "http") || fx_str_is(next->scheme, "https")) || - next->userinfo->len > 0) { - if (next) scr_url_release(next); - fx_error(t, "invalid redirect URL", NULL); - return false; - } - /* 303 rewrites everything but GET/HEAD to GET; 301/302 rewrite POST — - * the body and its content-* headers drop with the rewrite. */ - bool is_get = fx_str_is(t->method, "GET"); - bool is_head = fx_str_is(t->method, "HEAD"); - if (t->request_streaming && status != 303) { - scr_url_release(next); - fx_error(t, "fetch failed", NULL); - return false; - } - if ((status == 303 && !is_get && !is_head) || - ((status == 301 || status == 302) && fx_str_is(t->method, "POST"))) { - scr_str_release(t->method); - t->method = scr_str_new("GET", 3); - t->request_streaming = false; - if (t->body) { - scr_bytes_release(t->body); - t->body = NULL; - } - fx_strip_header(&t->headers, "content-type"); - fx_strip_header(&t->headers, "content-length"); - fx_strip_header(&t->headers, "content-encoding"); - fx_strip_header(&t->headers, "content-language"); - fx_strip_header(&t->headers, "content-location"); - t->request_has_content_length = false; - t->request_content_length = 0; - t->request_body_sent = 0; - } - /* cross-origin hop: credentials do not follow (the fetch spec's - * authorization rule; cookies are not modeled as ambient state). */ - bool same_origin = t->url->host->len == next->host->len && - memcmp(t->url->host->data, next->host->data, next->host->len) == 0 && - fx_url_port(t->url, 0) == fx_url_port(next, 0) && - t->url->scheme->len == next->scheme->len && - memcmp(t->url->scheme->data, next->scheme->data, next->scheme->len) == 0; - if (!same_origin) { - fx_strip_header(&t->headers, "authorization"); - fx_strip_header(&t->headers, "proxy-authorization"); - fx_strip_header(&t->headers, "cookie"); - } - scr_url_release(t->url); - t->url = next; - t->hops++; - t->redirected = true; - return true; -} - -/* ── response delivery ───────────────────────────────────────────────── */ - -static void fx_emit_chunk(FxTransfer *t, const uint8_t *data, size_t len) { - if (len == 0) return; - JSValue chunk = JS_NewUint8ArrayCopy(t->ctx, data, len); - fx_call(t, "onData", 1, (JSValueConst *)&chunk); - JS_FreeValue(t->ctx, chunk); -} - -static void fx_on_data(ScrClosure *cb, ScrBytes *chunk /*borrowed*/) { - FxTransfer *t = fx_from(cb); - if (t == NULL) return; - if (t->done || t->cancelled || !t->responded) { - fx_release(t); - return; - } - if (!t->inflating) { - fx_emit_chunk(t, chunk->data, chunk->len); - fx_release(t); - return; - } - t->zs.next_in = (Bytef *)chunk->data; - t->zs.avail_in = (uInt)chunk->len; - bool drain_internal = false; - unsigned char out[16384]; - while (!t->done && (t->zs.avail_in > 0 || drain_internal)) { - if (t->inflate_member_end) { - if (t->zs.avail_in == 0) break; - if (inflateReset(&t->zs) != Z_OK) { - ScrHttpClientReq *c = t->client; - if (c) scr_http_client_destroy(c); - fx_error(t, "invalid compressed body", NULL); - break; - } - t->inflate_member_end = false; - } - t->zs.next_out = out; - t->zs.avail_out = sizeof out; - int r = inflate(&t->zs, Z_NO_FLUSH); - size_t produced = sizeof out - t->zs.avail_out; - drain_internal = false; - if (produced > 0) fx_emit_chunk(t, out, produced); - if (r == Z_STREAM_END) { - /* RFC 1952 permits concatenated gzip members. */ - t->inflate_member_end = true; - if (t->zs.avail_in == 0) break; - continue; - } - if (r != Z_OK && r != Z_BUF_ERROR) { - /* corrupt encoding: the body errors (the glue turns a post-resolve - * onError into controller.error — undici's terminated shape) */ - const char *detail = t->zs.msg ? t->zs.msg : "invalid compressed body"; - ScrHttpClientReq *c = t->client; - if (c) scr_http_client_destroy(c); - fx_error(t, detail, NULL); - break; - } - if (r == Z_BUF_ERROR && produced == 0) break; /* need more input */ - if (t->zs.avail_in == 0) { - if (r == Z_OK && t->zs.avail_out == 0) { - drain_internal = true; - continue; - } - break; - } - } - fx_release(t); -} - -static void fx_on_end(ScrClosure *cb) { - FxTransfer *t = fx_from(cb); - if (t == NULL) return; - if (t->done || t->cancelled) { - fx_release(t); - return; - } - fx_call(t, "onEnd", 0, NULL); - fx_settle(t); - fx_release(t); -} - -/* Mid-body death ('aborted' on the response): the body errors. */ -static void fx_on_res_error(ScrClosure *cb, ScrStr *msg /*borrowed*/) { - FxTransfer *t = fx_from(cb); - if (t == NULL) return; - if (t->done || t->cancelled) { - fx_release(t); - return; - } - fx_error(t, msg->len > 0 ? msg->data : "aborted", NULL); - fx_release(t); -} - -static void fx_on_response(ScrClosure *cb, ScrHttpReq *res /*+1*/) { - FxTransfer *t = fx_from(cb); - if (t == NULL) { - scr_http_req_release(res); - return; - } - if (t->done || t->cancelled) { - scr_http_req_release(res); - fx_release(t); - return; - } - int status = (int)scr_http_req_status(res); - - /* a redirect hop? (Location present, a redirect status) */ - if (status == 301 || status == 302 || status == 303 || status == 307 || status == 308) { - ScrStr *locname = scr_str_new("location", 8); - ScrStr *loc = scr_http_req_header(res, locname); - scr_str_release(locname); - if (loc != NULL) { - if (t->redirect_mode == FX_REDIRECT_MANUAL) { - scr_str_release(loc); - } else { - /* drop this hop's connection (its body never reaches the island) */ - ScrHttpClientReq *old = t->client; - t->client = NULL; - if (old) { - scr_http_client_destroy(old); - scr_http_client_release(old); - } - if (t->redirect_mode == FX_REDIRECT_ERROR) { - fx_error(t, "fetch failed", NULL); - scr_str_release(loc); - scr_http_req_release(res); - fx_release(t); - return; - } - ScrStr *decoded_loc = fx_location_to_utf8(loc); - bool go = fx_redirect(t, status, decoded_loc); - scr_str_release(decoded_loc); - scr_str_release(loc); - if (go) fx_start_hop(t); - scr_http_req_release(res); - fx_release(t); - return; - } - } - /* a FINAL 3xx (no Location) resolves with its own body, like Node — - * the curl bridge documented this corner away; this unit delivers it */ - } - - t->responded = true; - - /* content-encoding: gzip/x-gzip/deflate inflate transparently (zlib's - * 15+32 auto-detects the gzip and zlib framings) */ - { - ScrStr *cename = scr_str_new("content-encoding", 16); - ScrStr *ce = scr_http_req_header(res, cename); - scr_str_release(cename); - if (ce != NULL) { - if (fx_str_is(ce, "gzip") || fx_str_is(ce, "x-gzip") || fx_str_is(ce, "deflate")) { - memset(&t->zs, 0, sizeof t->zs); - if (inflateInit2(&t->zs, 15 + 32) == Z_OK) t->inflating = true; - } - scr_str_release(ce); - } - } - - JSContext *ctx = t->ctx; - ScrArr *raw = scr_http_req_raw_headers(res); - size_t nraw = (size_t)scr_arr_len(raw); - JSValue hdrs = JS_NewArray(ctx); - for (size_t i = 0; i < nraw; i++) { - ScrStr *s = (ScrStr *)scr_arr_get_ref(raw, (double)i); - ScrStr *utf8 = fx_latin1_to_utf8(s); - JS_SetPropertyUint32( - ctx, hdrs, (uint32_t)i, - JS_NewStringLen(ctx, utf8->data, utf8->len)); - scr_str_release(utf8); - scr_str_release(s); - } - scr_arr_release(raw); - ScrStr *stext = scr_http_req_status_message(res); - ScrStr *stext_utf8 = - stext ? fx_latin1_to_utf8(stext) : scr_str_new("", 0); - ScrStr *final_url = fx_url_serialize(t->url, false); - JSValue argv[5] = { - JS_NewInt32(ctx, status), - JS_NewStringLen(ctx, stext_utf8->data, stext_utf8->len), - hdrs, - JS_NewStringLen(ctx, final_url->data, final_url->len), - JS_NewBool(ctx, t->redirected), - }; - if (stext) scr_str_release(stext); - scr_str_release(stext_utf8); - scr_str_release(final_url); - fx_call(t, "onResponse", 5, argv); - for (int i = 0; i < 5; i++) JS_FreeValue(ctx, argv[i]); - - /* body listeners (registered inside the 'response' emit — the parser - * delivers body bytes only after this returns, ended bodies fire 'end' - * right behind us) */ - scr_http_req_on_data(res, fx_closure(t, (void *)&fx_on_data), &fx_on_data, false); - scr_http_req_on_end(res, fx_closure(t, (void *)&fx_on_end), false); - scr_http_req_on_error(res, fx_closure(t, (void *)&fx_on_res_error), &fx_on_res_error, false); - - scr_http_req_release(res); - fx_release(t); -} - -/* Pre-response failure on the hop client: classify into Node's causes. */ -static void fx_on_client_error(ScrClosure *cb, ScrStr *msg /*borrowed*/) { - FxTransfer *t = fx_from(cb); - if (t == NULL) return; - if (t->done || t->cancelled || t->responded) { - fx_release(t); - return; - } - const char *detail = msg->data; - const char *code = NULL; - char codebuf[32]; - if (msg->len > 8 && memcmp(detail, "connect E", 9) == 0) { - /* "connect ECONNREFUSED ip:port" and family: the code is the token */ - const char *s = detail + 8; - size_t n = 0; - while (s[n] != '\0' && s[n] != ' ' && n < sizeof codebuf - 1) n++; - memcpy(codebuf, s, n); - codebuf[n] = '\0'; - code = codebuf; - } else if (msg->len > 12 && memcmp(detail, "getaddrinfo E", 13) == 0) { - const char *s = detail + 12; - size_t n = 0; - while (s[n] != '\0' && s[n] != ' ' && n < sizeof codebuf - 1) n++; - memcpy(codebuf, s, n); - codebuf[n] = '\0'; - code = codebuf; - } else if (fx_eq_ci(detail, msg->len, "socket hang up")) { - /* undici's cause for a server that died before the response head */ - detail = "other side closed"; - code = "UND_ERR_SOCKET"; - } - fx_error(t, detail, code); - fx_release(t); -} - -static void fx_on_upgrade( - ScrClosure *cb, ScrHttpReq *res, ScrNetSocket *socket, - ScrBytes *head) { - FxTransfer *t = fx_from(cb); - scr_http_req_release(res); - scr_bytes_release(head); - scr_net_sock_destroy(socket); - scr_net_sock_release(socket); - if (t == NULL) return; - if (!t->done && !t->cancelled) { - fx_error(t, "unexpected server response", NULL); - } else { - fx_settle(t); - } - fx_release(t); -} - -/* ── host functions (called by the fetch glue, inside the engine) ────── */ - -/* host.start({url, method, headers: [n,v,...], body, streaming, redirectMode}, - * cbs) → transfer id. Fixed bodies are copied out of the engine before the - * net stack sees them; streams arrive later through host.write/end. An - * unparsable URL throws the engine TypeError the promise executor turns into - * Node's rejection shape. */ -static JSValue fx_host_start(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - JSValueConst req = argv[0]; - - JSValue urlv = JS_GetPropertyStr(ctx, req, "url"); - const char *url = JS_ToCString(ctx, urlv); - JS_FreeValue(ctx, urlv); - if (!url) return JS_EXCEPTION; - ScrStr *urlstr = scr_str_new(url, strlen(url)); - ScrUrl *u = fx_url_parse(urlstr); - scr_str_release(urlstr); - if (u == NULL) { - JSValue e = JS_ThrowTypeError(ctx, "Failed to parse URL from %s", url); - JS_FreeCString(ctx, url); - return e; - } - JS_FreeCString(ctx, url); - if (!(fx_str_is(u->scheme, "http") || fx_str_is(u->scheme, "https"))) { - scr_url_release(u); - return JS_ThrowTypeError(ctx, "fetch failed"); - } - - FxTransfer *t = calloc(1, sizeof *t); - if (!t) fx_oom(); - t->rc = 1; /* the registry's */ - t->ctx = ctx; - t->id = fx_next_id++; - t->cbs = JS_DupValue(ctx, argv[1]); - t->cbs_live = true; - t->url = u; - - JSValue redirectv = JS_GetPropertyStr(ctx, req, "redirectMode"); - JS_ToInt32(ctx, &t->redirect_mode, redirectv); - JS_FreeValue(ctx, redirectv); - - JSValue streamingv = JS_GetPropertyStr(ctx, req, "streaming"); - t->request_streaming = JS_ToBool(ctx, streamingv) > 0; - JS_FreeValue(ctx, streamingv); - - JSValue envproxyv = JS_GetPropertyStr(ctx, req, "useEnvProxy"); - t->use_env_proxy = JS_ToBool(ctx, envproxyv) > 0; - JS_FreeValue(ctx, envproxyv); - - JSValue methodv = JS_GetPropertyStr(ctx, req, "method"); - const char *method = JS_ToCString(ctx, methodv); - JS_FreeValue(ctx, methodv); - t->method = scr_str_new(method ? method : "GET", method ? strlen(method) : 3); - if (method) JS_FreeCString(ctx, method); - - JSValue hdrs = JS_GetPropertyStr(ctx, req, "headers"); - JSValue lenv = JS_GetPropertyStr(ctx, hdrs, "length"); - uint32_t hn = 0; - JS_ToUint32(ctx, &hn, lenv); - JS_FreeValue(ctx, lenv); - t->headers = scr_arr_new(SCR_ELEM_STR, hn); - for (uint32_t i = 0; i + 1 < hn; i += 2) { - JSValue nv = JS_GetPropertyUint32(ctx, hdrs, i); - JSValue vv = JS_GetPropertyUint32(ctx, hdrs, i + 1); - size_t nlen = 0, vlen = 0; - const char *hname = JS_ToCStringLen(ctx, &nlen, nv); - const char *hvalue = JS_ToCStringLen(ctx, &vlen, vv); - if (hname && hvalue) { - scr_arr_push_ref(t->headers, scr_str_new(hname, nlen)); - scr_arr_push_ref(t->headers, scr_str_new(hvalue, vlen)); - } - if (hname) JS_FreeCString(ctx, hname); - if (hvalue) JS_FreeCString(ctx, hvalue); - JS_FreeValue(ctx, nv); - JS_FreeValue(ctx, vv); - } - JS_FreeValue(ctx, hdrs); - /* The island's Request accepts this forbidden Fetch Metadata name, but - * Node's transport always controls its value. Match that behavior before - * the native request head is built. */ - fx_strip_header(&t->headers, "sec-fetch-mode"); - bool content_length_valid = - fx_content_length(t->headers, &t->request_has_content_length, - &t->request_content_length); - - JSValue bodyv = JS_GetPropertyStr(ctx, req, "body"); - if (!JS_IsUndefined(bodyv) && !JS_IsNull(bodyv)) { - size_t blen = 0; - uint8_t *bytes = JS_GetUint8Array(ctx, &blen, bodyv); - if (bytes != NULL || blen == 0) { - t->body = scr_bytes_new(SCR_BYTES_U8, (double)blen); - if (blen > 0) memcpy(t->body->data, bytes, blen); - } - } - JS_FreeValue(ctx, bodyv); - - t->next = fx_live; - fx_live = t; - fx_nlive++; - /* - * A configuration error can reject synchronously in fx_start_hop(). - * That callback settles the transfer and releases the registry's last - * reference, so preserve the scalar result before the call. - */ - int id = t->id; - if (content_length_valid) { - fx_start_hop(t); - } else { - fx_error(t, "fetch failed", NULL); - } - return JS_NewInt32(ctx, id); -} - -static FxTransfer *fx_find(int32_t id) { - for (FxTransfer *t = fx_live; t; t = t->next) { - if (t->id == id) return t; - } - return NULL; -} - -/* host.write(id, chunk): forwards one byte chunk from a streaming request. - * The boolean result lets a queued promise job stop pumping after settlement. */ -static JSValue fx_host_write(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t id = 0; - JS_ToInt32(ctx, &id, argv[0]); - FxTransfer *t = fx_find(id); - if (t == NULL || t->done || t->client == NULL || - !t->request_streaming || t->request_ended) { - return JS_NewBool(ctx, false); - } - size_t blen = 0; - uint8_t *bytes = JS_GetUint8Array(ctx, &blen, argv[1]); - if (bytes == NULL && blen != 0) return JS_NewBool(ctx, false); - if (t->request_has_content_length && - (t->request_body_sent > t->request_content_length || - blen > t->request_content_length - t->request_body_sent)) { - fx_request_length_mismatch(t); - return JS_NewBool(ctx, false); - } - t->request_body_sent += blen; - if (blen > 0) { - ScrBytes *chunk = scr_bytes_new(SCR_BYTES_U8, (double)blen); - memcpy(chunk->data, bytes, blen); - scr_http_client_write_bytes(t->client, chunk); - scr_bytes_release(chunk); - } - return JS_NewBool(ctx, true); -} - -/* host.end(id): closes a streaming request after its reader reaches EOF. */ -static JSValue fx_host_end(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t id = 0; - JS_ToInt32(ctx, &id, argv[0]); - FxTransfer *t = fx_find(id); - if (t == NULL || t->done || t->client == NULL || - !t->request_streaming || t->request_ended) { - return JS_NewBool(ctx, false); - } - if (t->request_has_content_length && - t->request_body_sent != t->request_content_length) { - fx_request_length_mismatch(t); - return JS_NewBool(ctx, false); - } - t->request_ended = true; - scr_http_client_end(t->client); - return JS_NewBool(ctx, true); -} - -/* host.fail(id, detail): a request reader failed or produced a non-byte - * chunk. Tear down the hop and reject through the ordinary fetch error path. */ -static JSValue fx_host_fail(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t id = 0; - JS_ToInt32(ctx, &id, argv[0]); - FxTransfer *t = fx_find(id); - if (t == NULL || t->done) return JS_NewBool(ctx, false); - const char *detail = JS_ToCString(ctx, argv[1]); - if (t->client) scr_http_client_destroy(t->client); - fx_error(t, detail ? detail : "fetch failed", NULL); - if (detail) JS_FreeCString(ctx, detail); - return JS_NewBool(ctx, true); -} - -/* host.abort(id): the island aborted the fetch or cancelled the response - * body stream. The transfer dies quietly — no onError, no onEnd. */ -static JSValue fx_host_abort(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t id = 0; - JS_ToInt32(ctx, &id, argv[0]); - FxTransfer *t = fx_find(id); - if (t != NULL) { - t->cancelled = true; - if (t->client) scr_http_client_destroy(t->client); - fx_settle(t); - } - return JS_UNDEFINED; -} - -/* ── the JS half: island surface, request streaming, abort wiring, and - * error shaping ──────────────────────────────────────────────────────── */ - -static const char fx_glue[] = - "(host) => {\n" - " 'use strict';\n" - " const g = globalThis;\n" - " const NULL_BODY = { 204: true, 205: true, 304: true };\n" - " g.fetch = function fetch(input, init) {\n" - " return new Promise((resolve, reject) => {\n" - " let url;\n" - " let method = 'GET';\n" - " let headers = null;\n" - " let body = null;\n" - " let signal = null;\n" - " let redirect = 'follow';\n" - " if (input instanceof g.Request) {\n" - " url = input.url;\n" - " method = input.method;\n" - " headers = new g.Headers(input.headers);\n" - " body = input._body instanceof Uint8Array || input._body instanceof g.ReadableStream ? input._body : null;\n" - " signal = input._signal;\n" - " redirect = input.redirect;\n" - " } else {\n" - " url = String(input);\n" - " }\n" - " init = init === undefined || init === null ? {} : init;\n" - " // WebIDL observes dictionary members in lexical order, exactly\n" - " // once each, and converts each value before reading the next.\n" - " const initBody = init.body;\n" - " let initBodyValue = null;\n" - " let initBodyContentType = null;\n" - " if (initBody !== undefined && initBody !== null) {\n" - " const convertedBody = new g.Request('http://localhost/', { method: 'POST', body: initBody, duplex: 'half' });\n" - " initBodyValue = convertedBody._body;\n" - " initBodyContentType = convertedBody.headers.get('content-type');\n" - " }\n" - " const initCache = init.cache;\n" - " if (initCache !== undefined) throw new TypeError('unsupported RequestInit option: cache');\n" - " const initCredentials = init.credentials;\n" - " if (initCredentials !== undefined) throw new TypeError('unsupported RequestInit option: credentials');\n" - " let useEnvProxy = g.process?.env?.NODE_USE_ENV_PROXY === '1';\n" - " const initDispatcher = init.dispatcher;\n" - " // Vercel's dynamic CLI installs its EnvProxyDispatcher when\n" - " // ordinary proxy environment variables are present. Validate the\n" - " // known public shape and activate equivalent native proxy routing\n" - " // for this request. Do not silently accept arbitrary custom\n" - " // dispatchers whose routing behavior the bridge cannot preserve.\n" - " if (initDispatcher !== undefined) {\n" - " const dispatcher = initDispatcher;\n" - " const envProxyMethods = ['dispatch', 'close', 'destroy', 'agents', 'getAgent', 'shouldProxy', 'parseNoProxy'];\n" - " const isVercelEnvProxy = dispatcher !== null && typeof dispatcher === 'object' &&\n" - " dispatcher.constructor?.name === 'EnvProxyDispatcher' &&\n" - " envProxyMethods.every((member) => typeof dispatcher[member] === 'function');\n" - " if (!isVercelEnvProxy) {\n" - " throw new TypeError('unsupported RequestInit option: dispatcher');\n" - " }\n" - " useEnvProxy = true;\n" - " }\n" - " const initDuplex = init.duplex;\n" - " let duplex;\n" - " if (initDuplex !== undefined) {\n" - " duplex = String(initDuplex);\n" - " if (duplex !== 'half') throw new TypeError(\"RequestInit.duplex must be 'half'\");\n" - " }\n" - " const initHeaders = init.headers;\n" - " const convertedHeaders = initHeaders === undefined ? undefined : new g.Headers(initHeaders);\n" - " const initIntegrity = init.integrity;\n" - " if (initIntegrity !== undefined) throw new TypeError('unsupported RequestInit option: integrity');\n" - " const initKeepalive = init.keepalive;\n" - " if (initKeepalive !== undefined) throw new TypeError('unsupported RequestInit option: keepalive');\n" - " const initMethod = init.method;\n" - " const convertedMethod = initMethod === undefined ? undefined : String(initMethod);\n" - " const initMode = init.mode;\n" - " if (initMode !== undefined) throw new TypeError('unsupported RequestInit option: mode');\n" - " const initPriority = init.priority;\n" - " if (initPriority !== undefined) throw new TypeError('unsupported RequestInit option: priority');\n" - " const initRedirect = init.redirect;\n" - " if (initRedirect !== undefined) {\n" - " redirect = String(initRedirect);\n" - " if (redirect !== 'follow' && redirect !== 'error' && redirect !== 'manual') {\n" - " throw new TypeError(`undefined: ${redirect} is not an accepted type. Expected one of follow, manual, error.`);\n" - " }\n" - " }\n" - " const initReferrer = init.referrer;\n" - " if (initReferrer !== undefined) throw new TypeError('unsupported RequestInit option: referrer');\n" - " const initReferrerPolicy = init.referrerPolicy;\n" - " if (initReferrerPolicy !== undefined) throw new TypeError('unsupported RequestInit option: referrerPolicy');\n" - " const initSignal = init.signal;\n" - " // An explicit init.signal overrides the Request's, null included.\n" - " if (initSignal !== undefined) {\n" - " if (initSignal !== null && !(initSignal instanceof g.AbortSignal)) {\n" - " throw new TypeError('fetch init.signal must be an AbortSignal or null');\n" - " }\n" - " signal = initSignal;\n" - " }\n" - " const initWindow = init.window;\n" - " if (initWindow !== undefined) throw new TypeError('unsupported RequestInit option: window');\n" - " // Request validation follows the complete dictionary conversion.\n" - " if (convertedMethod !== undefined) {\n" - " method = new g.Request('http://localhost/', { method: convertedMethod }).method;\n" - " }\n" - " if (convertedHeaders !== undefined) headers = convertedHeaders;\n" - " if (headers === null) headers = new g.Headers();\n" - " let redirectMode = 0;\n" - " if (redirect === 'error') redirectMode = 1;\n" - " else if (redirect === 'manual') redirectMode = 2;\n" - " // The effective body includes one inherited from an input Request.\n" - " // A GET/HEAD method override must reject that body as well.\n" - " if ((body !== null || initBodyValue !== null) && (method === 'GET' || method === 'HEAD')) {\n" - " throw new TypeError('Request with GET/HEAD method cannot have body.');\n" - " }\n" - " if (initBodyValue !== null) {\n" - " if (initBodyValue instanceof g.ReadableStream && duplex !== 'half') {\n" - " throw new TypeError('RequestInit: duplex option is required when sending a body.');\n" - " }\n" - " body = initBodyValue;\n" - " if (initBodyContentType !== null && !headers.has('content-type')) {\n" - " headers.set('content-type', initBodyContentType);\n" - " }\n" - " }\n" - " if (body !== null && !(body instanceof Uint8Array) && !(body instanceof g.ReadableStream)) {\n" - " throw new TypeError('unsupported request body in the scriptc island');\n" - " }\n" - " // An already-aborted signal rejects with ITS reason before any\n" - " // transfer starts (Node: validation above still throws first).\n" - " if (signal !== null && signal.aborted) {\n" - " reject(signal.reason);\n" - " return;\n" - " }\n" - " let controller = null;\n" - " let resolved = false;\n" - " let done = false;\n" - " let id = 0;\n" - " let requestReader = body instanceof g.ReadableStream ? body.getReader() : null;\n" - " const stopRequest = (reason) => {\n" - " const reader = requestReader;\n" - " requestReader = null;\n" - " if (reader === null) return;\n" - " try {\n" - " const cancelled = reader.cancel(reason);\n" - " if (cancelled !== undefined && cancelled !== null && typeof cancelled.catch === 'function') cancelled.catch(() => {});\n" - " } catch (_e) { /* already released or errored */ }\n" - " try { reader.releaseLock(); } catch (_e) { /* pending read */ }\n" - " };\n" - " // The transfer is over (delivered, failed, cancelled, or aborted):\n" - " // a later signal abort must not touch it.\n" - " const finish = (reason) => {\n" - " if (done) return;\n" - " done = true;\n" - " stopRequest(reason);\n" - " if (signal !== null) signal.removeEventListener('abort', onAbort);\n" - " };\n" - " const onAbort = () => {\n" - " if (done) return;\n" - " finish(signal.reason);\n" - " host.abort(id); // the C side dies quietly; rejection is ours\n" - " if (!resolved) {\n" - " resolved = true;\n" - " reject(signal.reason);\n" - " } else if (controller !== null) {\n" - " // Mid-stream: pending and future reads reject with the reason,\n" - " // exactly Node's aborted-body behavior.\n" - " try { controller.error(signal.reason); } catch (_e) { /* already closed */ }\n" - " controller = null;\n" - " }\n" - " };\n" - " const pumpRequest = () => {\n" - " const reader = requestReader;\n" - " if (done || reader === null) return;\n" - " let pending;\n" - " try { pending = reader.read(); }\n" - " catch (error) {\n" - " requestReader = null;\n" - " try { reader.releaseLock(); } catch (_e) { /* already released */ }\n" - " host.fail(id, error instanceof Error ? error.message : String(error));\n" - " return;\n" - " }\n" - " pending.then(\n" - " (result) => {\n" - " if (done || requestReader !== reader) {\n" - " try { reader.releaseLock(); } catch (_e) { /* cancel still pending */ }\n" - " return;\n" - " }\n" - " if (result.done) {\n" - " requestReader = null;\n" - " try { reader.releaseLock(); } catch (_e) { /* already released */ }\n" - " host.end(id);\n" - " return;\n" - " }\n" - " let chunk = result.value;\n" - " if (typeof chunk === 'string') chunk = new g.TextEncoder().encode(chunk);\n" - " if (!(chunk instanceof Uint8Array)) {\n" - " const error = new TypeError('Received non-Uint8Array chunk');\n" - " requestReader = null;\n" - " try {\n" - " const cancelled = reader.cancel(error);\n" - " if (cancelled !== undefined && cancelled !== null && typeof cancelled.catch === 'function') cancelled.catch(() => {});\n" - " } catch (_e) { /* source already errored */ }\n" - " try { reader.releaseLock(); } catch (_e) { /* pending cancel */ }\n" - " host.fail(id, error.message);\n" - " return;\n" - " }\n" - " if (host.write(id, chunk)) pumpRequest();\n" - " else stopRequest();\n" - " },\n" - " (error) => {\n" - " if (done || requestReader !== reader) {\n" - " try { reader.releaseLock(); } catch (_e) { /* cancel still pending */ }\n" - " return;\n" - " }\n" - " requestReader = null;\n" - " try { reader.releaseLock(); } catch (_e) { /* already released */ }\n" - " host.fail(id, error instanceof Error ? error.message : String(error));\n" - " },\n" - " );\n" - " };\n" - " const flat = [];\n" - " for (const pair of headers) { flat.push(pair[0], pair[1]); }\n" - " try {\n" - " id = host.start(\n" - " {\n" - " url,\n" - " method,\n" - " headers: flat,\n" - " body: body instanceof Uint8Array ? body : undefined,\n" - " streaming: body instanceof g.ReadableStream,\n" - " useEnvProxy,\n" - " redirectMode,\n" - " },\n" - " {\n" - " onResponse(status, statusText, raw, finalUrl, redirected) {\n" - " resolved = true;\n" - " const h = new g.Headers();\n" - " for (let i = 0; i + 1 < raw.length; i += 2) {\n" - " try { h.append(raw[i], raw[i + 1]); } catch (_e) { /* junk line */ }\n" - " }\n" - " let stream = null;\n" - " if (method !== 'HEAD' && NULL_BODY[status] !== true) {\n" - " stream = new g.ReadableStream({\n" - " start(c) { controller = c; },\n" - " cancel() { controller = null; finish(); host.abort(id); },\n" - " });\n" - " }\n" - " resolve(g.__scr_mk_response(status, statusText, h, finalUrl, redirected, stream));\n" - " },\n" - " onData(chunk) {\n" - " if (controller !== null) {\n" - " try { controller.enqueue(chunk); } catch (_e) { /* consumer went away */ }\n" - " }\n" - " },\n" - " onEnd() {\n" - " finish();\n" - " if (controller !== null) {\n" - " try { controller.close(); } catch (_e) { /* already errored */ }\n" - " controller = null;\n" - " }\n" - " },\n" - " onError(detail, code) {\n" - " finish();\n" - " if (!resolved) {\n" - " // Node's shape: TypeError 'fetch failed' with a CAUSE the\n" - " // wrappers classify (message + code for the network cases).\n" - " const cause = new Error(String(detail));\n" - " if (code !== undefined) cause.code = code;\n" - " if (code === 'ECONNREFUSED') cause.syscall = 'connect';\n" - " else if (code === 'ENOTFOUND') cause.syscall = 'getaddrinfo';\n" - " const err = new TypeError('fetch failed');\n" - " err.cause = cause;\n" - " reject(err);\n" - " } else if (controller !== null) {\n" - " try { controller.error(new TypeError('terminated')); } catch (_e) { /* already closed */ }\n" - " controller = null;\n" - " }\n" - " },\n" - " },\n" - " );\n" - " } catch (error) {\n" - " stopRequest(error);\n" - " throw error;\n" - " }\n" - " if (!done && signal !== null) signal.addEventListener('abort', onAbort, { once: true });\n" - " if (!done && requestReader !== null) pumpRequest();\n" - " });\n" - " };\n" - "}\n"; - -/* ── boot / teardown (registered with the island) ────────────────────── */ - -static void fx_boot(void *jsctx) { - JSContext *ctx = (JSContext *)jsctx; - JSValue fn = JS_Eval(ctx, fx_glue, sizeof fx_glue - 1, "", JS_EVAL_TYPE_GLOBAL); - if (JS_IsException(fn)) { - fprintf(stderr, "scriptc: island fetch glue failed to evaluate\n"); - abort(); - } - JSValue host = JS_NewObject(ctx); - JS_SetPropertyStr(ctx, host, "start", JS_NewCFunction(ctx, fx_host_start, "start", 2)); - JS_SetPropertyStr(ctx, host, "write", JS_NewCFunction(ctx, fx_host_write, "write", 2)); - JS_SetPropertyStr(ctx, host, "end", JS_NewCFunction(ctx, fx_host_end, "end", 1)); - JS_SetPropertyStr(ctx, host, "fail", JS_NewCFunction(ctx, fx_host_fail, "fail", 2)); - JS_SetPropertyStr(ctx, host, "abort", JS_NewCFunction(ctx, fx_host_abort, "abort", 1)); - JSValue r = JS_Call(ctx, fn, JS_UNDEFINED, 1, (JSValueConst *)&host); - JS_FreeValue(ctx, host); - JS_FreeValue(ctx, fn); - if (JS_IsException(r)) { - fprintf(stderr, "scriptc: island fetch glue failed to run\n"); - abort(); - } - JS_FreeValue(ctx, r); -} - -/* Engine teardown with transfers still live (process.exit mid-request, or - * an exit with an abandoned body stream): free their engine values FIRST - * so the island's counting allocator returns to zero. The net/http exit - * cleanups (registered later, so they run earlier — atexit LIFO) have - * already dropped the listener closures; whatever the registry still - * holds settles here. */ -static void fx_teardown(void) { - while (fx_live) fx_settle(fx_live); -} - -/* The emitted main calls this (before any island entry) in builds whose - * embedded graph references fetch. No pending/poll hooks: transfers live - * on real sockets the loop's own poller sleeps on, and armed island - * timers cap that sleep through the loop's island-deadline hook. */ -void scr_fetch_install(void) { - static SCR_TL bool installed = false; - if (installed) return; - installed = true; - scr_tls_ca_install(); - fx_proxy_snapshot(); - scr_atexit(fx_proxy_snapshot_free); - /* The net unit's loop hooks (pending/dispatch/pollfd): the emitted main - * registers them only for programs that USE node:net — a fetch-only - * build must register them itself or its sockets would neither keep - * the loop alive nor dispatch. */ - scr_net_install(); - /* The island's node:http/https client bridge rides the same units and - * is always compiled beside the native fetch (native-toolchain.ts) — embedded graphs - * that require node:http/https get working clients, not refusals. */ - scr_net_island_install(); - scr_island_set_fetch(fx_boot, NULL, NULL, fx_teardown); -} - -#endif /* SCR_DYNAMIC */ - #undef SCR_FETCH_BAD_PORTS diff --git a/packages/runtime/src/scr_fetch_curl.c b/packages/runtime/src/scr_fetch_curl.c deleted file mode 100644 index a87922f4c..000000000 --- a/packages/runtime/src/scr_fetch_curl.c +++ /dev/null @@ -1,666 +0,0 @@ -/* fetch for the dynamic island, over the system libcurl — the RETIRED - * REFERENCE implementation. The default fetch is scr_fetch.c (scriptc's - * own net stack: scr_net + scr_tls + scr_http's client parser + zlib); - * this file stays compilable for one release behind SCRIPTC_FETCH_CURL=1 - * (native-toolchain.ts selects exactly one of the two — same scr_fetch_install symbol, - * same island surface, same fixture contract) as the flip's reference, - * the C-backend-vs-LLVM precedent. Compiled and linked ONLY into - * --dynamic builds whose embedded npm graph references fetch (emit gates - * on moduleUsesFetch; the emitted main calls scr_fetch_install before - * any island entry) — fetch-free binaries keep their exact link line and - * never load libcurl. - * - * Architecture (SEMANTICS.md has the user-facing story): - * - The JS half (fetch_glue below) defines globalThis.fetch over two host - * functions: host.start(req, cbs) begins a transfer and host.abort(id) - * cancels one (response-body cancel). fetch() returns a REAL island - * promise; the Response's body is an island ReadableStream fed by - * C→engine callbacks as data arrives. - * - The C half drives curl_multi from the event loop's io hook, exactly - * like child_process's waitpid polling: at loop quiescence the island's - * io poll (scr_island.c) drains engine jobs, then calls scr_fetch_poll, - * which SLEEPS on curl's fds (curl_multi_poll, capped by the loop's next - * deadline), performs transfers, fires callbacks for arrived data, and - * the drain that follows runs the resolved .then chains. The loop stays - * alive while transfers are live (scr_fetch_pending). - * - fetch SEMANTICS, matched to Node/undici: HTTP errors RESOLVE (only - * network failure rejects, with TypeError "fetch failed" — Node's exact - * message); redirects are followed (curl FOLLOWLOCATION, 20 hops like - * fetch's limit, POST→GET rewriting on 301/302/303 per libcurl's - * default, response.url = the final URL, response.redirected set); - * status/headers surface at header-complete, the body streams; gzip - * arrives decompressed (ACCEPT_ENCODING "") like fetch. AbortSignal is - * wired (init.signal, or the Request's): an already-aborted signal - * rejects with its reason before any transfer starts; aborting a live - * transfer cancels the curl handle through host.abort (silent on the C - * side — the glue owns the rejection) and rejects the fetch promise — - * or errors the body stream when the response already resolved — with - * signal.reason (default: DOMException AbortError "This operation was - * aborted", Node's exact shape; AbortSignal.timeout's TimeoutError rides - * the island timer machinery in scr_web.c, its deadline capping the - * transfer poll's sleep below). - * - Ownership: each transfer owns +1 on its JS callbacks object and its - * header/body copies; everything is freed when the transfer finishes, - * and teardown (registered with the island) frees whatever is still - * live before the engine goes down, so the island audit stays zero. - */ -#ifdef SCR_DYNAMIC - -#include "scr_runtime.h" - -#include -#include -#include -#include - -#include - -#include "quickjs.h" - -/* ── transfers ───────────────────────────────────────────────────────── */ - -typedef struct FxTransfer { - int id; - CURL *easy; - JSContext *ctx; - JSValue cbs; /* { onResponse, onData, onEnd, onError } — owned */ - struct curl_slist *req_headers; - /* The CURRENT response block's status line + headers (a redirect hop or - * 1xx resets it — only the final block reaches the island). */ - long status; - char *status_text; - char **hdr; /* name,value alternating */ - size_t nhdr, hdr_cap; - bool responded; /* onResponse fired */ - bool cancelled; /* island cancelled the body stream */ - char errbuf[CURL_ERROR_SIZE]; - struct FxTransfer *next; -} FxTransfer; - -static CURLM *fx_multi = NULL; -static FxTransfer *fx_live = NULL; -static size_t fx_nlive = 0; -static int fx_next_id = 1; -static bool fx_in_perform = false; /* abort-during-perform must defer */ - -static void fx_oom(void) { - fputs("scriptc: out of memory\n", stderr); - abort(); -} - -static void fx_headers_reset(FxTransfer *t) { - for (size_t i = 0; i < t->nhdr; i++) free(t->hdr[i]); - t->nhdr = 0; - free(t->status_text); - t->status_text = NULL; - t->status = 0; -} - -static void fx_free(FxTransfer *t) { - fx_headers_reset(t); - free(t->hdr); - if (t->easy) { - curl_multi_remove_handle(fx_multi, t->easy); - curl_easy_cleanup(t->easy); - } - curl_slist_free_all(t->req_headers); - JS_FreeValue(t->ctx, t->cbs); - free(t); -} - -static void fx_unlink(FxTransfer *t) { - for (FxTransfer **link = &fx_live; *link; link = &(*link)->next) { - if (*link == t) { - *link = t->next; - fx_nlive--; - return; - } - } -} - -/* Calls one callback off the cbs object, swallowing (but reporting) any - * engine exception — the callbacks are our own glue and must not throw; - * dying here would take down a transfer for an internal bug. */ -static void fx_call(FxTransfer *t, const char *name, int argc, JSValueConst *argv) { - JSContext *ctx = t->ctx; - JSValue fn = JS_GetPropertyStr(ctx, t->cbs, name); - JSValue r = JS_Call(ctx, fn, JS_UNDEFINED, argc, argv); - JS_FreeValue(ctx, fn); - if (JS_IsException(r)) { - JSValue e = JS_GetException(ctx); - const char *msg = JS_ToCString(ctx, e); - fprintf(stderr, "scriptc: fetch internal callback '%s' threw: %s\n", name, - msg ? msg : "?"); - if (msg) JS_FreeCString(ctx, msg); - JS_FreeValue(ctx, e); - return; - } - JS_FreeValue(ctx, r); -} - -/* status/headers → the island (fires once, lazily: at the first body byte - * or at DONE, whichever comes first — a header block curl is about to - * follow away from never fires). */ -static void fx_fire_response(FxTransfer *t) { - if (t->responded) return; - t->responded = true; - JSContext *ctx = t->ctx; - JSValue hdrs = JS_NewArray(ctx); - for (size_t i = 0; i < t->nhdr; i++) { - JS_SetPropertyUint32(ctx, hdrs, (uint32_t)i, JS_NewString(ctx, t->hdr[i])); - } - char *eff = NULL; - long redirects = 0; - curl_easy_getinfo(t->easy, CURLINFO_EFFECTIVE_URL, &eff); - curl_easy_getinfo(t->easy, CURLINFO_REDIRECT_COUNT, &redirects); - JSValue argv[5] = { - JS_NewInt32(ctx, (int32_t)t->status), - JS_NewString(ctx, t->status_text ? t->status_text : ""), - hdrs, - JS_NewString(ctx, eff ? eff : ""), - JS_NewBool(ctx, redirects > 0), - }; - fx_call(t, "onResponse", 5, argv); - for (int i = 0; i < 5; i++) JS_FreeValue(ctx, argv[i]); -} - -/* ── curl callbacks (fired inside curl_multi_perform) ────────────────── */ - -static size_t fx_header_cb(char *buf, size_t size, size_t n, void *ud) { - FxTransfer *t = (FxTransfer *)ud; - size_t len = size * n; - if (len >= 5 && strncmp(buf, "HTTP/", 5) == 0) { - /* A new response block (initial, redirect hop, or post-1xx): reset. */ - fx_headers_reset(t); - const char *sp = memchr(buf, ' ', len); - if (sp) { - t->status = strtol(sp + 1, NULL, 10); - const char *reason = memchr(sp + 1, ' ', len - (size_t)(sp + 1 - buf)); - if (reason) { - reason++; - size_t rlen = len - (size_t)(reason - buf); - while (rlen > 0 && (reason[rlen - 1] == '\r' || reason[rlen - 1] == '\n')) rlen--; - t->status_text = malloc(rlen + 1); - if (!t->status_text) fx_oom(); - memcpy(t->status_text, reason, rlen); - t->status_text[rlen] = '\0'; - } - } - return len; - } - const char *colon = memchr(buf, ':', len); - if (!colon || colon == buf) return len; /* the blank terminator, or junk */ - size_t nlen = (size_t)(colon - buf); - const char *v = colon + 1; - size_t vlen = len - nlen - 1; - while (vlen > 0 && (*v == ' ' || *v == '\t')) { v++; vlen--; } - while (vlen > 0 && (v[vlen - 1] == '\r' || v[vlen - 1] == '\n' || v[vlen - 1] == ' ' || v[vlen - 1] == '\t')) vlen--; - if (t->nhdr + 2 > t->hdr_cap) { - t->hdr_cap = t->hdr_cap ? t->hdr_cap * 2 : 16; - t->hdr = realloc(t->hdr, t->hdr_cap * sizeof(char *)); - if (!t->hdr) fx_oom(); - } - char *name = malloc(nlen + 1); - char *value = malloc(vlen + 1); - if (!name || !value) fx_oom(); - memcpy(name, buf, nlen); - name[nlen] = '\0'; - memcpy(value, v, vlen); - value[vlen] = '\0'; - t->hdr[t->nhdr++] = name; - t->hdr[t->nhdr++] = value; - return len; -} - -static size_t fx_write_cb(char *ptr, size_t size, size_t n, void *ud) { - FxTransfer *t = (FxTransfer *)ud; - size_t len = size * n; - if (t->cancelled) return 0; /* aborts the transfer (CURLE_WRITE_ERROR) */ - if (t->status >= 300 && t->status <= 399) { - /* A redirect body curl is following away from: fetch never delivers - * it. (A FINAL 3xx — no Location — ends with an empty body here; the - * documented corner.) */ - return len; - } - fx_fire_response(t); - JSValue chunk = JS_NewUint8ArrayCopy(t->ctx, (const uint8_t *)ptr, len); - fx_call(t, "onData", 1, (JSValueConst *)&chunk); - JS_FreeValue(t->ctx, chunk); - return len; -} - -/* ── completion ──────────────────────────────────────────────────────── */ - -static void fx_finish(FxTransfer *t, CURLcode result) { - if (t->cancelled) { - /* The island cancelled the body: nothing to deliver. */ - } else if (result == CURLE_OK) { - fx_fire_response(t); /* bodyless responses respond here */ - fx_call(t, "onEnd", 0, NULL); - } else { - /* Node's fetch failure carries a CAUSE (undici): a plain Error whose - * message/code the AI-SDK-style wrappers read (`error.cause.message`, - * the ECONNREFUSED classification). Shape the two common network - * failures exactly like Node — connect ECONNREFUSED host:port and - * getaddrinfo ENOTFOUND host — and pass everything else through as - * curl's detail string. (Node also sets errno/address/port on the - * cause; those stay off — a documented approximation.) */ - const char *detail = t->errbuf[0] ? t->errbuf : curl_easy_strerror(result); - const char *code = NULL; - char shaped[512]; - if (result == CURLE_COULDNT_CONNECT || result == CURLE_COULDNT_RESOLVE_HOST) { - char *eff = NULL; - curl_easy_getinfo(t->easy, CURLINFO_EFFECTIVE_URL, &eff); - CURLU *u = curl_url(); - char *host = NULL, *port = NULL, *scheme = NULL; - if (u && eff && curl_url_set(u, CURLUPART_URL, eff, 0) == CURLUE_OK) { - curl_url_get(u, CURLUPART_HOST, &host, 0); - curl_url_get(u, CURLUPART_PORT, &port, 0); - curl_url_get(u, CURLUPART_SCHEME, &scheme, 0); - } - const char *h = host ? host : ""; - const char *p = port ? port - : (scheme && strcmp(scheme, "https") == 0 ? "443" : "80"); - if (result == CURLE_COULDNT_CONNECT) { - snprintf(shaped, sizeof shaped, "connect ECONNREFUSED %s:%s", h, p); - code = "ECONNREFUSED"; - } else { - snprintf(shaped, sizeof shaped, "getaddrinfo ENOTFOUND %s", h); - code = "ENOTFOUND"; - } - detail = shaped; - if (host) curl_free(host); - if (port) curl_free(port); - if (scheme) curl_free(scheme); - if (u) curl_url_cleanup(u); - } - JSValue args[2]; - args[0] = JS_NewString(t->ctx, detail); - args[1] = code ? JS_NewString(t->ctx, code) : JS_UNDEFINED; - fx_call(t, "onError", 2, (JSValueConst *)args); - JS_FreeValue(t->ctx, args[0]); - JS_FreeValue(t->ctx, args[1]); - } - fx_free(t); -} - -/* ── the loop's fetch half (called from scr_island.c's io poll) ───────── */ - -static bool fx_pending(void) { return fx_nlive > 0; } - -static void fx_poll(double max_wait_ms) { - if (fx_nlive == 0) return; - if (max_wait_ms > 0) { - int ms = max_wait_ms > 1000 ? 1000 : (int)max_wait_ms; - curl_multi_poll(fx_multi, NULL, 0, ms, NULL); - } - int running = 0; - fx_in_perform = true; - curl_multi_perform(fx_multi, &running); - fx_in_perform = false; - for (;;) { - int left = 0; - CURLMsg *msg = curl_multi_info_read(fx_multi, &left); - if (!msg) break; - if (msg->msg != CURLMSG_DONE) continue; - FxTransfer *t = NULL; - curl_easy_getinfo(msg->easy_handle, CURLINFO_PRIVATE, &t); - if (!t) continue; - fx_unlink(t); - fx_finish(t, msg->data.result); - } -} - -/* ── host functions (called by the fetch glue, inside the engine) ────── */ - -/* host.start({url, method, headers: [n,v,...], body: Uint8Array|undefined}, - * cbs) → transfer id. Everything is copied out of the engine before curl - * sees it. */ -static JSValue fx_host_start(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - JSValueConst req = argv[0]; - FxTransfer *t = calloc(1, sizeof *t); - if (!t) fx_oom(); - t->ctx = ctx; - t->id = fx_next_id++; - t->cbs = JS_DupValue(ctx, argv[1]); - t->easy = curl_easy_init(); - if (!t->easy) { - JS_FreeValue(ctx, t->cbs); - free(t); - return JS_ThrowTypeError(ctx, "fetch failed"); - } - CURL *e = t->easy; - - JSValue urlv = JS_GetPropertyStr(ctx, req, "url"); - const char *url = JS_ToCString(ctx, urlv); - JS_FreeValue(ctx, urlv); - JSValue methodv = JS_GetPropertyStr(ctx, req, "method"); - const char *method = JS_ToCString(ctx, methodv); - JS_FreeValue(ctx, methodv); - if (!url || !method) { - if (url) JS_FreeCString(ctx, url); - if (method) JS_FreeCString(ctx, method); - fx_free(t); - return JS_EXCEPTION; - } - - curl_easy_setopt(e, CURLOPT_URL, url); - curl_easy_setopt(e, CURLOPT_PRIVATE, t); - curl_easy_setopt(e, CURLOPT_WRITEFUNCTION, fx_write_cb); - curl_easy_setopt(e, CURLOPT_WRITEDATA, t); - curl_easy_setopt(e, CURLOPT_HEADERFUNCTION, fx_header_cb); - curl_easy_setopt(e, CURLOPT_HEADERDATA, t); - curl_easy_setopt(e, CURLOPT_ERRORBUFFER, t->errbuf); - curl_easy_setopt(e, CURLOPT_NOSIGNAL, 1L); - curl_easy_setopt(e, CURLOPT_FOLLOWLOCATION, 1L); - curl_easy_setopt(e, CURLOPT_MAXREDIRS, 20L); /* fetch's redirect limit */ - curl_easy_setopt(e, CURLOPT_ACCEPT_ENCODING, ""); /* gzip in, transparent out */ - curl_easy_setopt(e, CURLOPT_PROTOCOLS_STR, "http,https"); - curl_easy_setopt(e, CURLOPT_SUPPRESS_CONNECT_HEADERS, 1L); - /* Node's global opt-in and Vercel's request-local EnvProxyDispatcher both - * activate libcurl's environment proxy lookup. Otherwise explicitly turn - * it off, because libcurl enables proxy variables by default. */ - JSValue envproxyv = JS_GetPropertyStr(ctx, req, "useEnvProxy"); - bool use_env_proxy = JS_ToBool(ctx, envproxyv) > 0; - JS_FreeValue(ctx, envproxyv); - const char *global_env_proxy = scr_getenv("NODE_USE_ENV_PROXY"); - use_env_proxy = use_env_proxy || - (global_env_proxy != NULL && - strcmp(global_env_proxy, "1") == 0); - if (!use_env_proxy) { - curl_easy_setopt(e, CURLOPT_PROXY, ""); - } - - /* Request headers: fetch never sends Expect: 100-continue; a body with - * no explicit content-type must not inherit curl's form default. */ - bool has_content_type = false; - JSValue hdrs = JS_GetPropertyStr(ctx, req, "headers"); - JSValue lenv = JS_GetPropertyStr(ctx, hdrs, "length"); - uint32_t hn = 0; - JS_ToUint32(ctx, &hn, lenv); - JS_FreeValue(ctx, lenv); - for (uint32_t i = 0; i + 1 < hn; i += 2) { - JSValue nv = JS_GetPropertyUint32(ctx, hdrs, i); - JSValue vv = JS_GetPropertyUint32(ctx, hdrs, i + 1); - const char *hname = JS_ToCString(ctx, nv); - const char *hvalue = JS_ToCString(ctx, vv); - if (hname && hvalue) { - if (strcasecmp(hname, "content-type") == 0) has_content_type = true; - size_t linelen = strlen(hname) + 2 + strlen(hvalue) + 1; - char *line = malloc(linelen); - if (!line) fx_oom(); - /* An empty value still SETS the header: curl's "name;" form. */ - if (hvalue[0] == '\0') snprintf(line, linelen, "%s;", hname); - else snprintf(line, linelen, "%s: %s", hname, hvalue); - t->req_headers = curl_slist_append(t->req_headers, line); - free(line); - } - if (hname) JS_FreeCString(ctx, hname); - if (hvalue) JS_FreeCString(ctx, hvalue); - JS_FreeValue(ctx, nv); - JS_FreeValue(ctx, vv); - } - JS_FreeValue(ctx, hdrs); - t->req_headers = curl_slist_append(t->req_headers, "Expect:"); - - /* Body: copied by COPYPOSTFIELDS; binary-safe via POSTFIELDSIZE. */ - JSValue bodyv = JS_GetPropertyStr(ctx, req, "body"); - if (!JS_IsUndefined(bodyv) && !JS_IsNull(bodyv)) { - size_t blen = 0; - uint8_t *bytes = JS_GetUint8Array(ctx, &blen, bodyv); - if (bytes || blen == 0) { - curl_easy_setopt(e, CURLOPT_POSTFIELDSIZE, (long)blen); - curl_easy_setopt(e, CURLOPT_COPYPOSTFIELDS, (const char *)bytes); - if (!has_content_type) { - t->req_headers = curl_slist_append(t->req_headers, "Content-Type:"); - } - } - } - JS_FreeValue(ctx, bodyv); - - /* Method: bodies default curl to POST; anything else is CUSTOMREQUEST. - * HEAD is NOBODY so curl won't wait for a body that never comes. */ - if (strcasecmp(method, "HEAD") == 0) { - curl_easy_setopt(e, CURLOPT_NOBODY, 1L); - } else if (strcasecmp(method, "GET") != 0 && strcasecmp(method, "POST") != 0) { - curl_easy_setopt(e, CURLOPT_CUSTOMREQUEST, method); - } - curl_easy_setopt(e, CURLOPT_HTTPHEADER, t->req_headers); - - JS_FreeCString(ctx, url); - JS_FreeCString(ctx, method); - - t->next = fx_live; - fx_live = t; - fx_nlive++; - curl_multi_add_handle(fx_multi, t->easy); - return JS_NewInt32(ctx, t->id); -} - -/* host.abort(id): the island cancelled the response body stream. The - * transfer dies quietly — no onError, no onEnd. */ -static JSValue fx_host_abort(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t id = 0; - JS_ToInt32(ctx, &id, argv[0]); - for (FxTransfer *t = fx_live; t; t = t->next) { - if (t->id == id) { - if (fx_in_perform) { - /* curl frames are live on the stack: the write callback returns 0 - * next delivery, the transfer errors out, and fx_finish sees - * `cancelled` and dies silently. */ - t->cancelled = true; - } else { - fx_unlink(t); - fx_free(t); - } - break; - } - } - return JS_UNDEFINED; -} - -/* ── the JS half ─────────────────────────────────────────────────────── */ - -static const char fx_glue[] = - "(host) => {\n" - " 'use strict';\n" - " const g = globalThis;\n" - " const NULL_BODY = { 204: true, 205: true, 304: true };\n" - " g.fetch = function fetch(input, init) {\n" - " return new Promise((resolve, reject) => {\n" - " let url;\n" - " let method = 'GET';\n" - " let headers = null;\n" - " let body = null;\n" - " let signal = null;\n" - " if (input instanceof g.Request) {\n" - " url = input.url;\n" - " method = input.method;\n" - " headers = new g.Headers(input.headers);\n" - " body = input._body instanceof Uint8Array ? input._body : null;\n" - " signal = input._signal;\n" - " } else {\n" - " url = String(input);\n" - " }\n" - " init = init === undefined || init === null ? {} : init;\n" - " let useEnvProxy = g.process?.env?.NODE_USE_ENV_PROXY === '1';\n" - " const initDispatcher = init.dispatcher;\n" - " if (initDispatcher !== undefined) {\n" - " const dispatcher = initDispatcher;\n" - " const methods = ['dispatch', 'close', 'destroy', 'agents', 'getAgent', 'shouldProxy', 'parseNoProxy'];\n" - " const known = dispatcher !== null && typeof dispatcher === 'object' && dispatcher.constructor?.name === 'EnvProxyDispatcher' && methods.every((member) => typeof dispatcher[member] === 'function');\n" - " if (!known) throw new TypeError('unsupported RequestInit option: dispatcher');\n" - " useEnvProxy = true;\n" - " }\n" - " // An explicit init.signal overrides the Request's, null included.\n" - " if (init.signal !== undefined) {\n" - " if (init.signal !== null && !(init.signal instanceof g.AbortSignal)) {\n" - " throw new TypeError('fetch init.signal must be an AbortSignal or null');\n" - " }\n" - " signal = init.signal;\n" - " }\n" - " if (init.redirect !== undefined && init.redirect !== 'follow') {\n" - " throw new Error(\"scriptc: only redirect: 'follow' is supported by the embedded fetch\");\n" - " }\n" - " // Reuse Request's init handling: method normalization, header\n" - " // collection, body coercion with its implicit content-type, and the\n" - " // GET/HEAD-with-body TypeError.\n" - " const reqInit = {};\n" - " if (init.method !== undefined) reqInit.method = init.method;\n" - " if (init.headers !== undefined) reqInit.headers = init.headers;\n" - " if (init.body !== undefined && init.body !== null) reqInit.body = init.body;\n" - " if (reqInit.method !== undefined || reqInit.headers !== undefined || reqInit.body !== undefined || headers === null) {\n" - " const base = input instanceof g.Request ? input : url;\n" - " const r = new g.Request(base, reqInit);\n" - " method = r.method;\n" - " headers = r.headers;\n" - " if (r._body instanceof Uint8Array) body = r._body;\n" - " }\n" - " if (body !== null && !(body instanceof Uint8Array)) {\n" - " throw new TypeError('streaming request bodies are not supported in the scriptc island');\n" - " }\n" - " // An already-aborted signal rejects with ITS reason before any\n" - " // transfer starts (Node: validation above still throws first).\n" - " if (signal !== null && signal.aborted) {\n" - " reject(signal.reason);\n" - " return;\n" - " }\n" - " let controller = null;\n" - " let resolved = false;\n" - " let done = false;\n" - " let id = 0;\n" - " // The transfer is over (delivered, failed, cancelled, or aborted):\n" - " // a later signal abort must not touch it.\n" - " const finish = () => {\n" - " done = true;\n" - " if (signal !== null) signal.removeEventListener('abort', onAbort);\n" - " };\n" - " const onAbort = () => {\n" - " if (done) return;\n" - " finish();\n" - " host.abort(id); // the C side dies quietly; rejection is ours\n" - " if (!resolved) {\n" - " resolved = true;\n" - " reject(signal.reason);\n" - " } else if (controller !== null) {\n" - " // Mid-stream: pending and future reads reject with the reason,\n" - " // exactly Node's aborted-body behavior.\n" - " try { controller.error(signal.reason); } catch (_e) { /* already closed */ }\n" - " controller = null;\n" - " }\n" - " };\n" - " const flat = [];\n" - " for (const pair of headers) { flat.push(pair[0], pair[1]); }\n" - " id = host.start(\n" - " { url, method, headers: flat, body: body === null ? undefined : body, useEnvProxy },\n" - " {\n" - " onResponse(status, statusText, raw, finalUrl, redirected) {\n" - " resolved = true;\n" - " const h = new g.Headers();\n" - " for (let i = 0; i + 1 < raw.length; i += 2) {\n" - " try { h.append(raw[i], raw[i + 1]); } catch (_e) { /* junk line */ }\n" - " }\n" - " let stream = null;\n" - " if (method !== 'HEAD' && NULL_BODY[status] !== true) {\n" - " stream = new g.ReadableStream({\n" - " start(c) { controller = c; },\n" - " cancel() { controller = null; finish(); host.abort(id); },\n" - " });\n" - " }\n" - " resolve(g.__scr_mk_response(status, statusText, h, finalUrl, redirected, stream));\n" - " },\n" - " onData(chunk) {\n" - " if (controller !== null) {\n" - " try { controller.enqueue(chunk); } catch (_e) { /* consumer went away */ }\n" - " }\n" - " },\n" - " onEnd() {\n" - " finish();\n" - " if (controller !== null) {\n" - " try { controller.close(); } catch (_e) { /* already errored */ }\n" - " controller = null;\n" - " }\n" - " },\n" - " onError(detail, code) {\n" - " finish();\n" - " if (!resolved) {\n" - " // Node's shape: TypeError 'fetch failed' with a CAUSE the\n" - " // wrappers classify (message + code for the network cases).\n" - " const cause = new Error(String(detail));\n" - " if (code !== undefined) cause.code = code;\n" - " if (code === 'ECONNREFUSED') cause.syscall = 'connect';\n" - " else if (code === 'ENOTFOUND') cause.syscall = 'getaddrinfo';\n" - " const err = new TypeError('fetch failed');\n" - " err.cause = cause;\n" - " reject(err);\n" - " } else if (controller !== null) {\n" - " try { controller.error(new TypeError('terminated')); } catch (_e) { /* already closed */ }\n" - " controller = null;\n" - " }\n" - " },\n" - " },\n" - " );\n" - " if (signal !== null) signal.addEventListener('abort', onAbort, { once: true });\n" - " });\n" - " };\n" - "}\n"; - -/* ── boot / teardown (registered with the island) ────────────────────── */ - -static void fx_boot(void *jsctx) { - JSContext *ctx = (JSContext *)jsctx; - JSValue fn = JS_Eval(ctx, fx_glue, sizeof fx_glue - 1, "", JS_EVAL_TYPE_GLOBAL); - if (JS_IsException(fn)) { - fprintf(stderr, "scriptc: island fetch glue failed to evaluate\n"); - abort(); - } - JSValue host = JS_NewObject(ctx); - JS_SetPropertyStr(ctx, host, "start", JS_NewCFunction(ctx, fx_host_start, "start", 2)); - JS_SetPropertyStr(ctx, host, "abort", JS_NewCFunction(ctx, fx_host_abort, "abort", 1)); - JSValue r = JS_Call(ctx, fn, JS_UNDEFINED, 1, (JSValueConst *)&host); - JS_FreeValue(ctx, host); - JS_FreeValue(ctx, fn); - if (JS_IsException(r)) { - fprintf(stderr, "scriptc: island fetch glue failed to run\n"); - abort(); - } - JS_FreeValue(ctx, r); -} - -/* Engine teardown with transfers still live (process.exit mid-request, or - * an exit with an abandoned body stream): free their engine values FIRST - * so the island's counting allocator returns to zero. */ -static void fx_teardown(void) { - while (fx_live) { - FxTransfer *t = fx_live; - fx_live = t->next; - fx_nlive--; - fx_free(t); - } - if (fx_multi) { - curl_multi_cleanup(fx_multi); - fx_multi = NULL; - } - curl_global_cleanup(); -} - -/* The emitted main calls this (before any island entry) in builds whose - * embedded graph references fetch. */ -void scr_fetch_install(void) { - if (fx_multi) return; - curl_global_init(CURL_GLOBAL_DEFAULT); - fx_multi = curl_multi_init(); - if (!fx_multi) { - fputs("scriptc: curl_multi_init failed\n", stderr); - abort(); - } - scr_island_set_fetch(fx_boot, fx_pending, fx_poll, fx_teardown); -} - -#endif /* SCR_DYNAMIC */ diff --git a/packages/runtime/src/scr_http.c b/packages/runtime/src/scr_http.c index f9a09c758..c4bbe453f 100644 --- a/packages/runtime/src/scr_http.c +++ b/packages/runtime/src/scr_http.c @@ -3717,8 +3717,6 @@ void scr_http_client_add_trailers(ScrHttpClientReq *c, ScrArr *pairs /*borrowed* scr_http_trailers_replace(&c->trailers, pairs); } -/* req.setTimeout(ms) after construction (the island bridge's late arm — - * the constructor's timeout_ms is the static lane's route). */ void scr_http_client_set_timeout(ScrHttpClientReq *c, double ms) { if (!scr_http_timeout_valid(ms)) return; if (c->sock) scr_net_sock_set_timeout(c->sock, ms); @@ -4253,17 +4251,6 @@ static ScrHttpClientReq *scr_http_request_impl(ScrStr *host /*borrowed*/, double } if (cb) scr_net_ls_add(&c->resp_ls, cb, (void *)fn, true); - /* dial — or take the caller's pre-made socket (createConnection); dial - * failures are the async 'error' either way, the net story. - * - * The hostname resolves HERE, at the client dial, the way the island's - * client and the native fetch resolve at theirs: node:net's own connect - * surface stays resolver-less on purpose (Node's async lookup semantics - * are not this), so a client that dials by name has to ask. Only the - * dial takes the address — c->host keeps the ORIGINAL name, which is - * what the Host header carries and what the caller built the TLS - * client's SNI from. An unresolvable name comes back unchanged and the - * dial delivers Node's deferred ENOTFOUND. */ if (presock != NULL) { c->sock = presock; } else { diff --git a/packages/runtime/src/scr_inspect.c b/packages/runtime/src/scr_inspect.c index e30a44403..bb0d77c2b 100644 --- a/packages/runtime/src/scr_inspect.c +++ b/packages/runtime/src/scr_inspect.c @@ -918,19 +918,7 @@ ScrStr *scr_insp_dyn(ScrDyn *d, double recurse, double depth) { scr_throw_error(SCR_ERR_ERROR, ib_take(&out)); return scr_str_new("", 0); } - case SCR_DYN_JSVAL: { - /* An island value inside the checked-dynamic tree: Node prints the engine object's - * property dump — fence loudly, naming the engine typeof (the - * scr_insp_jsval wording for bare 'any' composites). */ - ScrStr *t = scr_dyn_typeof(d); /* routes to the engine; +1 */ - InspBuf out = {0}; - ib_cstr(&out, "util.inspect of a composite 'any' value (typeof '"); - ib_bytes(&out, t->data, t->len); - ib_cstr(&out, "') is not supported yet"); - scr_str_release(t); - scr_throw_error(SCR_ERR_ERROR, ib_take(&out)); - return scr_str_new("", 0); - } + case SCR_DYN_TYPED_REF: { ScrDyn *materialized = scr_dyn_typed_ref_materialize(d); ScrStr *out = scr_insp_dyn(materialized, recurse, depth); diff --git a/packages/runtime/src/scr_inspect_island.c b/packages/runtime/src/scr_inspect_island.c deleted file mode 100644 index ebbbfc48e..000000000 --- a/packages/runtime/src/scr_inspect_island.c +++ /dev/null @@ -1,51 +0,0 @@ -/* util.inspect over island `any` values — the one translation unit that - * references BOTH the inspect engine (scr_inspect.c) and the island - * (scr_island.c), so native-toolchain.ts links it exactly when a --dynamic build's IR - * carries insp.* libCalls (each half alone stays independent: static - * inspect builds never pull engine symbols, inspect-free dynamic builds - * never pull the renderer). - * - * The runtime tag is all the static world has for `any`: the scalar - * kinds render byte-exactly (numbers through the -0-aware formatter, - * strings through the quoting ladder, boolean/null/undefined as their - * literals); composites — objects, arrays, functions — THROW a catchable - * TypeError instead of approximating (their shape lives in the engine; - * SEMANTICS.md). Callers are compiler-emitted pending checks. */ -#include "scr_runtime.h" - -#include -#include - -ScrStr *scr_insp_jsval(ScrJsval *v, double recurse, double depth) { - (void)recurse; - (void)depth; - if (scr_jsval_is_undefined(v)) return scr_str_new("undefined", 9); - if (scr_jsval_is_nullish(v)) return scr_str_new("null", 4); - ScrStr *ty = scr_jsval_typeof(v); - if (ty && strcmp(ty->data, "number") == 0) { - scr_str_release(ty); - double x = 0; - if (!scr_jsval_exit_f64(v, &x)) return NULL; /* typeof proved number */ - return scr_insp_f64(x); - } - if (ty && strcmp(ty->data, "string") == 0) { - scr_str_release(ty); - ScrStr *s = scr_jsval_exit_str(v); - if (!s) return NULL; - ScrStr *out = scr_insp_str(s); - scr_str_release(s); - return out; - } - if (ty && strcmp(ty->data, "boolean") == 0) { - scr_str_release(ty); - return scr_jsval_truthy(v) ? scr_str_new("true", 4) : scr_str_new("false", 5); - } - char buf[192]; - int n = snprintf(buf, sizeof buf, - "util.inspect of a composite 'any' value (typeof '%s') is not supported " - "yet — validate with 'as ' first", - ty ? ty->data : "unknown"); - if (ty) scr_str_release(ty); - scr_throw_error_msg(SCR_ERR_TYPE, buf, (size_t)n); - return NULL; -} diff --git a/packages/runtime/src/scr_island.c b/packages/runtime/src/scr_island.c deleted file mode 100644 index 4d23370e8..000000000 --- a/packages/runtime/src/scr_island.c +++ /dev/null @@ -1,11392 +0,0 @@ -/* The dynamic island: an embedded QuickJS-ng engine, compiled and linked - * ONLY under -DSCR_DYNAMIC (the --dynamic build mode). Static builds see an - * empty translation unit — nothing here may leak into them. - * - * Model: - * - ONE JSRuntime + JSContext per process, created lazily on the first - * island entry and torn down at exit BEFORE the RC audit (atexit is LIFO; - * scr_init registered the audit at startup, so a handler registered at - * first entry runs earlier). Teardown asserts the engine's live-allocation - * count is zero in the audit lane — the counting allocator passed to - * JS_NewRuntime2 is the leak oracle (Apple ASan has no LeakSanitizer on - * macOS arm64). - * - NOT reentrant: island entry points must not be called from inside an - * engine callback (host function, finalizer). Single-threaded by design; - * there is no engine TLS, so migrating between ucontext fibers is safe - * BECAUSE every entry re-anchors the engine's stack-overflow check. - * - Fiber safety: scriptc runs user code on fixed-size ucontext fibers - * (scr_async.c; 256KB, 1MB under ASan). The engine checks stack overflow - * against a stack top - * captured at runtime creation, so isl_entry() calls JS_UpdateStackTop on - * EVERY entry (unconditionally — it is cheap) and init budgets the stack - * well inside the fiber size (see ISL_STACK_BUDGET below for the ASan - * measurement). Skipping the re-anchor does not fail gracefully — it - * SIGBUSes. - * - Ownership rules of the C API, encapsulated here so callers never see - * them: JS_SetPropertyStr CONSUMES its value; JS_GetPropertyStr returns - * OWNED; after any JS_IsException hit, JS_GetException must be called - * (owned; clears the pending state) or the next engine call misbehaves; - * JS_ToCStringLen pairs with JS_FreeCString; JS_NewStringLen takes UTF-8 - * (ScrStr storage is UTF-8 — direct). - */ -#ifdef SCR_DYNAMIC - -#include "scr_runtime.h" - -#include -#include -#include - -#include "quickjs.h" - -#if defined(__APPLE__) -#include -#define isl_malloc_size malloc_size -#elif defined(_WIN32) -#include -/* The CRT's usable-size probe (vendored cutils.h makes the same choice); - * _msize takes a non-const pointer, hence the cast. */ -#define isl_malloc_size(p) _msize((void *)(p)) -#else -#include -#define isl_malloc_size malloc_usable_size -#endif - -/* Engine stack budget FOR FIBER ENTRIES: HALF the fiber stack size - * (scr_async.c SCR_FIBER_STACK), leaving the other half as margin for the - * C excursion past the engine's last overflow check. Under ASan both - * scale up together (8MB fibers, 4MB budget): measured on the - * Debug+ASan engine, ONE function call costs 64–96KB of C stack and a - * host→JS callback chain (Array.prototype.map + arrow) overruns even - * 128KB — a small ASan budget cannot execute anything real, and a real - * embedded graph entered from a fiber (a CLI action awaiting - * generateText — zod parses inside promise chains) nests dozens of - * engine frames. Entries from - * the MAIN stack get ISL_MAIN_STACK_BUDGET instead (see isl_entry) — - * embedded npm package call chains need more than a fiber can offer. - * Overridable for experiments (-DSCR_ISLAND_STACK_BUDGET=...). */ -#ifndef SCR_ISLAND_STACK_BUDGET -#if defined(__SANITIZE_ADDRESS__) -#define SCR_ISLAND_STACK_BUDGET (4 * 1024 * 1024) -#elif defined(__has_feature) -#if __has_feature(address_sanitizer) -#define SCR_ISLAND_STACK_BUDGET (4 * 1024 * 1024) -#endif -#endif -#endif -#ifndef SCR_ISLAND_STACK_BUDGET -#define SCR_ISLAND_STACK_BUDGET (256 * 1024) -#endif -#define ISL_STACK_BUDGET SCR_ISLAND_STACK_BUDGET - -/* Node's default stream highWaterMark is platform-split at the source - * (lib/internal/streams/state.js: `process.platform === 'win32' ? - * 16 * 1024 : 64 * 1024`), so the island's stream shim splices the - * target's value into its JS — the same triple-decided split as - * scr_stream.c's SCR_STREAM_DEFAULT_HWM. */ -#ifdef _WIN32 -#define ISL_STREAM_DEFAULT_HWM "16384" -#else -#define ISL_STREAM_DEFAULT_HWM "65536" -#endif - -/* ── counting allocator (the leak oracle) ───────────────────────────── - * Every engine allocation goes through these; live must return to zero - * after JS_FreeRuntime or the engine (or our wrapper layer) leaked. */ -static long isl_live_allocs = 0; - -static void *isl_calloc(void *opaque, size_t count, size_t size) { - (void)opaque; - void *p = calloc(count, size); - if (p) isl_live_allocs++; - return p; -} -static void *isl_malloc(void *opaque, size_t size) { - (void)opaque; - void *p = malloc(size); - if (p) isl_live_allocs++; - return p; -} -static void isl_free(void *opaque, void *ptr) { - (void)opaque; - if (ptr) isl_live_allocs--; - free(ptr); -} -static void *isl_realloc_fn(void *opaque, void *ptr, size_t size) { - (void)opaque; - void *p = realloc(ptr, size); - if (!ptr && p) isl_live_allocs++; - return p; -} -static size_t isl_usable_size(const void *ptr) { return isl_malloc_size((void *)ptr); } - -static const JSMallocFunctions isl_mf = { - isl_calloc, isl_malloc, isl_free, isl_realloc_fn, isl_usable_size, -}; - -/* ── the one runtime/context ──────────────────────────────────────────── */ - -static JSRuntime *isl_rt = NULL; -static JSContext *isl_ctx = NULL; - -/* ── embedded npm module tables (emitted static data) ─────────────────── */ - -static const ScrIslandModule *isl_mods = NULL; -static size_t isl_nmods = 0; -static const ScrIslandEdge *isl_edges = NULL; -static size_t isl_nedges = 0; -static const char *isl_main_module = NULL; - -void scr_island_entry_module(const char *filename) { - isl_main_module = filename; -} - -/* Compressed embedded module text (src_raw/esm_raw > 0: raw DEFLATE, the - * emitter's size lever) inflates LAZILY at a module's first load and the - * inflated copy caches for the process lifetime — like the engine's own - * module cache, so the cost is once per loaded module and a module a run - * never loads never inflates (its pages never even fault in). The - * inflater is installed by the emitted main exactly when some module - * compressed at build time (scr_zlib.c links on the same predicate). */ -static bool (*isl_inflate)(const unsigned char *, size_t, unsigned char *, size_t) = NULL; -static char **isl_text_cache = NULL; /* 2 slots per module: src, esm */ - -void scr_island_set_inflate(bool (*inflate)(const unsigned char *src, size_t src_len, - unsigned char *dst, size_t dst_len)) { - isl_inflate = inflate; -} - -void scr_island_modules(const ScrIslandModule *mods, size_t nmods, - const ScrIslandEdge *edges, size_t nedges) { - isl_mods = mods; - isl_nmods = nmods; - isl_edges = edges; - isl_nedges = nedges; -} - -/* The module's SOURCE (esm=false) or ESM-facade (esm=true) text, inflating - * a compressed embed on first use. NULL only on inflation failure (a - * build/runtime mismatch — the caller throws). The returned text is - * NUL-terminated either way (the emitter's plain strings are literals). */ -static const char *isl_mod_text(const ScrIslandModule *m, bool esm, size_t *len_out) { - const char *stored = esm ? m->esm : m->src; - size_t stored_len = esm ? m->esm_len : m->len; - size_t raw = esm ? m->esm_raw : m->src_raw; - if (raw == 0) { - *len_out = stored_len; - return stored; - } - if (!isl_text_cache) { - isl_text_cache = calloc(isl_nmods * 2, sizeof(char *)); - if (!isl_text_cache) return NULL; - } - char **slot = &isl_text_cache[(size_t)(m - isl_mods) * 2 + (esm ? 1 : 0)]; - if (!*slot) { - char *text = malloc(raw + 1); - if (!text) return NULL; - if (!isl_inflate || - !isl_inflate((const unsigned char *)stored, stored_len, (unsigned char *)text, raw)) { - free(text); - return NULL; - } - text[raw] = '\0'; - *slot = text; - } - *len_out = raw; - return *slot; -} - -static const ScrIslandModule *isl_mod_find(const char *key) { - for (size_t i = 0; i < isl_nmods; i++) { - if (strcmp(isl_mods[i].key, key) == 0) return &isl_mods[i]; - } - return NULL; -} - -/* `want` is the LOOKUP's edge kind — the module loader asks with 1 - * (import), the require shim with 2 (require). A dual package (an - * "exports" map whose "import" and "require" conditions name different - * files) embeds two edges for one (from, spec); the kind picks Node's - * entry for the call form. An import lookup missing its own kind falls - * back to a require edge — a build-time-invisible import() of a spec the - * file only require()s loads the CJS entry through its facade, which is - * the module Node's require condition serves — but a require lookup - * NEVER falls back: import-kind edges can target real ES modules or - * throwing import traps, and the shim's MODULE_NOT_FOUND is the honest - * answer for a require the build never resolved. */ -static const char *isl_edge_find(const char *from, const char *spec, int want) { - const char *fallback = NULL; - for (size_t i = 0; i < isl_nedges; i++) { - if (strcmp(isl_edges[i].from, from) != 0 || strcmp(isl_edges[i].spec, spec) != 0) continue; - int kind = isl_edges[i].kind; - if (kind == 0 || kind == want) return isl_edges[i].to; - if (want == 1 && kind == 2) fallback = isl_edges[i].to; - } - return fallback; -} - -/* Defined with the module system below; called from isl_init. */ -static void isl_install_module_loader(void); -static void isl_init_type_brands(void); -/* Defined with the host-function machinery below; called from isl_init. */ -static void isl_register_hostfn_class(void); -/* Defined with the island → static promise bridge below; called from the - * host-function registration (both classes register together). */ -static void isl_register_bridge_class(void); -/* Defined with the loop-io machinery below; registered by isl_init. */ -static bool isl_io_pending(void); -static void isl_io_poll(double max_wait_ms); - -/* The fetch bridge's hooks (scr_fetch.c; linked only into fetch-using - * builds). Registered by scr_fetch_install from the emitted main, BEFORE - * the engine's lazy boot — isl_init consults them. The native bridge - * registers boot/teardown only (its transfers ride scr_net sockets the - * loop's poller sleeps on); the curl reference (scr_fetch_curl.c) also - * registers pending/poll so the loop can sleep on curl's fds. */ -static void (*isl_fetch_boot)(void *jsctx) = NULL; -static bool (*isl_fetch_pending)(void) = NULL; -static void (*isl_fetch_poll)(double max_wait_ms) = NULL; -static void (*isl_fetch_teardown)(void) = NULL; - -void scr_island_set_fetch(void (*boot)(void *), bool (*pending)(void), - void (*poll)(double), void (*teardown)(void)) { - isl_fetch_boot = boot; - isl_fetch_pending = pending; - isl_fetch_poll = poll; - isl_fetch_teardown = teardown; -} - -/* The node:http/https client bridge's hooks (scr_net_island.c; linked - * only when the socket units are). `attach` adds the bridge's host - * functions while the module bootstrap builds its host object; - * `teardown` frees engine values in-flight exchanges still hold. */ -static void (*isl_netmod_attach)(void *jsctx, void *host_obj) = NULL; -static void (*isl_netmod_teardown)(void) = NULL; - -void scr_island_set_netmod(void (*attach)(void *jsctx, void *host_obj), void (*teardown)(void)) { - isl_netmod_attach = attach; - isl_netmod_teardown = teardown; -} - -/* ── unhandled island rejections ────────────────────────────────────── - * JS_SetHostPromiseRejectionTracker signals BOTH directions: is_handled == - * false when a promise rejects with no reaction attached (tracked here, - * promise and reason retained), is_handled == true when a handler is - * attached to it later (the rescission: unlinked and freed — a - * handled-later rejection never reports). At the completed microtask - * checkpoint the ledger joins scr_report_unhandled_rejections through - * the hook registered at boot: the FIRST never-observed rejection prints - * in the static runtime's exact voice ("Unhandled promise rejection: - * ", stderr, exit 1 — an Error reason renders "name: - * message" through its toString, same as the static ledger). Retaining - * the promise value keeps its identity stable for the rescission (the - * engine cannot recycle the object while the ledger holds it). */ -typedef struct IslRejection { - JSValue promise; /* owned; identity for the rescission */ - JSValue reason; /* owned */ - struct IslRejection *next; -} IslRejection; - -static IslRejection *isl_rejections = NULL; /* insertion order (append) */ -static IslRejection **isl_rejections_tail = &isl_rejections; - -static void isl_rejection_free(IslRejection *r) { - JS_FreeValue(isl_ctx, r->promise); - JS_FreeValue(isl_ctx, r->reason); - free(r); -} - -static void isl_rejections_drop_reason(JSValueConst reason); - -static void isl_rejection_tracker(JSContext *ctx, JSValueConst promise, - JSValueConst reason, bool is_handled, - void *opaque) { - (void)ctx; - (void)opaque; - (void)promise; - if (is_handled) { - /* The rescission drops the handled promise's entry AND its same-reason - * twins: a failing module loaded by an engine-internal dynamic import() - * leaves the INTERMEDIATE per-module promises rejected-and-unhandled - * (only the returned top promise gets the caller's handler, but every - * promise in the load carries the same reason object) — Node reports a - * handled import() rejection zero times, and the importDyn boundary - * already drops by reason for exactly this shape. */ - isl_rejections_drop_reason(reason); - return; - } - /* The WebAssembly stub's rejections never ledger: real wasm SUCCEEDS - * unobserved, so a never-awaited compile/instantiate chain must stay - * silent at teardown (es-module-lexer's top-level `init` chain) — the - * marker rides the reason object through derived promises, and an - * awaited stub still rejects into its awaiter untouched. */ - if (JS_IsObject(reason)) { - JSValue marker = JS_GetPropertyStr(ctx, reason, "__scr_wasm_stub"); - bool is_stub = JS_ToBool(ctx, marker) > 0; - JS_FreeValue(ctx, marker); - if (is_stub) return; - } - IslRejection *r = malloc(sizeof *r); - if (!r) { - fprintf(stderr, "scriptc: out of memory\n"); - abort(); - } - r->promise = JS_DupValue(ctx, promise); - r->reason = JS_DupValue(ctx, reason); - r->next = NULL; - *isl_rejections_tail = r; - isl_rejections_tail = &r->next; -} - -/* The report hook (scr_async.c calls it inside - * scr_report_unhandled_rejections): print the first survivor when the - * static ledger was silent, free the whole ledger either way. */ -static bool isl_report_rejections(bool print) { - if (isl_rejections == NULL) return false; - if (print) { - fflush(stdout); - fputs("Unhandled promise rejection: ", stderr); - const char *msg = JS_ToCString(isl_ctx, isl_rejections->reason); - if (msg) { - fputs(msg, stderr); - JS_FreeCString(isl_ctx, msg); - } else { - /* String(reason) itself threw (a symbol): clear it, keep the same - * fallback the static printer uses for unrenderable payloads. */ - JSValue second = JS_GetException(isl_ctx); - JS_FreeValue(isl_ctx, second); - fputs("[object]", stderr); - } - fputc('\n', stderr); - } - while (isl_rejections) { - IslRejection *r = isl_rejections; - isl_rejections = r->next; - isl_rejection_free(r); - } - isl_rejections_tail = &isl_rejections; - return true; -} - -/* Prelude helper closures (one per SCR_JSOP_* plus the unary/indexing - * helpers and the promise-bridge subscription), pinned at init so - * operations on `any` values are JS_Call invocations of real JS operators - * — coercion semantics (ToPrimitive, NaN, string +) come from the engine, - * never from C reimplementations. ISL_H_THEN subscribes the island → - * static promise bridge: Promise.resolve first, so thenables and plain - * values behave exactly like `await` would treat them. */ -enum { - ISL_H_NEG = SCR_JSOP_COUNT, - ISL_H_PLUS, - ISL_H_TYPEOF, - ISL_H_GETIDX, - ISL_H_SETIDX, - ISL_H_THEN, - ISL_H_DESTRCHECK, - ISL_H_ITERN, - ISL_H_ITER, - ISL_H_CALLSPREAD, - ISL_H_OBJWALK, - ISL_H_HASOWN, - ISL_H_ASSIGN, - ISL_H_ITERDRAIN, - ISL_H_COUNT, -}; - -static JSValue isl_helpers[ISL_H_COUNT]; - -/* ISL_H_DESTRCHECK / ISL_H_ITERN are the destructuring guards: the check - * throws V8's EXACT RequireObjectCoercible TypeError text ("Cannot - * destructure 'a' as it is undefined.", the property form when the - * pattern's first property is passed) and passes the value through; - * iterN is GetIterator + the pattern's width as an array (V8's exact - * not-iterable text), spec-shaped: done padding, IteratorClose when the - * iterator is not exhausted. Both run IN the engine, so iterator - * protocols, Proxies, and number formatting are the engine's own. */ -static const char isl_prelude[] = - "[(a,b)=>a+b,(a,b)=>a-b,(a,b)=>a*b,(a,b)=>a/b,(a,b)=>a%b,(a,b)=>a**b," - "(a,b)=>aa<=b,(a,b)=>a>b,(a,b)=>a>=b,(a,b)=>a===b,(a,b)=>a!==b," - "a=>-a,a=>+a,a=>typeof a,(o,k)=>o[k],(o,k,v)=>{o[k]=v}," - "(p,f,r)=>{Promise.resolve(p).then(f,r)}," - "(v,s,p)=>{if(v===undefined||v===null){const k=v===undefined?\"undefined\":\"null\";" - "throw new TypeError(p===undefined?\"Cannot destructure '\"+s+\"' as it is \"+k+\".\"" - ":\"Cannot destructure property '\"+p+\"' of '\"+s+\"' as it is \"+k+\".\")}return v}," - "(v,n)=>{if(v===undefined||v===null||typeof v[Symbol.iterator]!==\"function\"){" - "let d;if(v===undefined)d=\"undefined\";else if(v===null)d=\"object null\";" - "else if(typeof v===\"number\")d=\"number \"+v;else if(typeof v===\"boolean\")d=\"boolean \"+v;" - "else if(typeof v===\"function\")d=\"function\";else d=\"object\";" - "throw new TypeError(d+\" is not iterable (cannot read property Symbol(Symbol.iterator))\")}" - "const o=[];const it=v[Symbol.iterator]();let dn=false;" - "for(let i=0;i{const m=v==null?undefined:v[Symbol.iterator];" - "if(a&&m==null)return Array.from(v)[Symbol.iterator]();" - "if(typeof m!==\"function\"){if(s)throw new TypeError(s);" - "let d;if(v===undefined)d=\"undefined\";else if(v===null)d=\"object null\";" - "else if(typeof v===\"number\")d=\"number \"+v;else if(typeof v===\"boolean\")d=\"boolean \"+v;" - "else if(typeof v===\"function\")d=\"function\";else d=\"object\";" - "throw new TypeError(d+\" is not iterable (cannot read property Symbol(Symbol.iterator))\")}" - "return m.call(v)}," - /* ISL_H_CALLSPREAD: spread application (`f(...pre, ...s)` — the - * rest-forwarding idiom's call): REAL spread syntax, so iterator - * protocols are the engine's own; the guards front-run V8's exact - * spread-call TypeError texts (nullish spells the spread expression - * `w`, everything else the generic Spread-syntax text). */ - "(f,p,s,w)=>{if(s===undefined||s===null)" - "throw new TypeError(w+\" is not iterable (cannot read property \"+s+\")\");" - "if(typeof s[Symbol.iterator]!==\"function\")" - "throw new TypeError(\"Spread syntax requires ...iterable[Symbol.iterator] to be a function\");" - "return f(...p,...s)}," - /* ISL_H_OBJWALK / ISL_H_HASOWN / ISL_H_ASSIGN: the Object statics a - * wrapped (SCR_DYN_JSVAL) receiver routes here — the engine's own - * semantics (own-key order, getters running, ToObject refusals). */ - "(o,m)=>m===0?Object.keys(o):m===1?Object.values(o):Object.entries(o)," - "(o,k)=>Object.hasOwn(o,k)," - "(t,s)=>Object.assign(t,s)," - /* ISL_H_ITERDRAIN: the ENGINE's own iterator protocol drained into a - * fresh array (for-of/destructuring/spread over a wrapped value — - * generators, Maps, Sets, Symbol.iterator implementations all step - * exactly as Node runs them). The guard front-runs the not-iterable - * TypeError in the CALLER's wording: m=1 is V8's spread-call text, - * s (when defined) the compile-time source spelling verbatim, else - * the kind wording (iterN's). */ - "(v,m,s)=>{if(v===undefined||v===null||typeof v[Symbol.iterator]!==\"function\"){" - "if(m===1)throw new TypeError(\"Spread syntax requires ...iterable[Symbol.iterator] to be a function\");" - "if(s!==undefined)throw new TypeError(s);" - "let d;if(v===undefined)d=\"undefined\";else if(v===null)d=\"object null\";" - "else if(typeof v===\"number\")d=\"number \"+v;else if(typeof v===\"boolean\")d=\"boolean \"+v;" - "else if(typeof v===\"function\")d=\"function\";else d=\"object\";" - "throw new TypeError(d+\" is not iterable (cannot read property Symbol(Symbol.iterator))\")}" - "const o=[];for(const x of v)o.push(x);return o}]"; - -static void isl_free_boot(void); -static void isl_prom_wraps_teardown(void); -static void isl_cells_teardown(void); - -static void isl_teardown_at_exit(void) { - if (!isl_rt) return; - /* Promise-bridge wraps whose scriptc promise never settled still hold - * the capability's settle functions (their waiter fibers are abandoned - * — never unwound): freed like the fetch transfers below so the - * counting allocator returns to zero. */ - isl_prom_wraps_teardown(); - /* Transfers still live at exit hold engine values (callback objects): - * the fetch bridge frees them first so the counting allocator returns - * to zero. */ - if (isl_fetch_teardown) isl_fetch_teardown(); - /* In-flight island http exchanges hold engine callback objects too — - * the net bridge frees them the same way. */ - if (isl_netmod_teardown) isl_netmod_teardown(); - /* Unfired island timers (an AbortSignal.timeout that never mattered) - * hold engine callbacks: freed like the fetch transfers above. */ - scr_island_timers_teardown(); - /* Armed static-heap timers may hold engine callbacks too (the island's - * setTimeout/setInterval bridge): the loop only exits with entries - * still armed on the uncaught/unhandled paths — release them before - * the engine dies so the audit stays zero. */ - scr_timers_teardown(); - /* A ledger the report never consumed (an exit path that skips it) still - * holds engine values: free them before the runtime goes down so the - * counting allocator returns to zero. */ - while (isl_rejections) { - IslRejection *r = isl_rejections; - isl_rejections = r->next; - isl_rejection_free(r); - } - isl_rejections_tail = &isl_rejections; - /* Cells nothing will ever release (abandoned fibers' frames — a fiber - * parked forever on a bridged package promise holds cells) still own - * engine values: free the values (cells stay; a later release frees - * only the block) so the runtime and the counting allocator go down - * clean. LAST among the value-freeing steps — the ones above may - * release cells, which unlinks them from this registry. */ - isl_cells_teardown(); - for (int i = 0; i < ISL_H_COUNT; i++) JS_FreeValue(isl_ctx, isl_helpers[i]); - isl_free_boot(); - JS_FreeContext(isl_ctx); - JS_FreeRuntime(isl_rt); - isl_ctx = NULL; - isl_rt = NULL; - /* Inflated embedded sources (libc-heap, not engine allocations — the - * audit never sees them): freed so a torn-down island leaves nothing. */ - if (isl_text_cache) { - for (size_t i = 0; i < isl_nmods * 2; i++) free(isl_text_cache[i]); - free(isl_text_cache); - isl_text_cache = NULL; - } -#ifdef SCR_RC_AUDIT - if (isl_live_allocs != 0) { - fflush(stdout); - fprintf(stderr, - "scriptc ISLAND AUDIT FAILED: %ld engine allocation(s) live " - "after teardown\n", - isl_live_allocs); - _Exit(99); - } -#endif -} - -static void isl_init(void) { - isl_rt = JS_NewRuntime2(&isl_mf, NULL); - if (!isl_rt) { - fprintf(stderr, "scriptc: island engine runtime allocation failed\n"); - abort(); - } - JS_SetMaxStackSize(isl_rt, ISL_STACK_BUDGET); - isl_ctx = JS_NewContext(isl_rt); - if (!isl_ctx) { - fprintf(stderr, "scriptc: island engine context allocation failed\n"); - abort(); - } - isl_init_type_brands(); - JSValue arr = JS_Eval(isl_ctx, isl_prelude, sizeof isl_prelude - 1, - "", JS_EVAL_TYPE_GLOBAL); - if (JS_IsException(arr)) { - fprintf(stderr, "scriptc: island prelude failed to evaluate\n"); - abort(); - } - for (uint32_t i = 0; i < ISL_H_COUNT; i++) { - isl_helpers[i] = JS_GetPropertyUint32(isl_ctx, arr, i); /* owned */ - } - JS_FreeValue(isl_ctx, arr); - /* Web-platform globals (scr_web.c): BEFORE the module system boots — - * embedded module evaluation may subclass TransformStream (eventsource- - * parser does, at eval time). The fetch glue (installed by main in - * fetch-using builds) boots right after: it builds on those globals. */ - scr_island_web_boot(isl_ctx); - if (isl_fetch_boot) isl_fetch_boot(isl_ctx); - /* The loop's io hook: engine promise jobs (and, in fetch-linked builds, - * live transfers) drain at loop quiescence — island async chains - * progress exactly where Node runs its microtasks. */ - scr_loop_set_io(isl_io_pending, isl_io_poll); - /* Unhandled island rejections: tracked as they happen (and rescinded - * when handled later), reported at the same completed microtask - * checkpoint as the static promise ledger — one voice, exit 1, like - * Node. The report hook drains engine jobs first so a same-checkpoint - * handler attachment gets its chance to rescind. */ - JS_SetHostPromiseRejectionTracker(isl_rt, isl_rejection_tracker, NULL); - scr_loop_set_island_rejections(isl_report_rejections, - scr_island_drain_jobs); - /* Armed island timers (AbortSignal.timeout) cap the loop's idle sleep - * so they fire on time while the poller waits on socket readiness — - * without keeping the loop alive by themselves (Node's unref'd timer). - * The curl fetch bridge capped its own poll instead; the native bridge - * has no poll of its own, so the loop must know the deadline. */ - scr_loop_set_island_deadline(&scr_island_timers_deadline); - /* Module system: the loader callbacks are always installed (inert - * without registered tables); the bootstrap (require shim, builtin - * shims, the process bridge) evaluates only for npm-importing programs - * — main registered their tables before any island entry. */ - isl_install_module_loader(); - /* Host-function class (closures entering the island): registered - * eagerly — the id must exist before any from_closure call. */ - isl_register_hostfn_class(); - /* LIFO: registered after scr_init's handlers, so teardown runs before - * the cycle collection + RC audit — the audit sees the engine gone. */ - scr_atexit(isl_teardown_at_exit); -} - -/* Nesting depth of host-function callbacks (scriptc closures invoked BY - * the engine): while inside one, island entries from the SAME stack must - * NOT re-anchor the stack top or resize the budget — moving them - * mid-execution would misplace the engine's overflow check for the frames - * still live above the callback. Entries from a DIFFERENT stack (an async - * callback's eagerly-run fiber, or the promise-bridge waiter fiber) must - * re-anchor — the engine has no frames on that stack, and checking its - * stack pointers against the host stack's anchor is meaningless. The - * host-call wrapper re-anchors to its own stack when the callback - * returns (isl_hostfn_invoke). */ -static int isl_host_depth = 0; - -/* The engine's stack budget is sized PER STACK: entries from an async - * fiber keep the tight fiber budget (ISL_STACK_BUDGET — half the fiber), - * while entries from the MAIN stack get real headroom — the process main - * stack is 8MB, and embedded npm package code (a commander parse) chains - * enough engine frames to blow the fiber-sized budget, especially under - * ASan's inflated frames. */ -/* Under ASan a single engine call costs 64–96KB of C stack, and a real - * package graph (the AI SDK's generateText: zod parses inside promise - * chains inside commander actions) chains enough frames to exhaust 4MB — - * "Maximum call stack size exceeded" mid-workflow. The process main stack - * is 8MB: budget 6MB under ASan and keep the remaining 2MB (≈ twenty - * ASan frames) as the excursion margin past the engine's last check. */ -#if defined(__SANITIZE_ADDRESS__) -#define ISL_MAIN_STACK_BUDGET (6 * 1024 * 1024) -#elif defined(__has_feature) && __has_feature(address_sanitizer) -#define ISL_MAIN_STACK_BUDGET (6 * 1024 * 1024) -#else -#define ISL_MAIN_STACK_BUDGET (4 * 1024 * 1024) -#endif -static int isl_budget_is_fiber = -1; /* tri-state: unset/main/fiber */ - -/* Which stack the engine's overflow check is anchored to: the fiber's - * identity, NULL for the main stack, or the initial sentinel. `strayed` - * flags an anchor moved by a nested stack while a host call was live — - * the wrapper restores on its way out. */ -static void *isl_anchor_fiber = (void *)&isl_anchor_fiber; -static bool isl_anchor_strayed = false; - -/* Anchor the overflow check to the CURRENT stack and size the budget for - * it (fibers tight, main roomy). */ -static void isl_anchor_here(void) { - JS_UpdateStackTop(isl_rt); - isl_anchor_fiber = scr_fiber_self(); - int fiber = isl_anchor_fiber != NULL; - if (fiber != isl_budget_is_fiber) { - JS_SetMaxStackSize(isl_rt, fiber ? ISL_STACK_BUDGET : ISL_MAIN_STACK_BUDGET); - isl_budget_is_fiber = fiber; - } -} - -/* EVERY island entry funnels through here: lazy init, then re-anchor the - * stack-overflow check to the CURRENT stack (main or any fiber) and size - * the budget for it — except while the engine itself is calling back - * into static code ON THIS STACK. */ -static void isl_entry(void) { - if (!isl_rt) isl_init(); - if (isl_host_depth > 0) { - if (scr_fiber_self() == isl_anchor_fiber) return; - isl_anchor_strayed = true; - } - isl_anchor_here(); -} - -/* The libregexp opaque for scr_regex.c in --dynamic builds. Static regexes - * and the island share ONE libregexp: the archive's copy, whose host hooks - * (quickjs.c's lre_realloc & co.) interpret the opaque as a JSContext — - * scr_regex.c defining its own hooks would be a duplicate symbol. So a - * regex-using --dynamic program routes regex compilation/execution through - * the island's context, booting the engine lazily on first regex use. */ -void *scr_island_lre_opaque(void) { - isl_entry(); - return isl_ctx; -} - -/* Units entering the engine from loop dispatch stations (the fetch - * bridge's net callbacks fire from scr_net's dispatch, not through an - * emitted island op) re-anchor through here — the every-entry rule. */ -void scr_island_host_enter(void) { isl_entry(); } - -/* ── the loop's io hook (engine jobs at quiescence) ─────────────────── - * Island promise jobs (a .then chain inside embedded package code) have no - * fiber to park: the loop treats a non-empty engine job queue as pending - * work and drains it between turns — the island's microtask checkpoint, - * placed exactly where Node runs its own. Executed on the main stack; - * isl_entry re-anchors the engine's overflow check first. */ - -int scr_island_drain_jobs(void) { - if (!isl_rt) return 0; - isl_entry(); - int n = 0; - for (;;) { - JSContext *jctx; - int r = JS_ExecutePendingJob(isl_rt, &jctx); - if (r == 0) break; - if (r < 0) { - /* A job the engine itself could not complete (promise reaction - * throws reject their derived promise instead of landing here). - * Node dies on an uncaught microtask exception; match it. */ - JSValue exc = JS_GetException(jctx); - const char *msg = JS_ToCString(jctx, exc); - fflush(stdout); - fprintf(stderr, "Uncaught %s\n", msg ? msg : "island job exception"); - if (msg) JS_FreeCString(jctx, msg); - JS_FreeValue(jctx, exc); - _Exit(1); - } - n++; - } - return n; -} - -static bool isl_io_pending(void) { - if (isl_rt != NULL && JS_IsJobPending(isl_rt)) return true; - /* A DUE island timer is pending work (fire it this turn); a merely - * ARMED one is not — AbortSignal.timeout is unref'd like Node's and - * must never keep the loop alive by itself. */ - if (isl_rt != NULL && scr_island_timers_due()) return true; - return isl_fetch_pending != NULL && isl_fetch_pending(); -} - -static void isl_io_poll(double max_wait_ms) { - /* Jobs first (they may start or settle transfers), then due island - * timers (an AbortSignal.timeout firing aborts transfers and settles - * promises — drain what it resolved), then the transfer poll — which - * SLEEPS on curl's fds up to the loop's deadline CAPPED at the earliest - * armed timer (a fetch timeout must fire on time mid-transfer), unless - * this turn already made progress — then the jobs the arrived data (or - * a timeout that elapsed during the sleep) resolved. */ - int ran = scr_island_drain_jobs(); - if (scr_island_timers_fire_due()) { - ran += 1 + scr_island_drain_jobs(); - } - if (isl_fetch_pending != NULL && isl_fetch_pending()) { - double wait = ran > 0 ? 0 : max_wait_ms; - double until = scr_island_timers_deadline() - scr_now_ms(); /* inf when none */ - if (until < 0) until = 0; - if (until < wait) wait = until; - isl_fetch_poll(wait); - scr_island_drain_jobs(); - if (scr_island_timers_fire_due()) scr_island_drain_jobs(); - } -} - -/* ── exception bridging ─────────────────────────────────────────────── - * Engine exception → catchable scriptc value through the pending cell - * (scr_exception.c), so static try/catch works across the boundary. - * Engine ERROR instances cross as real ScrError objects (name/message - * extracted; the builtin vtable is picked by name, so `e instanceof - * TypeError` narrows engine TypeErrors and custom names ride an - * Error-rooted instance) — the uncaught line ("Uncaught TypeError: boom") - * is byte-identical to the old String(e) form because toString rebuilds - * exactly that shape. Non-Error throws keep the String(v) string payload. */ - -/* String(obj.prop) with a FALLBACK instead of recursion: a throwing getter - * or unrepresentable value must not re-enter the bridge. Returns +1. */ -static ScrStr *isl_prop_str(JSValueConst obj, const char *prop, const char *fallback) { - JSValue v = JS_GetPropertyStr(isl_ctx, obj, prop); - if (JS_IsException(v)) { - JSValue second = JS_GetException(isl_ctx); - JS_FreeValue(isl_ctx, second); - return scr_str_new(fallback, strlen(fallback)); - } - size_t len; - const char *cs = JS_ToCStringLen(isl_ctx, &len, v); - JS_FreeValue(isl_ctx, v); - if (!cs) { - JSValue second = JS_GetException(isl_ctx); - JS_FreeValue(isl_ctx, second); - return scr_str_new(fallback, strlen(fallback)); - } - ScrStr *s = scr_str_new(cs, len); - JS_FreeCString(isl_ctx, cs); - return s; -} - -/* Engine VALUE → pending scriptc exception. Borrows `exc`. The one - * conversion both bridge directions' reasons ride: thrown engine - * exceptions (below) and rejected engine promises crossing through the - * promise bridge (isl_bridge_settle). */ -static void isl_throw_reason(JSValueConst exc) { - if (JS_IsError(exc)) { - scr_throw_error_named(isl_prop_str(exc, "name", "Error"), - isl_prop_str(exc, "message", "")); - return; - } - size_t len; - const char *msg = JS_ToCStringLen(isl_ctx, &len, exc); - if (msg) { - scr_throw_str(scr_str_new(msg, len)); - JS_FreeCString(isl_ctx, msg); - } else { - /* ToString itself threw (e.g. a symbol): clear that too, keep a - * deterministic message. */ - JSValue second = JS_GetException(isl_ctx); - JS_FreeValue(isl_ctx, second); - const char msg2[] = "Error: unrepresentable island exception"; - scr_throw_str(scr_str_new(msg2, sizeof msg2 - 1)); - } -} - -static void isl_bridge_exception(void) { - JSValue exc = JS_GetException(isl_ctx); /* owned; clears engine pending */ - isl_throw_reason(exc); - JS_FreeValue(isl_ctx, exc); -} - -/* Exported for the island timer bridge (scr_web.c): a throwing engine - * timer callback becomes the pending scriptc exception, so the loop's - * uncaught path reports it exactly like a static timer callback's throw. */ -void scr_island_bridge_exception(void) { isl_bridge_exception(); } - -/* ── marshal helpers ────────────────────────────────────────────────── - * The out-of-engine direction of the value boundary, with the engine's - * ownership rules folded in — shared by scr_island_eval and the jsval - * operation surface below. */ - -/* Engine value → f64 (ToNumber). Borrows v. False = the conversion threw; - * the exception is already bridged into the scriptc pending cell. */ -static bool isl_js_to_f64(JSValueConst v, double *out) { - if (JS_ToFloat64(isl_ctx, out, v)) { - isl_bridge_exception(); - return false; - } - return true; -} - -/* Engine value → bool (ToBoolean; never throws). Borrows v. */ -static bool isl_js_to_bool(JSValueConst v) { return JS_ToBool(isl_ctx, v) > 0; } - -/* Engine value → ScrStr via String(v), UTF-8 out. Borrows v. Returns +1, - * or NULL after bridging the exception ToString raised (symbols). */ -static ScrStr *isl_js_to_str(JSValueConst v) { - size_t len; - const char *cs = JS_ToCStringLen(isl_ctx, &len, v); - if (!cs) { - isl_bridge_exception(); - return NULL; - } - ScrStr *s = scr_str_new(cs, len); - JS_FreeCString(isl_ctx, cs); - return s; -} - -/* ── eval (the __island_eval intrinsic) ─────────────────────────────── - * Evaluate UTF-8 source in the island's global scope and return - * String(result) as a scriptc string (+1). Borrows code. On an island - * exception: bridges it (catchable via the pending cell) and returns NULL — - * callers are compiler-emitted pending checks, like the fs.* surface. */ -ScrStr *scr_island_eval(ScrStr *code) { - isl_entry(); - JSValue r = JS_Eval(isl_ctx, code->data, code->len, "", - JS_EVAL_TYPE_GLOBAL); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - ScrStr *s; - if (JS_IsNumber(r)) { - /* Through the f64 marshal + the runtime's JS-exact formatter, keeping - * number rendering identical to the static world's String(). */ - double d; - if (!isl_js_to_f64(r, &d)) { - JS_FreeValue(isl_ctx, r); - return NULL; - } - s = scr_f64_to_scrstr(d); - } else if (JS_IsBool(r)) { - s = scr_bool_to_scrstr(isl_js_to_bool(r)); - } else { - s = isl_js_to_str(r); /* NULL = bridged (e.g. a symbol result) */ - } - JS_FreeValue(isl_ctx, r); - return s; -} - -/* ── ScrJsval: the refcounted cell behind the `any` static type ─────── - * Owns exactly one engine value. Not cycle-collector-traced: its internal - * references live in the engine's GC world (cross-boundary cycles are the - * documented uncollectable case). After engine teardown a release frees - * only the cell — the engine already freed every value it owned, so the - * counting allocator stays exact and nothing dangles. - * - * Live cells thread a registry (isl_cells) so teardown can free the - * engine value of every cell nothing will ever release — an ABANDONED - * fiber's frame holds cells (a fiber parked forever on a bridged package - * promise holds at least the promise's own cell), and its stack is - * deliberately not unwound. Without the walk those engine values leak - * past JS_FreeRuntime, which the debug engine asserts on. */ - -struct ScrJsval { - size_t rc; - JSValue v; - struct ScrJsval *cells_prev, *cells_next; -}; - -static ScrJsval *isl_cells = NULL; - -static void isl_cell_unlink(ScrJsval *c) { - if (c->cells_prev) c->cells_prev->cells_next = c->cells_next; - else if (isl_cells == c) isl_cells = c->cells_next; - if (c->cells_next) c->cells_next->cells_prev = c->cells_prev; - c->cells_prev = c->cells_next = NULL; -} - -/* Teardown half: free the engine value of every still-live cell. Pop from - * the head each time — freeing a value can cascade (an engine finalizer - * releasing a closure whose captures hold OTHER cells), and the cascade - * unlinks from this same list. The popped cell's value is cleared BEFORE - * the free, so a cascade releasing the cell itself (or a later post- - * teardown release) frees only the malloc block. */ -static void isl_cells_teardown(void) { - while (isl_cells) { - ScrJsval *c = isl_cells; - isl_cell_unlink(c); - JSValue v = c->v; - c->v = JS_UNDEFINED; - JS_FreeValue(isl_ctx, v); - } -} - -#ifdef SCR_RC_AUDIT -static long isl_live_jsvals = 0; -long scr_jsval_live_count(void) { return isl_live_jsvals; } -#endif - -/* Fresh cell taking ownership of an engine value (+1 cell out). */ -static ScrJsval *isl_cell_new(JSValue v) { - ScrJsval *c = malloc(sizeof *c); - if (!c) { - fprintf(stderr, "scriptc: out of memory\n"); - abort(); - } - c->rc = 1; - c->v = v; - c->cells_prev = NULL; - c->cells_next = isl_cells; - if (isl_cells) isl_cells->cells_prev = c; - isl_cells = c; -#ifdef SCR_RC_AUDIT - isl_live_jsvals++; -#endif - return c; -} - -ScrJsval *scr_jsval_retain(ScrJsval *v) { - if (v) v->rc++; - return v; -} - -void scr_jsval_release(ScrJsval *v) { - if (!v) return; - if (--v->rc == 0) { - if (isl_rt) { - isl_cell_unlink(v); - JS_FreeValue(isl_ctx, v->v); - } - /* Post-teardown: the registry walk already freed the value (and - * cleared the links) — only the cell block remains. */ -#ifdef SCR_RC_AUDIT - isl_live_jsvals--; -#endif - free(v); - } -} - -void *scr_jsval_retain_v(void *v) { return scr_jsval_retain(v); } -void scr_jsval_release_v(void *v) { scr_jsval_release(v); } - -/* ── marshal in ─────────────────────────────────────────────────────── */ - -ScrJsval *scr_jsval_from_f64(double v) { - isl_entry(); - return isl_cell_new(JS_NewFloat64(isl_ctx, v)); -} - -ScrJsval *scr_jsval_from_bool(bool v) { - isl_entry(); - return isl_cell_new(JS_NewBool(isl_ctx, v)); -} - -ScrJsval *scr_jsval_from_str(const ScrStr *s) { - isl_entry(); - return isl_cell_new(JS_NewStringLen(isl_ctx, s->data, s->len)); -} - -/* The composite entry path: text from the emitted type-directed JSON - * serializers, parsed by the engine — a deep copy into the island. The - * input is machine-produced valid JSON, so a parse failure is an - * engine-level surprise; bridge it like any exception rather than trust. */ -ScrJsval *scr_jsval_from_json(const ScrStr *json) { - isl_entry(); - JSValue v = JS_ParseJSON(isl_ctx, json->data, json->len, ""); - if (JS_IsException(v)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(v); -} - -/* ── marshal in: a CHECKED-DYNAMIC (dyn) value ──────────────────────── - * `unknown` flowing into 'any'-typed code (`const cfg = isJson ? - * JSON.parse(text) : islandParser(text)`): the dyn tree rebuilds as - * engine values — a DEEP COPY, the jsMarshal aliasing stance. Data kinds - * only: a dyn carrying a boxed function, a native handle, or a promise - * throws the catchable TypeError naming the kind (the box's thunk calls - * STATIC code the engine cannot re-enter through a data copy). */ -static const char *isl_dyn_unmarshalable(const ScrDyn *d) { - switch (d->kind) { - /* SCR_DYN_FUNC is NOT here: a boxed function crosses as the generic - * host-function shim (isl_dynfn_new below) — the routed-call lane's - * uniform argument conversion. */ - case SCR_DYN_HANDLE: - return "a runtime handle"; - case SCR_DYN_PROMISE: - return "a promise"; - case SCR_DYN_PROXY: - return "a native Proxy"; - case SCR_DYN_TYPED_REF: { - ScrDyn *view = scr_dyn_typed_ref_materialize(d); - const char *result = isl_dyn_unmarshalable(view); - scr_dyn_release(view); - return result; - } - case SCR_DYN_ARR: - for (size_t i = 0; i < d->v.arr.len; i++) { - const char *r = isl_dyn_unmarshalable(d->v.arr.items[i]); - if (r != NULL) return r; - } - return NULL; - case SCR_DYN_OBJ: - for (size_t i = 0; i < d->v.obj.len; i++) { - const char *r = isl_dyn_unmarshalable(d->v.obj.entries[i].value); - if (r != NULL) return r; - } - return NULL; - default: - return NULL; - } -} - -static JSValue isl_dynfn_new(const ScrDyn *d); /* the checked-dynamic tree-function shim, below */ - -static JSValue isl_from_bytes(const ScrBytes *b) { - if (b->elem == SCR_BYTES_U8) return JS_NewUint8ArrayCopy(isl_ctx, b->data, b->len); - JSValue buf = JS_NewArrayBufferCopy(isl_ctx, b->data, b->len * scr_bytes_elem_size(b->elem)); - if (JS_IsException(buf)) return buf; - JSValueConst argv[3] = {buf, JS_UNDEFINED, JS_UNDEFINED}; - JSValue v = JS_NewTypedArray(isl_ctx, 3, argv, - b->elem == SCR_BYTES_U8C ? JS_TYPED_ARRAY_UINT8C - : b->elem == SCR_BYTES_I8 ? JS_TYPED_ARRAY_INT8 - : b->elem == SCR_BYTES_U16 ? JS_TYPED_ARRAY_UINT16 - : b->elem == SCR_BYTES_I16 ? JS_TYPED_ARRAY_INT16 - : b->elem == SCR_BYTES_U32 ? JS_TYPED_ARRAY_UINT32 - : b->elem == SCR_BYTES_I32 ? JS_TYPED_ARRAY_INT32 - : b->elem == SCR_BYTES_F64 ? JS_TYPED_ARRAY_FLOAT64 : JS_TYPED_ARRAY_FLOAT32); - JS_FreeValue(isl_ctx, buf); - return v; -} - -static JSValue isl_from_dyn(const ScrDyn *d) { - switch (d->kind) { - case SCR_DYN_TYPED_REF: { - ScrDyn *view = scr_dyn_typed_ref_materialize(d); - JSValue result = isl_from_dyn(view); - scr_dyn_release(view); - return result; - } - case SCR_DYN_FUNC: - /* A boxed dyn function enters as ONE generic host-function shim over - * its uniform call thunk (ScrDynThunk): engine args wrap as dyn - * values, the thunk runs, the dyn result converts back. Each - * crossing mints a fresh engine function (documented). */ - return isl_dynfn_new(d); - case SCR_DYN_UNDEF: - return JS_UNDEFINED; - case SCR_DYN_NULL: - return JS_NULL; - case SCR_DYN_BOOL: - return JS_NewBool(isl_ctx, d->v.b); - case SCR_DYN_BIGINT: - return JS_ThrowTypeError(isl_ctx, "native bigint values cannot enter a dynamic island yet"); - case SCR_DYN_SYMBOL: - return JS_ThrowTypeError(isl_ctx, "native symbol values cannot enter a dynamic island yet"); - case SCR_DYN_NUM: - return JS_NewFloat64(isl_ctx, d->v.num); - case SCR_DYN_STR: - return JS_NewStringLen(isl_ctx, d->v.str->data, d->v.str->len); - case SCR_DYN_BYTES: - return isl_from_bytes(d->v.bytes); - case SCR_DYN_ARR: { - JSValue arr = JS_NewArray(isl_ctx); - if (JS_IsException(arr)) return arr; - for (size_t i = 0; i < d->v.arr.len; i++) { - JSValue item = isl_from_dyn(d->v.arr.items[i]); - if (JS_IsException(item) || - JS_SetPropertyUint32(isl_ctx, arr, (uint32_t)i, item) < 0) { - JS_FreeValue(isl_ctx, arr); - return JS_EXCEPTION; - } - } - return arr; - } - case SCR_DYN_OBJ: { - JSValue obj = JS_NewObject(isl_ctx); - if (JS_IsException(obj)) return obj; - for (size_t i = 0; i < d->v.obj.len; i++) { - const ScrDynEntry *ent = &d->v.obj.entries[i]; - JSValue val = isl_from_dyn(ent->value); - if (JS_IsException(val) || - JS_SetPropertyStr(isl_ctx, obj, ent->key, val) < 0) { - JS_FreeValue(isl_ctx, obj); - return JS_EXCEPTION; - } - } - return obj; - } - case SCR_DYN_JSVAL: - /* An engine value riding inside dyn data: embed the SAME engine - * value by reference — the identity round trip, member position. */ - return JS_DupValue(isl_ctx, d->v.jsval.cell->v); - default: - /* Pre-scanned away — defensive. */ - return JS_ThrowTypeError(isl_ctx, "unmarshalable dynamic value"); - } -} - -ScrJsval *scr_jsval_from_dyn(const ScrDyn *d) { - /* The identity round trip: an engine value that crossed into the checked-dynamic tree - * (scr_dyn_from_jsval) and back is the SAME engine value, by reference - * — the one direction that used to throw (SEMANTICS.md supersedes the - * "one unbridgeable mix"). */ - if (d->kind == SCR_DYN_JSVAL) return scr_jsval_retain(d->v.jsval.cell); - isl_entry(); - const char *bad = isl_dyn_unmarshalable(d); - if (bad != NULL) { - char msg[128]; - int len = snprintf(msg, sizeof msg, - "an 'unknown' value holding %s cannot enter dynamically-executed code", bad); - scr_throw_error_msg(SCR_ERR_TYPE, msg, (size_t)len); - return NULL; - } - JSValue v = isl_from_dyn(d); - if (JS_IsException(v)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(v); -} - -/* ── the jsval→dyn crossing (SCR_DYN_JSVAL's constructor + ops) ─────── - * The reverse direction: an 'any'-typed engine value flowing into an - * 'unknown'/'object'/JS-residue slot wraps BY REFERENCE as the checked-dynamic tree's - * island kind. The dyn core (scr_json.c) stays island-free — it routes - * the armed operations (typeof/truthy/String()/===, the narrowing - * tests) through these installed ops; everything un-armed there keeps - * the loud "not supported yet" ladder. */ - -static void isl_dynjs_release(ScrJsval *cell) { scr_jsval_release(cell); } -static ScrStr *isl_dynjs_typeof(ScrJsval *cell) { return scr_jsval_typeof(cell); } -static bool isl_dynjs_truthy(ScrJsval *cell) { return scr_jsval_truthy(cell) != 0; } -static ScrStr *isl_dynjs_to_str(ScrJsval *cell) { return scr_jsval_to_str(cell); } -static bool isl_dynjs_strict_eq(ScrJsval *a, ScrJsval *b) { - /* The engine's === through the pinned helper (a bridged surprise - * answers false — strict equality itself cannot throw in JS). */ - return scr_jsval_cmp(SCR_JSOP_EQ, a, b) == 1; -} -static bool isl_dynjs_is_array(ScrJsval *cell) { return JS_IsArray(cell->v); } -static bool isl_dynjs_is_error(ScrJsval *cell) { return JS_IsError(cell->v); } - -/* Cache engine class IDs from pristine builtins before user code runs. - * Class comparisons never inspect public properties or execute traps. */ -static SCR_TL JSClassID isl_module_namespace_class; -static const char *const isl_brand_names[] = { "SharedArrayBuffer", "GeneratorFunction", "AsyncGeneratorFunction", "Generator", "AsyncGenerator", - "Arguments", "Arguments", "Map Iterator", "Set Iterator", "Number", "String", "Boolean", "Symbol", "BigInt" }; -static SCR_TL JSClassID isl_brand_classes[sizeof isl_brand_names / sizeof isl_brand_names[0]]; -static void isl_init_type_brands(void) { - static const char brand_source[] = - "[new SharedArrayBuffer(0), function*(){}, async function*(){}, (function*(){})(), (async function*(){})()," - "(function(){'use strict';return arguments})(1), Function('a','return arguments')(1)," - "new Map().entries(), new Set().values(), Object(0), Object(''), Object(false), Object(Symbol()), Object(0n)]"; - JSValue brands = JS_Eval(isl_ctx, brand_source, sizeof brand_source - 1, "", JS_EVAL_TYPE_GLOBAL); - if (JS_IsException(brands)) { - fprintf(stderr, "scriptc: island type brands failed to initialize\n"); - abort(); - } - for (size_t i = 0; i < sizeof isl_brand_classes / sizeof isl_brand_classes[0]; i++) { - JSValue value = JS_GetPropertyUint32(isl_ctx, brands, (uint32_t)i); - isl_brand_classes[i] = JS_GetClassID(value); - JS_FreeValue(isl_ctx, value); - } - JS_FreeValue(isl_ctx, brands); - static const char namespace_source[] = "export {};"; - JSValue module = JS_Eval(isl_ctx, namespace_source, sizeof namespace_source - 1, - "", JS_EVAL_TYPE_MODULE | JS_EVAL_FLAG_COMPILE_ONLY); - JSValue evaluated = JS_IsException(module) ? JS_EXCEPTION : JS_EvalFunction(isl_ctx, JS_DupValue(isl_ctx, module)); - JSValue namespace = JS_IsException(evaluated) ? JS_EXCEPTION : JS_GetModuleNamespace(isl_ctx, JS_VALUE_GET_PTR(module)); - if (JS_IsException(namespace)) { - fprintf(stderr, "scriptc: island type brands failed to initialize\n"); - abort(); - } - isl_module_namespace_class = JS_GetClassID(namespace); - JS_FreeValue(isl_ctx, namespace); - JS_FreeValue(isl_ctx, evaluated); - JS_FreeValue(isl_ctx, module); -} - -static bool isl_class_named(JSValueConst value, const char *name) { - JSClassID id = JS_GetClassID(value); - if (!id) return false; - for (size_t i = 0; i < sizeof isl_brand_names / sizeof isl_brand_names[0]; i++) - if (id == isl_brand_classes[i] && strcmp(isl_brand_names[i], name) == 0) return true; - return false; -} - -static bool isl_type_probe(JSValueConst value, const char *probe, size_t len) { -#define PROBE(name) (len == sizeof(name) - 1 && memcmp(probe, name, sizeof(name) - 1) == 0) - int typed = JS_GetTypedArrayType(value); - if (PROBE("isTypedArray")) return typed >= 0; - if (PROBE("isArrayBufferView")) return typed >= 0 || JS_IsDataView(value); - if (PROBE("isUint8Array")) return typed == JS_TYPED_ARRAY_UINT8; - if (PROBE("isUint8ClampedArray")) return typed == JS_TYPED_ARRAY_UINT8C; - if (PROBE("isUint16Array")) return typed == JS_TYPED_ARRAY_UINT16; - if (PROBE("isUint32Array")) return typed == JS_TYPED_ARRAY_UINT32; - if (PROBE("isInt8Array")) return typed == JS_TYPED_ARRAY_INT8; - if (PROBE("isInt16Array")) return typed == JS_TYPED_ARRAY_INT16; - if (PROBE("isInt32Array")) return typed == JS_TYPED_ARRAY_INT32; - if (PROBE("isFloat16Array")) return typed == JS_TYPED_ARRAY_FLOAT16; - if (PROBE("isFloat32Array")) return typed == JS_TYPED_ARRAY_FLOAT32; - if (PROBE("isFloat64Array")) return typed == JS_TYPED_ARRAY_FLOAT64; - if (PROBE("isBigInt64Array")) return typed == JS_TYPED_ARRAY_BIG_INT64; - if (PROBE("isBigUint64Array")) return typed == JS_TYPED_ARRAY_BIG_UINT64; - if (PROBE("isArrayBuffer")) return JS_IsArrayBuffer(value); - if (PROBE("isDataView")) return JS_IsDataView(value); - if (PROBE("isDate")) return JS_IsDate(value); - if (PROBE("isMap")) return JS_IsMap(value); - if (PROBE("isSet")) return JS_IsSet(value); - if (PROBE("isWeakMap")) return JS_IsWeakMap(value); - if (PROBE("isWeakSet")) return JS_IsWeakSet(value); - if (PROBE("isRegExp")) return JS_IsRegExp(value); - if (PROBE("isPromise")) return JS_IsPromise(value); - if (PROBE("isProxy")) return JS_IsProxy(value); - if (PROBE("isNativeError")) return JS_IsError(value); - if (PROBE("isAnyArrayBuffer")) return JS_IsArrayBuffer(value) || isl_class_named(value, "SharedArrayBuffer"); - if (PROBE("isSharedArrayBuffer")) return isl_class_named(value, "SharedArrayBuffer"); - if (PROBE("isAsyncFunction")) return JS_IsAsyncFunction(value) || isl_class_named(value, "AsyncGeneratorFunction"); - if (PROBE("isGeneratorFunction")) return isl_class_named(value, "GeneratorFunction") || isl_class_named(value, "AsyncGeneratorFunction"); - if (PROBE("isGeneratorObject")) return isl_class_named(value, "Generator") || isl_class_named(value, "AsyncGenerator"); - if (PROBE("isArgumentsObject")) return isl_class_named(value, "Arguments"); - if (PROBE("isMapIterator")) return isl_class_named(value, "Map Iterator"); - if (PROBE("isSetIterator")) return isl_class_named(value, "Set Iterator"); - if (PROBE("isModuleNamespaceObject")) return isl_module_namespace_class && JS_GetClassID(value) == isl_module_namespace_class; - if (PROBE("isNumberObject")) return isl_class_named(value, "Number"); - if (PROBE("isStringObject")) return isl_class_named(value, "String"); - if (PROBE("isBooleanObject")) return isl_class_named(value, "Boolean"); - if (PROBE("isSymbolObject")) return isl_class_named(value, "Symbol"); - if (PROBE("isBigIntObject")) return isl_class_named(value, "BigInt"); - if (PROBE("isBoxedPrimitive")) return isl_class_named(value, "Number") || isl_class_named(value, "String") || - isl_class_named(value, "Boolean") || isl_class_named(value, "Symbol") || isl_class_named(value, "BigInt"); -#undef PROBE - return false; -} - -static bool isl_dynjs_type_probe(ScrJsval *cell, const ScrStr *probe) { - return isl_type_probe(cell->v, probe->data, probe->len); -} - -static const ScrDynJsvalOps isl_dynjs_ops; - -/* The jsval→dyn wrap over a RAW engine value (BORROWED) — the scalar - * normalization the cell constructor applies, shared by the routed-op - * result conversions (which hold a JSValue, not a cell). Composites mint - * a fresh cell over the SAME engine value (identity is the value — the - * engine's === and the unwrap both go through it). */ -static ScrDyn *isl_dyn_from_value(JSValue v) { - if (JS_IsUndefined(v)) return scr_dyn_retain(scr_dyn_undefined()); - if (JS_IsNull(v)) return scr_dyn_new_null(); - if (JS_IsBool(v)) return scr_dyn_new_bool(JS_ToBool(isl_ctx, v) > 0); - if (JS_IsNumber(v)) { - double num = 0; - JS_ToFloat64(isl_ctx, &num, v); /* cannot fail on a number */ - return scr_dyn_new_num(num); - } - if (JS_IsString(v)) { - ScrStr *s = isl_js_to_str(v); /* cannot bridge on a string */ - ScrDyn *d = scr_dyn_new_str(s); - scr_str_release(s); - return d; - } - return scr_dyn_alloc_jsval(isl_cell_new(JS_DupValue(isl_ctx, v)), &isl_dynjs_ops); -} - -/* ── the routed operation set (the ScrDynJsvalOps rows scr_json.c and - * scr_dyn_invoke.c dispatch through) ───────────────────────────────── - * Keys enter as engine strings through the GETIDX/SETIDX helpers (any - * byte content, canonical-index semantics are the engine's own); dyn - * arguments cross through scr_jsval_from_dyn (wrapped cells by - * reference, data as the usual deep copy, FUNC boxes through the shim); - * results wrap back scalar-normalized. Engine throws bridge catchably - * with the engine's message. */ - -static ScrDyn *isl_dynjs_key_get(ScrJsval *cell, const ScrStr *k) { - isl_entry(); - JSValue key = JS_NewStringLen(isl_ctx, k->data, k->len); - JSValue argv[2] = {cell->v, key}; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_GETIDX], JS_UNDEFINED, 2, argv); - JS_FreeValue(isl_ctx, key); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - ScrDyn *d = isl_dyn_from_value(r); - JS_FreeValue(isl_ctx, r); - return d; -} - -static bool isl_dynjs_key_set(ScrJsval *cell, const ScrStr *k, const ScrDyn *v) { - ScrJsval *vj = scr_jsval_from_dyn(v); - if (!vj) return false; /* unmarshalable value — the catchable TypeError */ - isl_entry(); - JSValue key = JS_NewStringLen(isl_ctx, k->data, k->len); - JSValue argv[3] = {cell->v, key, vj->v}; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_SETIDX], JS_UNDEFINED, 3, argv); - JS_FreeValue(isl_ctx, key); - scr_jsval_release(vj); - if (JS_IsException(r)) { - isl_bridge_exception(); - return false; - } - JS_FreeValue(isl_ctx, r); - return true; -} - -/* Convert argc dyn arguments for a routed call; frees what it built on - * failure. Returns false with the exception pending. */ -static bool isl_dynjs_args_in(ScrDyn *const *args, size_t argc, ScrJsval **cells) { - for (size_t i = 0; i < argc; i++) { - cells[i] = scr_jsval_from_dyn(args[i]); - if (!cells[i]) { - for (size_t j = 0; j < i; j++) scr_jsval_release(cells[j]); - return false; - } - } - return true; -} - -static ScrDyn *isl_dynjs_call(ScrJsval *cell, ScrDyn *const *args, size_t argc) { - ScrJsval *stack_cells[8]; - ScrJsval **cells = argc <= 8 ? stack_cells : malloc(argc * sizeof *cells); - if (!isl_dynjs_args_in(args, argc, cells)) { - if (cells != stack_cells) free(cells); - return NULL; - } - ScrDyn *receiver = scr_dyn_this_get(); - ScrJsval *receiver_cell = scr_jsval_from_dyn(receiver); - scr_dyn_release(receiver); - ScrJsval *r = receiver_cell ? scr_jsval_call_this(cell, receiver_cell, (int)argc, cells) : NULL; - scr_jsval_release(receiver_cell); - for (size_t i = 0; i < argc; i++) scr_jsval_release(cells[i]); - if (cells != stack_cells) free(cells); - if (!r) return NULL; - ScrDyn *d = isl_dyn_from_value(r->v); - scr_jsval_release(r); - return d; -} - -static ScrDyn *isl_dynjs_invoke(ScrJsval *cell, const char *method, ScrDyn *const *args, size_t argc, const char *what) { - isl_entry(); - JSValue fn = JS_GetPropertyStr(isl_ctx, cell->v, method); /* owned */ - if (JS_IsException(fn)) { - isl_bridge_exception(); - return NULL; - } - if (!JS_IsFunction(isl_ctx, fn)) { - /* Node's spelled TypeError (V8's text), front-run before the - * engine's terser "not a function". */ - JS_FreeValue(isl_ctx, fn); - ScrJsonBuf b; - scr_jb_init(&b); - scr_jb_puts(&b, what); - scr_jb_puts(&b, " is not a function"); - scr_throw_error(SCR_ERR_TYPE, scr_jb_finish(&b)); - return NULL; - } - ScrJsval *stack_cells[8]; - ScrJsval **cells = argc <= 8 ? stack_cells : malloc(argc * sizeof *cells); - if (!isl_dynjs_args_in(args, argc, cells)) { - JS_FreeValue(isl_ctx, fn); - if (cells != stack_cells) free(cells); - return NULL; - } - JSValue stack_args[8]; - JSValue *argv = argc <= 8 ? stack_args : malloc(argc * sizeof(JSValue)); - for (size_t i = 0; i < argc; i++) argv[i] = cells[i]->v; - JSValue r = JS_Call(isl_ctx, fn, cell->v, (int)argc, argv); /* this = receiver */ - if (argv != stack_args) free(argv); - JS_FreeValue(isl_ctx, fn); - for (size_t i = 0; i < argc; i++) scr_jsval_release(cells[i]); - if (cells != stack_cells) free(cells); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - ScrDyn *d = isl_dyn_from_value(r); - JS_FreeValue(isl_ctx, r); - return d; -} - -static bool isl_dynjs_is_nullish(ScrJsval *cell) { - return JS_IsUndefined(cell->v) || JS_IsNull(cell->v); -} - -static ScrDyn *isl_dynjs_obj_walk(ScrJsval *cell, int mode) { - isl_entry(); - JSValue m = JS_NewInt32(isl_ctx, mode); - JSValue argv[2] = {cell->v, m}; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_OBJWALK], JS_UNDEFINED, 2, argv); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - /* The engine array unpacks into a NATIVE dyn array (keys are dyn - * strings, values wrap per element, entries become native pairs) so - * the results iterate/index/measure at native speed. */ - int64_t len = 0; - JSValue lv = JS_GetPropertyStr(isl_ctx, r, "length"); - JS_ToInt64(isl_ctx, &len, lv); - JS_FreeValue(isl_ctx, lv); - ScrDyn *out = scr_dyn_new_arr(); - for (int64_t i = 0; i < len; i++) { - JSValue e = JS_GetPropertyUint32(isl_ctx, r, (uint32_t)i); - if (mode == 2) { - JSValue k = JS_GetPropertyUint32(isl_ctx, e, 0); - JSValue v = JS_GetPropertyUint32(isl_ctx, e, 1); - ScrDyn *pair = scr_dyn_new_arr(); - scr_dyn_arr_push(pair, isl_dyn_from_value(k)); - scr_dyn_arr_push(pair, isl_dyn_from_value(v)); - scr_dyn_arr_push(out, pair); - JS_FreeValue(isl_ctx, k); - JS_FreeValue(isl_ctx, v); - } else { - scr_dyn_arr_push(out, isl_dyn_from_value(e)); - } - JS_FreeValue(isl_ctx, e); - } - JS_FreeValue(isl_ctx, r); - return out; -} - -static int isl_dynjs_has_own(ScrJsval *cell, const ScrStr *k) { - isl_entry(); - JSValue key = JS_NewStringLen(isl_ctx, k->data, k->len); - JSValue argv[2] = {cell->v, key}; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_HASOWN], JS_UNDEFINED, 2, argv); - JS_FreeValue(isl_ctx, key); - if (JS_IsException(r)) { - isl_bridge_exception(); - return -1; - } - int b = JS_ToBool(isl_ctx, r); - JS_FreeValue(isl_ctx, r); - return b > 0 ? 1 : 0; -} - -static bool isl_dynjs_assign(ScrJsval *cell, const ScrDyn *src) { - ScrJsval *sj = scr_jsval_from_dyn(src); - if (!sj) return false; - isl_entry(); - JSValue argv[2] = {cell->v, sj->v}; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_ASSIGN], JS_UNDEFINED, 2, argv); - scr_jsval_release(sj); - if (JS_IsException(r)) { - isl_bridge_exception(); - return false; - } - JS_FreeValue(isl_ctx, r); - return true; -} - -static ScrStr *isl_dynjs_to_json(ScrJsval *cell) { return scr_jsval_to_json(cell); } - -static ScrDyn *isl_dynjs_unpack_array(JSValue r) { - /* The drained engine array unpacks into a fresh dyn array — elements - * wrap back scalar-normalized (composites stay engine values by - * reference), exactly the obj_walk unpack. */ - int64_t len = 0; - JSValue lv = JS_GetPropertyStr(isl_ctx, r, "length"); - JS_ToInt64(isl_ctx, &len, lv); - JS_FreeValue(isl_ctx, lv); - ScrDyn *out = scr_dyn_new_arr(); - for (int64_t i = 0; i < len; i++) { - JSValue e = JS_GetPropertyUint32(isl_ctx, r, (uint32_t)i); - scr_dyn_arr_push(out, isl_dyn_from_value(e)); - JS_FreeValue(isl_ctx, e); - } - JS_FreeValue(isl_ctx, r); - return out; -} - -static ScrDyn *isl_dynjs_iter_drain(ScrJsval *cell, bool spread, const ScrStr *spell) { - isl_entry(); - JSValue m = JS_NewInt32(isl_ctx, spread ? 1 : 0); - JSValue s = spell && spell->len > 0 - ? JS_NewStringLen(isl_ctx, spell->data, spell->len) - : JS_UNDEFINED; - JSValue argv[3] = {cell->v, m, s}; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_ITERDRAIN], JS_UNDEFINED, 3, argv); - JS_FreeValue(isl_ctx, s); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_dynjs_unpack_array(r); -} - -static ScrDyn *isl_dynjs_iterator(ScrJsval *cell, const ScrStr *spell, bool array_from) { - isl_entry(); - JSValue s = spell && spell->len ? JS_NewStringLen(isl_ctx, spell->data, spell->len) : JS_UNDEFINED; - JSValue argv[3] = {cell->v, s, JS_NewBool(isl_ctx, array_from)}; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_ITER], JS_UNDEFINED, 3, argv); - JS_FreeValue(isl_ctx, s); - if (JS_IsException(r)) { isl_bridge_exception(); return NULL; } - ScrDyn *out = isl_dyn_from_value(r); - JS_FreeValue(isl_ctx, r); - return out; -} - -static ScrDyn *isl_dynjs_iter_n(ScrJsval *cell, double count) { - ScrJsval *prefix = scr_jsval_iter_n(cell, count); - if (!prefix) return NULL; - ScrDyn *out = isl_dynjs_unpack_array(JS_DupValue(isl_ctx, prefix->v)); - scr_jsval_release(prefix); - return out; -} - -static const ScrDynJsvalOps isl_dynjs_ops = { - isl_dynjs_release, - isl_dynjs_typeof, - isl_dynjs_truthy, - isl_dynjs_to_str, - isl_dynjs_strict_eq, - isl_dynjs_is_array, - isl_dynjs_is_error, - isl_dynjs_key_get, - isl_dynjs_key_set, - isl_dynjs_call, - isl_dynjs_invoke, - isl_dynjs_is_nullish, - isl_dynjs_obj_walk, - isl_dynjs_has_own, - isl_dynjs_assign, - isl_dynjs_to_json, - isl_dynjs_iter_drain, - isl_dynjs_iterator, - isl_dynjs_iter_n, - isl_dynjs_type_probe, -}; - -ScrDyn *scr_dyn_from_jsval(ScrJsval *cell) { - isl_entry(); - JSValue v = cell->v; - /* Scalar normalization: engine-reported scalars become the NATIVE dyn - * kinds at wrap time (the strict exits cannot fail on them), so every - * scalar path in the dyn core — ===, typeof tests, JSON of leaves — - * stays untouched and the JSVAL kind never competes with them. */ - if (JS_IsUndefined(v)) return scr_dyn_retain(scr_dyn_undefined()); - if (JS_IsNull(v)) return scr_dyn_new_null(); - if (JS_IsBool(v)) return scr_dyn_new_bool(JS_ToBool(isl_ctx, v) > 0); - if (JS_IsNumber(v)) { - double num = 0; - JS_ToFloat64(isl_ctx, &num, v); /* cannot fail on a number */ - return scr_dyn_new_num(num); - } - if (JS_IsString(v)) { - ScrStr *s = isl_js_to_str(v); /* cannot bridge on a string */ - ScrDyn *d = scr_dyn_new_str(s); - scr_str_release(s); - return d; - } - return scr_dyn_alloc_jsval(scr_jsval_retain(cell), &isl_dynjs_ops); -} - -/* ── operators (through the pinned prelude helpers) ───────────────────── */ - -ScrJsval *scr_jsval_binop(int op, ScrJsval *a, ScrJsval *b) { - isl_entry(); - JSValue argv[2] = {a->v, b->v}; - JSValue r = JS_Call(isl_ctx, isl_helpers[op], JS_UNDEFINED, 2, argv); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -int scr_jsval_cmp(int op, ScrJsval *a, ScrJsval *b) { - isl_entry(); - JSValue argv[2] = {a->v, b->v}; - JSValue r = JS_Call(isl_ctx, isl_helpers[op], JS_UNDEFINED, 2, argv); - if (JS_IsException(r)) { - isl_bridge_exception(); - return -1; - } - int b1 = JS_ToBool(isl_ctx, r); - JS_FreeValue(isl_ctx, r); - return b1 > 0 ? 1 : 0; -} - -int scr_jsval_instance_of(ScrJsval *v, ScrJsval *c) { - isl_entry(); - /* JS_IsInstanceOf IS the spec's InstanceofOperator — Symbol.hasInstance - * included; a non-callable/non-object RHS throws the engine's own - * TypeError, bridged catchably like every island op. */ - int r = JS_IsInstanceOf(isl_ctx, v->v, c->v); - if (r < 0) { - isl_bridge_exception(); - return -1; - } - return r > 0 ? 1 : 0; -} - -static ScrJsval *isl_call1(int helper, ScrJsval *a) { - isl_entry(); - JSValue r = JS_Call(isl_ctx, isl_helpers[helper], JS_UNDEFINED, 1, &a->v); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -ScrJsval *scr_jsval_neg(ScrJsval *a) { return isl_call1(ISL_H_NEG, a); } -/* GetIterator over an island value (the for-of head): the engine's own - * protocol lookup, V8's not-iterable TypeError text on refusal. */ -ScrJsval *scr_jsval_iter_new(ScrJsval *a) { return isl_call1(ISL_H_ITER, a); } -ScrJsval *scr_jsval_plus(ScrJsval *a) { return isl_call1(ISL_H_PLUS, a); } - -int scr_jsval_truthy(ScrJsval *a) { - isl_entry(); - return JS_ToBool(isl_ctx, a->v) > 0; /* ToBoolean never throws */ -} - -ScrStr *scr_jsval_typeof(ScrJsval *a) { - isl_entry(); - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_TYPEOF], JS_UNDEFINED, 1, &a->v); - /* typeof cannot throw; the result is always an engine string. */ - ScrStr *s = isl_js_to_str(r); - JS_FreeValue(isl_ctx, r); - return s; -} - -bool scr_jsval_is_object(ScrJsval *a) { - ScrStr *type = scr_jsval_typeof(a); - bool object = type->len == 6 && memcmp(type->data, "object", 6) == 0; - scr_str_release(type); - return object; -} - -ScrStr *scr_jsval_to_str(ScrJsval *a) { - isl_entry(); - return isl_js_to_str(a->v); /* NULL = bridged (e.g. a symbol) */ -} - -/* ── property/element access and calls ────────────────────────────────── */ - -ScrJsval *scr_jsval_get_prop(ScrJsval *o, const ScrStr *name) { - isl_entry(); - JSValue r = JS_GetPropertyStr(isl_ctx, o->v, name->data); /* owned */ - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -static void isl_ensure_node_globals(void); - -/* A member of the engine's global object by name (Math, parseFloat, ...) — - * the receiver/callee for the island-backed ambient surface. */ -ScrJsval *scr_jsval_global_get(const ScrStr *name) { - isl_entry(); - /* A typed program can explicitly escape through globalThis without an - * embedded npm import. Install the same Node globals that an embedded - * module sees before returning that object. */ - if (name->len == 10 && memcmp(name->data, "globalThis", 10) == 0) - isl_ensure_node_globals(); - JSValue g = JS_GetGlobalObject(isl_ctx); /* owned */ - JSValue r = JS_GetPropertyStr(isl_ctx, g, name->data); /* owned */ - JS_FreeValue(isl_ctx, g); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -int scr_jsval_set_prop(ScrJsval *o, const ScrStr *name, ScrJsval *v) { - isl_entry(); - /* JS_SetPropertyStr CONSUMES its value argument — dup, the cell keeps - * its own reference. */ - if (JS_SetPropertyStr(isl_ctx, o->v, name->data, JS_DupValue(isl_ctx, v->v)) < 0) { - isl_bridge_exception(); - return 0; - } - return 1; -} - -/* Destructuring RequireObjectCoercible (V8's exact TypeError text — see - * the ISL_H_DESTRCHECK prelude helper): nullish throws catchably, every - * other value passes through (+1 cell). `first` is the pattern's first - * property name or NULL for the empty pattern's bare form. */ -ScrJsval *scr_jsval_destr_check(ScrJsval *v, const char *spell, const char *first) { - isl_entry(); - JSValue argv[3]; - argv[0] = v->v; - argv[1] = JS_NewString(isl_ctx, spell); - argv[2] = first ? JS_NewString(isl_ctx, first) : JS_UNDEFINED; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_DESTRCHECK], JS_UNDEFINED, 3, argv); - JS_FreeValue(isl_ctx, argv[1]); - JS_FreeValue(isl_ctx, argv[2]); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -/* Destructuring GetIterator + the pattern's width (see ISL_H_ITERN): - * a fresh engine array of exactly n elements, undefined-padded, with - * IteratorClose when the iterator was not exhausted; non-iterables throw - * V8's exact not-iterable TypeError catchably. */ -ScrJsval *scr_jsval_iter_n(ScrJsval *v, double n) { - isl_entry(); - JSValue argv[2]; - argv[0] = v->v; - argv[1] = JS_NewFloat64(isl_ctx, n); - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_ITERN], JS_UNDEFINED, 2, argv); - JS_FreeValue(isl_ctx, argv[1]); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -ScrJsval *scr_jsval_get_idx(ScrJsval *o, ScrJsval *key) { - isl_entry(); - JSValue argv[2] = {o->v, key->v}; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_GETIDX], JS_UNDEFINED, 2, argv); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -int scr_jsval_set_idx(ScrJsval *o, ScrJsval *key, ScrJsval *v) { - isl_entry(); - JSValue argv[3] = {o->v, key->v, v->v}; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_SETIDX], JS_UNDEFINED, 3, argv); - if (JS_IsException(r)) { - isl_bridge_exception(); - return 0; - } - JS_FreeValue(isl_ctx, r); - return 1; -} - -ScrJsval *scr_jsval_call_method(ScrJsval *o, const ScrStr *name, int argc, ScrJsval **argv) { - isl_entry(); - JSValue fn = JS_GetPropertyStr(isl_ctx, o->v, name->data); /* owned */ - if (JS_IsException(fn)) { - isl_bridge_exception(); - return NULL; - } - JSValue stack_args[8]; - JSValue *args = argc <= 8 ? stack_args : malloc((size_t)argc * sizeof(JSValue)); - for (int i = 0; i < argc; i++) args[i] = argv[i]->v; - JSValue r = JS_Call(isl_ctx, fn, o->v, argc, args); /* this = receiver */ - if (args != stack_args) free(args); - JS_FreeValue(isl_ctx, fn); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -/* `o.name?.(...)` — the optional METHOD call: a nullish member answers - * the engine's undefined (JS: exactly `o.name?.()`); anything else calls - * with `this = o`, non-callables throwing the engine's own TypeError. */ -ScrJsval *scr_jsval_opt_call_method(ScrJsval *o, const ScrStr *name, int argc, ScrJsval **argv) { - isl_entry(); - JSValue fn = JS_GetPropertyStr(isl_ctx, o->v, name->data); /* owned */ - if (JS_IsException(fn)) { - isl_bridge_exception(); - return NULL; - } - if (JS_IsUndefined(fn) || JS_IsNull(fn)) { - JS_FreeValue(isl_ctx, fn); - return isl_cell_new(JS_UNDEFINED); - } - JSValue stack_args[8]; - JSValue *args = argc <= 8 ? stack_args : malloc((size_t)argc * sizeof(JSValue)); - for (int i = 0; i < argc; i++) args[i] = argv[i]->v; - JSValue r = JS_Call(isl_ctx, fn, o->v, argc, args); /* this = receiver */ - if (args != stack_args) free(args); - JS_FreeValue(isl_ctx, fn); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -ScrJsval *scr_jsval_call(ScrJsval *f, int argc, ScrJsval **argv) { - isl_entry(); - JSValue stack_args[8]; - JSValue *args = argc <= 8 ? stack_args : malloc((size_t)argc * sizeof(JSValue)); - for (int i = 0; i < argc; i++) args[i] = argv[i]->v; - JSValue r = JS_Call(isl_ctx, f->v, JS_UNDEFINED, argc, args); - if (args != stack_args) free(args); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -/* Call an already-resolved computed member with its original receiver. The - * frontend performs GetValue before argument evaluation, then arrives here - * after the arguments are ready; keeping callee and receiver separate avoids - * a second getter read while preserving method `this`. */ -ScrJsval *scr_jsval_call_this(ScrJsval *f, ScrJsval *receiver, int argc, - ScrJsval **argv) { - isl_entry(); - JSValue stack_args[8]; - JSValue *args = argc <= 8 ? stack_args : malloc((size_t)argc * sizeof(JSValue)); - for (int i = 0; i < argc; i++) args[i] = argv[i]->v; - JSValue r = JS_Call(isl_ctx, f->v, receiver->v, argc, args); - if (args != stack_args) free(args); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -/* Spread application on an island callee (jsOp callSpread) — the prelude - * helper's real `f(...pre, ...spread)`, so iterator protocols are the - * engine's own and the guards front-run V8's exact spread-call TypeError - * texts (`what` is the spread expression's source spelling). Borrows - * everything; +1 out, or NULL with the engine exception bridged. */ -ScrJsval *scr_jsval_call_spread(ScrJsval *f, ScrJsval *pre, ScrJsval *spread, const ScrStr *what) { - isl_entry(); - JSValue argv[4] = {f->v, pre->v, spread->v, JS_NewStringLen(isl_ctx, what->data, what->len)}; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_CALLSPREAD], JS_UNDEFINED, 4, argv); - JS_FreeValue(isl_ctx, argv[3]); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -/* `new X(...)` on an island callee (jsOp construct). Borrows everything; - * +1 out, or NULL with the engine exception bridged. */ -ScrJsval *scr_jsval_construct(ScrJsval *f, int argc, ScrJsval **argv) { - isl_entry(); - JSValue stack_args[8]; - JSValue *args = argc <= 8 ? stack_args : malloc((size_t)argc * sizeof(JSValue)); - for (int i = 0; i < argc; i++) args[i] = argv[i]->v; - JSValue r = JS_CallConstructor(isl_ctx, f->v, argc, args); - if (args != stack_args) free(args); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); -} - -/* ── closures entering the island (host functions) ──────────────────── - * A scriptc closure wraps as an engine function: arguments arrive as - * BORROWED cells (padded with undefined / surplus dropped — JS call - * semantics), the compiled adapter calls the closure through its real - * ABI, and the +1 result value (or undefined for void) returns to the - * engine. A scriptc exception thrown by the closure REVERSE-bridges: - * the pending cell's payload becomes the engine's thrown value (strings - * stay strings, so a round trip through both bridges is the identity). - * The wrapper OWNS one reference on the closure; the engine finalizer - * releases it — at teardown that happens before the RC audit runs. */ - -#define ISL_HOSTFN_MAX_ARITY 16 - -typedef struct { - ScrClosure *c; - ScrJsval *(*adapt)(ScrClosure *, ScrJsval **); - int arity; -} IslHostFn; - -static JSClassID isl_hostfn_class_id = 0; - -static void isl_hostfn_finalizer(JSRuntime *rt, JSValueConst val) { - (void)rt; - IslHostFn *b = JS_GetOpaque(val, isl_hostfn_class_id); - if (b) { - scr_closure_release(b->c); - free(b); - } -} - -static const JSClassDef isl_hostfn_class = { - .class_name = "ScrHostFn", - .finalizer = isl_hostfn_finalizer, -}; - -static JSClassID isl_dynfn_class_id; /* the checked-dynamic tree-function shim, below */ -static const JSClassDef isl_dynfn_class; - -static void isl_register_hostfn_class(void) { - JS_NewClassID(isl_rt, &isl_hostfn_class_id); - JS_NewClass(isl_rt, isl_hostfn_class_id, &isl_hostfn_class); - JS_NewClassID(isl_rt, &isl_dynfn_class_id); - JS_NewClass(isl_rt, isl_dynfn_class_id, &isl_dynfn_class); - isl_register_bridge_class(); -} - -/* Pending scriptc exception → engine VALUE (reverse bridge); clears the - * cell. Shared by the host-call throw path and the promise bridge's - * rejection path. */ -static JSValue isl_pending_to_value(JSContext *ctx) { - ScrExcCell *cell = scr_exc_current_cell(); - JSValue v; - switch (cell->kind) { - case SCR_EXC_F64: - v = JS_NewFloat64(ctx, cell->f64); - break; - case SCR_EXC_BOOL: - v = JS_NewBool(ctx, cell->b); - break; - case SCR_EXC_STR: { - ScrStr *s = (ScrStr *)cell->payload; - v = JS_NewStringLen(ctx, s->data, s->len); - break; - } - case SCR_EXC_OBJ: - if (scr_error_is(cell->payload)) { - /* A scriptc Error crossing in: a real engine Error with the same - * name/message, so package code can read e.message and String(e). - * The BUILTIN names construct through the engine's own constructor - * (mirroring the forward bridge, which picks the builtin vtable by - * name) so `e instanceof TypeError` narrows in package code — - * conversion failures at the typed-callback boundary rely on it. - * Custom names ride an Error-rooted instance with the name set. */ - ScrError *err = (ScrError *)cell->payload; - static const char *const builtins[] = { - "Error", "TypeError", "RangeError", "SyntaxError", - "ReferenceError", "EvalError", "URIError"}; - v = JS_UNDEFINED; - for (size_t i = 0; i < sizeof builtins / sizeof builtins[0]; i++) { - if (strlen(builtins[i]) == err->name->len && - memcmp(builtins[i], err->name->data, err->name->len) == 0) { - JSValue global = JS_GetGlobalObject(ctx); - JSValue ctor = JS_GetPropertyStr(ctx, global, builtins[i]); - JS_FreeValue(ctx, global); - JSValue msg = JS_NewStringLen(ctx, err->message->data, err->message->len); - v = JS_CallConstructor(ctx, ctor, 1, &msg); - JS_FreeValue(ctx, msg); - JS_FreeValue(ctx, ctor); - if (JS_IsException(v)) v = JS_UNDEFINED; /* fall back below */ - break; - } - } - if (JS_IsUndefined(v)) { - v = JS_NewError(ctx); - JS_SetPropertyStr(ctx, v, "name", - JS_NewStringLen(ctx, err->name->data, err->name->len)); - JS_SetPropertyStr(ctx, v, "message", - JS_NewStringLen(ctx, err->message->data, err->message->len)); - } - /* The code property crosses too — fs/exec throw sites stamp the - * errno name, and package code branches on err.code === 'ENOENT'. */ - if (err->code != NULL && !JS_IsUndefined(v)) { - JS_SetPropertyStr(ctx, v, "code", - JS_NewStringLen(ctx, err->code->data, err->code->len)); - } - break; - } - /* fall through: non-Error hierarchy objects render like other refs */ - default: - /* Ref payloads render "[object]" like the uncaught printer. */ - v = JS_NewString(ctx, "[object]"); - break; - } - scr_exc_clear(); - return v; -} - -/* Pending scriptc exception → engine thrown value (reverse bridge). */ -static JSValue isl_throw_pending(JSContext *ctx) { - return JS_Throw(ctx, isl_pending_to_value(ctx)); -} - -static JSValue isl_hostfn_invoke(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv, int magic, JSValueConst *func_data) { - (void)this_val; - (void)magic; - IslHostFn *b = JS_GetOpaque(func_data[0], isl_hostfn_class_id); - if (!b) return JS_ThrowTypeError(ctx, "detached scriptc host function"); - ScrJsval *cells[ISL_HOSTFN_MAX_ARITY]; - int ncells; - if (b->arity < 0) { - /* The ISLAND-REST shape (negative arity = -(leading declared + 1)): - * leading params pad/drop like any host call; the trailing cell is a - * fresh ENGINE ARRAY of the surplus arguments — the closure's rest - * binding IS the engine's own arguments array. */ - int leading = -b->arity - 1; - for (int i = 0; i < leading; i++) { - cells[i] = isl_cell_new(i < argc ? JS_DupValue(ctx, argv[i]) : JS_UNDEFINED); - } - JSValue rest = JS_NewArray(ctx); - for (int i = leading; i < argc; i++) { - JS_SetPropertyUint32(ctx, rest, (uint32_t)(i - leading), JS_DupValue(ctx, argv[i])); - } - cells[leading] = isl_cell_new(rest); - ncells = leading + 1; - } else { - for (int i = 0; i < b->arity; i++) { - cells[i] = isl_cell_new(i < argc ? JS_DupValue(ctx, argv[i]) : JS_UNDEFINED); - } - ncells = b->arity; - } - bool strayed_before = isl_anchor_strayed; - isl_host_depth++; - ScrJsval *r = b->adapt(b->c, cells); - isl_host_depth--; - if (isl_anchor_strayed && !strayed_before) { - /* A fiber the callback spawned (an async callback's eager prefix, the - * promise-bridge waiter) re-anchored the overflow check to ITS stack; - * the engine frames above this call live on ours. Re-anchor here — - * deeper than the original entry by the frames already in use, which - * loosens the budget by that depth (transient: the next top-level - * entry re-anchors exactly). */ - isl_anchor_here(); - isl_anchor_strayed = strayed_before; - } - for (int i = 0; i < ncells; i++) scr_jsval_release(cells[i]); - if (scr_exc_pending()) { - if (r) scr_jsval_release(r); - return isl_throw_pending(ctx); - } - if (!r) return JS_UNDEFINED; - JSValue out = JS_DupValue(ctx, r->v); - scr_jsval_release(r); - return out; -} - -ScrJsval *scr_jsval_from_closure(ScrClosure *c, int arity, - ScrJsval *(*adapt)(ScrClosure *, ScrJsval **)) { - isl_entry(); - /* Negative arity = the island-rest shape; the CELL count is the leading - * declared params + the one rest-array slot. */ - if ((arity < 0 ? -arity : arity) > ISL_HOSTFN_MAX_ARITY) { - fprintf(stderr, "scriptc: island callback arity %d exceeds %d\n", arity, - ISL_HOSTFN_MAX_ARITY); - abort(); /* the frontend fences this; reaching here is a compiler bug */ - } - IslHostFn *b = malloc(sizeof *b); - if (!b) { - fprintf(stderr, "scriptc: out of memory\n"); - abort(); - } - b->c = scr_closure_retain(c); - b->adapt = adapt; - b->arity = arity; - JSValue box = JS_NewObjectClass(isl_ctx, isl_hostfn_class_id); - JS_SetOpaque(box, b); - JSValueConst data[1] = {box}; - JSValue fn = JS_NewCFunctionData(isl_ctx, isl_hostfn_invoke, arity < 0 ? -arity - 1 : arity, 0, 1, data); - JS_FreeValue(isl_ctx, box); /* fn's func_data holds its own reference */ - return isl_cell_new(fn); -} - -/* ── the generic dyn-function shim (a boxed SCR_DYN_FUNC entering the - * island) ───────────────────────────────────────────────────────────── - * ONE shim serves every boxed function because the box's call thunk is a - * single uniform C signature (ScrDynThunk): engine arguments wrap as dyn - * values (scalar-normalizing — the jsval→dyn constructor's stance), the - * thunk validates them against the closure's declared parameter types - * and runs it, and the dyn result converts back through the from_dyn - * rules (wrapped cells by reference, data as a deep copy, nested - * functions through this same shim). OWNERSHIP: the engine function's - * opaque box owns ONE reference on the whole ScrDyn FUNC node (closure - * and descriptor ride inside); the engine finalizer releases it — at - * teardown that runs before the RC audit, the isl_hostfn story. A - * scriptc exception thrown inside reverse-bridges to an engine throw; - * the receiver (`this`) is deliberately not forwarded (the typed - * host-function stance — dyn thunks read the ambient receiver, which no - * engine call site binds). Each crossing mints a FRESH engine function: - * re-crossing identity is not preserved (SEMANTICS.md). */ - -static JSClassID isl_dynfn_class_id = 0; - -static void isl_dynfn_finalizer(JSRuntime *rt, JSValueConst val) { - (void)rt; - ScrDyn *box = JS_GetOpaque(val, isl_dynfn_class_id); - if (box) scr_dyn_release(box); -} - -static const JSClassDef isl_dynfn_class = { - .class_name = "ScrDynFn", - .finalizer = isl_dynfn_finalizer, -}; - -static JSValue isl_dynfn_invoke(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv, int magic, JSValueConst *func_data) { - (void)this_val; - (void)magic; - ScrDyn *box = JS_GetOpaque(func_data[0], isl_dynfn_class_id); - if (!box) return JS_ThrowTypeError(ctx, "detached scriptc function"); - ScrDyn *stack_args[8]; - ScrDyn **dargs = argc <= 8 ? stack_args : malloc((size_t)argc * sizeof *dargs); - for (int i = 0; i < argc; i++) dargs[i] = isl_dyn_from_value(argv[i]); - bool strayed_before = isl_anchor_strayed; - isl_host_depth++; - ScrDyn *r = box->v.fn.thunk(box->v.fn.clo, dargs, (size_t)argc); - isl_host_depth--; - if (isl_anchor_strayed && !strayed_before) { - /* The isl_hostfn_invoke re-anchor dance: a fiber the callback spawned - * moved the engine's overflow anchor off this stack. */ - isl_anchor_here(); - isl_anchor_strayed = strayed_before; - } - for (int i = 0; i < argc; i++) scr_dyn_release(dargs[i]); - if (dargs != stack_args) free(dargs); - if (scr_exc_pending()) { - if (r) scr_dyn_release(r); - return isl_throw_pending(ctx); - } - if (!r) return JS_UNDEFINED; - /* The thunk's dyn result converts back per the from_dyn rules; a kind - * with no crossing (a handle, a promise) throws the same catchable - * TypeError from_dyn would. */ - const char *bad = isl_dyn_unmarshalable(r); - if (bad != NULL) { - scr_dyn_release(r); - return JS_ThrowTypeError(ctx, "an 'unknown' value holding %s cannot enter dynamically-executed code", bad); - } - JSValue out = isl_from_dyn(r); - scr_dyn_release(r); - return out; /* JS_EXCEPTION passes through as the engine throw */ -} - -/* A fresh engine function over a boxed dyn function (borrows d — the - * opaque box retains it). */ -static JSValue isl_dynfn_new(const ScrDyn *d) { - JSValue boxv = JS_NewObjectClass(isl_ctx, isl_dynfn_class_id); - JS_SetOpaque(boxv, scr_dyn_retain((ScrDyn *)d)); - JSValueConst data[1] = {boxv}; - JSValue fn = JS_NewCFunctionData(isl_ctx, isl_dynfn_invoke, (int)d->v.fn.arity, 0, 1, data); - JS_FreeValue(isl_ctx, boxv); /* fn's func_data holds its own reference */ - return fn; -} - -/* The typed adapters' absence test for `T | undefined` parameters. */ -bool scr_jsval_is_undefined(ScrJsval *v) { return JS_IsUndefined(v->v); } - -/* ── the promise bridge (async callbacks' thenable) ─────────────────── - * A typed callback with an async body returns a scriptc promise; the - * package expects a real thenable. scr_jsval_from_promise mints an - * engine promise capability and spawns a WAITER fiber that awaits the - * scriptc promise — the settle notification the promise machinery - * already has — then settles the capability: fulfillment marshals per the - * payload tag, rejection reverse-bridges the reason (the same conversion - * host-call throws use, so Errors arrive as engine Errors). The await - * marks the rejection OBSERVED for the static ledger; from there the - * engine's own rejection tracker owns the outcome — an unhandled wrapper - * rejection reports through the island ledger, a handled one is silent. - * One report, one voice, either way. - * - * Live wraps are registered so teardown can free their engine values if - * the wrapped promise never settles (the waiter is then an abandoned - * fiber; its stack is deliberately not unwound — the loop can only end - * with an UNSETTLED wrap, since a settled one wakes the waiter as a - * microtask before quiescence). */ - -typedef struct IslPromWrap { - struct IslPromWrap *next; - ScrPromise *p; /* the wrapped scriptc promise, +1 (moved in) */ - JSValue resolve, reject; - int payload; /* SCR_ISLP_* */ -} IslPromWrap; - -static IslPromWrap *isl_prom_wraps = NULL; - -/* Unlink + free one wrap (releases the promise, frees the capability's - * settle functions). */ -static void isl_prom_wrap_free(IslPromWrap *w) { - for (IslPromWrap **link = &isl_prom_wraps; *link; link = &(*link)->next) { - if (*link == w) { - *link = w->next; - break; - } - } - JS_FreeValue(isl_ctx, w->resolve); - JS_FreeValue(isl_ctx, w->reject); - scr_promise_release(w->p); - free(w); -} - -/* The waiter fiber body: await, convert, settle the capability. Runs - * eagerly at wrap time (already-settled promises deliver before the host - * call returns — like a resolved thenable's synchronously-queued job) or - * as a microtask when the promise settles later. isl_entry() re-anchors - * the engine's overflow check to this fiber's stack (the stray/restore - * dance in isl_entry/isl_hostfn_invoke keeps the host stack's anchor - * intact around it). */ -static void isl_prom_wrap_entry(ScrFiber *self, void *arg) { - (void)self; - IslPromWrap *w = (IslPromWrap *)arg; - double f = 0; - bool b = false; - ScrStr *s = NULL; - ScrJsval *j = NULL; - ScrArr *ja = NULL; - switch (w->payload) { - case SCR_ISLP_F64: f = scr_await_f64(w->p); break; - case SCR_ISLP_BOOL: b = scr_await_bool(w->p); break; - case SCR_ISLP_STR: s = scr_await_str(w->p); break; - case SCR_ISLP_JSVAL: j = (ScrJsval *)scr_await_ref(w->p); break; - case SCR_ISLP_JSVAL_ARR: ja = (ScrArr *)scr_await_ref(w->p); break; - default: scr_await_void(w->p); break; - } - bool rejected = scr_exc_pending(); - isl_entry(); - JSValue v; - if (rejected) { - v = isl_pending_to_value(isl_ctx); - } else { - switch (w->payload) { - case SCR_ISLP_F64: v = JS_NewFloat64(isl_ctx, f); break; - case SCR_ISLP_BOOL: v = JS_NewBool(isl_ctx, b); break; - case SCR_ISLP_STR: v = s ? JS_NewStringLen(isl_ctx, s->data, s->len) : JS_UNDEFINED; break; - case SCR_ISLP_JSVAL: v = j ? JS_DupValue(isl_ctx, j->v) : JS_UNDEFINED; break; - case SCR_ISLP_JSVAL_ARR: - /* A native array of engine cells fulfills: a fresh engine array - * over the SAME engine values (identity crosses, spine a copy). */ - if (ja) { - v = JS_NewArray(isl_ctx); - for (size_t i = 0; i < ja->len; i++) { - ScrJsval *cell = (ScrJsval *)scr_arr_get_ref(ja, (double)i); /* +1 */ - JS_SetPropertyUint32(isl_ctx, v, (uint32_t)i, JS_DupValue(isl_ctx, cell->v)); - scr_jsval_release(cell); - } - } else { - v = JS_UNDEFINED; - } - break; - default: v = JS_UNDEFINED; break; - } - } - if (s) scr_str_release(s); - if (j) scr_jsval_release(j); - if (ja) scr_arr_release(ja); - JSValue r = JS_Call(isl_ctx, rejected ? w->reject : w->resolve, JS_UNDEFINED, 1, &v); - JS_FreeValue(isl_ctx, v); - if (JS_IsException(r)) { - /* Capability settle functions do not throw — defensive drop. */ - JSValue exc = JS_GetException(isl_ctx); - JS_FreeValue(isl_ctx, exc); - } else { - JS_FreeValue(isl_ctx, r); - } - isl_prom_wrap_free(w); -} - -/* Teardown half (registered path in isl_teardown_at_exit): free every - * still-pending wrap's engine values. Their waiter fibers are abandoned - * with the loop already over; nothing reads the nodes again. */ -static void isl_prom_wraps_teardown(void) { - while (isl_prom_wraps) isl_prom_wrap_free(isl_prom_wraps); -} - -ScrJsval *scr_jsval_from_promise(ScrPromise *p, int payload) { - isl_entry(); - JSValue funcs[2]; - JSValue prom = JS_NewPromiseCapability(isl_ctx, funcs); - if (JS_IsException(prom)) { - isl_bridge_exception(); - scr_promise_release(p); - return NULL; - } - IslPromWrap *w = malloc(sizeof *w); - if (!w) { - fprintf(stderr, "scriptc: out of memory\n"); - abort(); - } - w->p = p; - w->resolve = funcs[0]; - w->reject = funcs[1]; - w->payload = payload; - w->next = isl_prom_wraps; - isl_prom_wraps = w; - ScrPromise *waiter = scr_async_spawn_after(w->p, isl_prom_wrap_entry, w); - scr_promise_release(waiter); /* the waiter never rejects; nobody awaits it */ - return isl_cell_new(prom); -} - -/* ── the promise bridge, island → static (awaiting package promises) ── - * The reverse of scr_jsval_from_promise: a PACKAGE call's promise lives - * in the engine, and static code awaiting (or .catch/.finally-chaining) - * it needs a real ScrPromise. scr_jsval_bridge_promise mints a pending - * one and subscribes through the pinned ISL_H_THEN helper — - * Promise.resolve(p).then(onF, onR), so thenables and plain values behave - * exactly like `await` treats them — with two engine functions sharing a - * box that owns the static promise. Fulfillment settles it with the - * retained value cell (or void); rejection converts the reason exactly - * like a bridged exception (engine Errors become ScrErrors picked by - * name) and rejects. The settle callbacks run as engine jobs, which the - * loop drains at quiescence — parked awaiters wake through the ordinary - * ready queue. - * - * Ledger one-voice: the .then marks the ENGINE promise handled (the - * island's rejection tracker rescinds or never tracks it), and the - * rejected static promise enters the STATIC ledger at settle — exactly - * one world reports a never-observed rejection. The derived promise the - * helper's .then creates is dropped unobserved, but it can never reject: - * onR returns normally after rejecting the static side. - * - * Lifetime: the box is engine-owned (its finalizer releases the static - * promise), so a bridge whose engine promise never settles frees cleanly - * at engine teardown — before the RC audit — with no registry needed. A - * never-settling engine promise queues no jobs, so a fiber parked on its - * bridge does not keep the loop alive: exhaustion abandons the fiber and - * the process exits 0, byte-identical to Node's await-forever. */ - -typedef struct { - ScrPromise *p; /* the static promise this bridge settles, +1 */ - int payload; /* SCR_ISLP_JSVAL or SCR_ISLP_VOID */ -} IslBridge; - -static JSClassID isl_bridge_class_id = 0; - -static void isl_bridge_finalizer(JSRuntime *rt, JSValueConst val) { - (void)rt; - IslBridge *b = JS_GetOpaque(val, isl_bridge_class_id); - if (b) { - scr_promise_release(b->p); - free(b); - } -} - -static const JSClassDef isl_bridge_class = { - .class_name = "ScrPromiseBridge", - .finalizer = isl_bridge_finalizer, -}; - -static void isl_register_bridge_class(void) { - JS_NewClassID(isl_rt, &isl_bridge_class_id); - JS_NewClass(isl_rt, isl_bridge_class_id, &isl_bridge_class); -} - -/* onF (magic 0) / onR (magic 1). Runs as an engine job; argv[0] is the - * settlement value/reason (borrowed). The static promise settles at most - * once (.then invokes exactly one callback, once) — its own - * first-settle-wins check backstops that anyway. */ -static JSValue isl_bridge_settle(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv, int magic, JSValueConst *func_data) { - (void)this_val; - IslBridge *b = JS_GetOpaque(func_data[0], isl_bridge_class_id); - if (!b) return JS_UNDEFINED; - JSValueConst v = argc > 0 ? argv[0] : JS_UNDEFINED; - if (magic == 0) { - if (b->payload == SCR_ISLP_JSVAL) { - /* fulfill_ref takes the +1 cell; awaiters retain their own out. */ - scr_promise_fulfill_ref(b->p, isl_cell_new(JS_DupValue(ctx, v)), - scr_jsval_retain_v, scr_jsval_release_v, NULL); - } else if (b->payload == SCR_ISLP_JSVAL_ARR) { - /* An `any[]`-declared fulfillment (the inferred loadPlugins return): - * the engine array exits Array.isArray-gated, elements BY REFERENCE - * (the jsval-element-array exit). A lying fulfillment (non-array) - * REJECTS the static promise with the boundary TypeError — - * trust-but-verify at the settle, like every dyn→static edge. */ - ScrJsval *cell = isl_cell_new(JS_DupValue(ctx, v)); - ScrArr *arr = scr_jsval_exit_jsval_arr(cell); - scr_jsval_release(cell); - if (!arr) { - scr_promise_reject_pending(b->p); - } else { - scr_promise_fulfill_ref(b->p, arr, scr_arr_retain_v, scr_arr_release_v, NULL); - } - } else { - scr_promise_fulfill_void(b->p); - } - } else { - /* The reason crosses like a bridged exception, then moves out of the - * (transiently used) current cell into the promise's rejection. */ - isl_throw_reason(v); - scr_promise_reject_pending(b->p); - } - return JS_UNDEFINED; -} - -ScrPromise *scr_jsval_bridge_promise(ScrJsval *v, int payload) { - isl_entry(); - IslBridge *b = malloc(sizeof *b); - if (!b) { - fprintf(stderr, "scriptc: out of memory\n"); - abort(); - } - ScrPromise *p = scr_promise_new(); - b->p = scr_promise_retain(p); - b->payload = payload; - JSValue box = JS_NewObjectClass(isl_ctx, isl_bridge_class_id); - JS_SetOpaque(box, b); - JSValueConst data[1] = {box}; - JSValue on_f = JS_NewCFunctionData(isl_ctx, isl_bridge_settle, 1, 0, 1, data); - JSValue on_r = JS_NewCFunctionData(isl_ctx, isl_bridge_settle, 1, 1, 1, data); - JS_FreeValue(isl_ctx, box); /* each callback's func_data holds its own ref */ - JSValue args[3] = {v->v, on_f, on_r}; - JSValue r = JS_Call(isl_ctx, isl_helpers[ISL_H_THEN], JS_UNDEFINED, 3, args); - JS_FreeValue(isl_ctx, on_f); - JS_FreeValue(isl_ctx, on_r); - if (JS_IsException(r)) { - /* Promise.resolve().then on well-formed callbacks cannot throw; an - * engine-level surprise (OOM) bridges like any exception. */ - isl_bridge_exception(); - scr_promise_release(p); - return NULL; - } - JS_FreeValue(isl_ctx, r); - return p; -} - -/* Island-native literals. JS_SetProperty/JS_SetPropertyUint32 CONSUME the - * value — dup, the caller's cells keep their own references. JS_ValueToAtom - * borrows. */ -ScrJsval *scr_jsval_obj_lit(int npairs, ScrJsval **kv) { - isl_entry(); - JSValue o = JS_NewObject(isl_ctx); - for (int i = 0; i < npairs; i++) { - JSAtom k = JS_ValueToAtom(isl_ctx, kv[2 * i]->v); - JS_SetProperty(isl_ctx, o, k, JS_DupValue(isl_ctx, kv[2 * i + 1]->v)); - JS_FreeAtom(isl_ctx, k); - } - return isl_cell_new(o); -} - -/* The engine-native TemplateStringsArray for an island tag call: `kv` - * carries n cooked strings then n raw strings — a fresh array whose - * `.raw` property holds the raw spellings, exactly the object a tagged - * template hands its tag (a JSON marshal would drop `.raw`, and tags - * dispatch on it). */ -ScrJsval *scr_jsval_tpl_strings(int n, ScrJsval **kv) { - isl_entry(); - JSValue cooked = JS_NewArray(isl_ctx); - JSValue raw = JS_NewArray(isl_ctx); - for (int i = 0; i < n; i++) { - JS_SetPropertyUint32(isl_ctx, cooked, (uint32_t)i, JS_DupValue(isl_ctx, kv[i]->v)); - JS_SetPropertyUint32(isl_ctx, raw, (uint32_t)i, JS_DupValue(isl_ctx, kv[n + i]->v)); - } - JS_SetPropertyStr(isl_ctx, cooked, "raw", raw); /* consumes raw */ - return isl_cell_new(cooked); -} - -/* Spread completion for an island-native literal: copies `src`'s own - * enumerable properties onto `obj` — the engine's own Object.assign (the - * spec's CopyDataProperties; null/undefined sources spread nothing) — and - * answers the target retained (+1). NULL with the exception pending when - * a source getter throws. */ -ScrJsval *scr_jsval_obj_spread(ScrJsval *obj, ScrJsval *src) { - isl_entry(); - if (JS_IsNull(src->v) || JS_IsUndefined(src->v)) return scr_jsval_retain(obj); - JSValue global = JS_GetGlobalObject(isl_ctx); - JSValue object_ctor = JS_GetPropertyStr(isl_ctx, global, "Object"); - JS_FreeValue(isl_ctx, global); - JSValue assign = JS_GetPropertyStr(isl_ctx, object_ctor, "assign"); - JS_FreeValue(isl_ctx, object_ctor); - JSValueConst args[2] = { obj->v, src->v }; - JSValue r = JS_Call(isl_ctx, assign, JS_UNDEFINED, 2, args); - JS_FreeValue(isl_ctx, assign); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - JS_FreeValue(isl_ctx, r); /* assign answers the target itself */ - return scr_jsval_retain(obj); -} - -/* Getter completion for an island-native literal: defines `key` on `obj` - * as an engine GETTER invoking `fn` (a marshaled host function), and - * answers the object retained (+1) so builds chain. Enumerable + - * configurable, no setter — exactly a JS object-literal `get k() {}`. */ -ScrJsval *scr_jsval_define_getter(ScrJsval *obj, ScrJsval *key, ScrJsval *fn) { - isl_entry(); - JSAtom k = JS_ValueToAtom(isl_ctx, key->v); - JS_DefinePropertyGetSet(isl_ctx, obj->v, k, JS_DupValue(isl_ctx, fn->v), JS_UNDEFINED, - JS_PROP_ENUMERABLE | JS_PROP_CONFIGURABLE); - JS_FreeAtom(isl_ctx, k); - return scr_jsval_retain(obj); -} - -ScrJsval *scr_jsval_arr_lit(int n, ScrJsval **elems) { - isl_entry(); - JSValue a = JS_NewArray(isl_ctx); - for (int i = 0; i < n; i++) { - JS_SetPropertyUint32(isl_ctx, a, (uint32_t)i, JS_DupValue(isl_ctx, elems[i]->v)); - } - return isl_cell_new(a); -} - -/* ── the module system (embedded npm code) ──────────────────────────── - * The engine's module loader and a CommonJS require shim, both resolving - * exclusively from the emitted tables (isl_mods/isl_edges — no filesystem). - * ESM sources compile natively; CJS modules run through a JS require shim - * (new Function over the embedded source, module.exports cached) and enter - * the ESM graph through an ESM facade SYNTHESIZED AT BUILD TIME (the - * ScrIslandModule's esm field): default is module.exports itself and the - * named exports are the ones the compiler's port of Node's vendored CJS - * lexer found in the source, so `import { x } from 'cjs'` inside the - * embedded graph links exactly like Node — including the REFUSALS: a name - * the lexer cannot see is absent from the facade and the engine's - * instantiate fails where Node's would. The import BOUNDARY below additionally - * takes named exports off module.exports directly, so user-level named - * imports of CJS-only packages work like Node too. - * Node builtins are served as wrappers over island shims defined in the - * bootstrap: events, path, process, os, diagnostics_channel, fs (stubs), - * child_process (throwing stubs), module (createRequire over the embedded - * tables), url (fileURLToPath/pathToFileURL). The process shim bridges REAL - * argv/env/stdout/stderr/exit - * through host functions, argv in the same ["scriptc", argv[0], ...] - * shape as the static world's process.argv. */ - -/* mingw-w64 ships a unistd.h too (getcwd, isatty — scr_lib.c leans on the - * same one); the process-surface hooks below otherwise delegate to the - * scr_lib.c helpers, whose win32 arms already exist. winsock2.h is the - * hostname hook's gethostname on win32. */ -#include -/* the fs bridge's constants hook (O_* open flags, S_IF* type bits), the - * readlink op's errno, and os.constants' signal table */ -#include -#include -#include -#include -#ifdef _WIN32 -#include -#endif - -#define ISL_IMPORT_BASE "" - -static bool isl_booted = false; -static JSValue isl_cjs_import; /* (key, name) → export, CJS/JSON entries */ - -static char *isl_module_normalize(JSContext *ctx, const char *base, - const char *name, void *opaque) { - (void)opaque; - const char *target = NULL; - if (strncmp(name, "node:", 5) == 0) { - target = name; /* builtins are their own keys */ - } else if (strcmp(base, ISL_IMPORT_BASE) == 0) { - target = name; /* the import boundary passes resolved keys */ - } else { - target = isl_edge_find(base, name, 1 /* import */); - } - if (!target) { - JS_ThrowReferenceError(ctx, - "cannot resolve module '%s' from '%s' " - "(scriptc embeds npm code at build time)", - name, base); - return NULL; - } - return js_strdup(ctx, target); -} - -/* import.meta.resolve is module-relative, so each compiled module receives a - * tiny closure carrying its emitted key. The bootstrap owns the JavaScript - * resolution policy (builtins, URL-like names, relative URLs, and known - * embedded edges); this C shim only supplies the lexical module identity. */ -static JSValue isl_import_meta_resolve(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv, int magic, - JSValueConst *func_data) { - (void)this_val; - (void)magic; - JSValue global = JS_GetGlobalObject(ctx); - JSValue fn = JS_GetPropertyStr(ctx, global, "__scr_import_meta_resolve"); - JS_FreeValue(ctx, global); - if (JS_IsException(fn)) return fn; - JSValueConst args[2] = { - func_data[0], argc > 0 ? argv[0] : JS_UNDEFINED, - }; - JSValue out = JS_Call(ctx, fn, JS_UNDEFINED, 2, args); - JS_FreeValue(ctx, fn); - return out; -} - -/* Named export lists for the builtin ESM wrappers. The wrapper source is - * `const m = __scr_require("node:x"); export default m; export const - * {…} = m;` — the shims themselves live in the bootstrap below. The - * implementation-owned manifest generates this exact registry, so the - * runtime and compatibility ledger cannot drift. */ -#include "scr_island_manifest.h" - -static JSModuleDef *isl_module_load(JSContext *ctx, const char *name, void *opaque) { - (void)opaque; - const char *src = NULL; - size_t len = 0; - /* Sized for the widest wrapper: node:util/types' export list alone is - * ~700 bytes. */ - char buf[2048]; - char *heap = NULL; - if (strncmp(name, "node:", 5) == 0) { - const char *exports = NULL; - for (size_t i = 0; i < sizeof isl_builtins / sizeof isl_builtins[0]; i++) { - if (strcmp(isl_builtins[i].name, name) == 0) { - exports = isl_builtins[i].exports; - break; - } - } - if (!exports) { - JS_ThrowReferenceError(ctx, "the island does not provide the '%s' builtin", name); - return NULL; - } - snprintf(buf, sizeof buf, - "const m=globalThis.__scr_require(\"%s\");export default m;" - "export const{%s}=m;", - name, exports); - src = buf; - len = strlen(buf); - } else { - const ScrIslandModule *m = isl_mod_find(name); - if (!m) { - JS_ThrowReferenceError(ctx, "module '%s' is not embedded", name); - return NULL; - } - if (m->format == 0) { - src = isl_mod_text(m, false, &len); - if (!src) { - JS_ThrowInternalError(ctx, "embedded module '%s' failed to inflate", name); - return NULL; - } - } else if (m->esm) { - /* CJS entering the ESM graph: the facade synthesized at BUILD time — - * default plus the lexed named exports (Node's interop exactly). */ - src = isl_mod_text(m, true, &len); - if (!src) { - JS_ThrowInternalError(ctx, "embedded module '%s' failed to inflate", name); - return NULL; - } - } else { - /* JSON (or a facade-less CJS module from an older emitter) entering - * the ESM graph: Node's default-only interop. */ - size_t n = strlen(name) + 64; - heap = malloc(n); - if (!heap) { - JS_ThrowOutOfMemory(ctx); - return NULL; - } - snprintf(heap, n, "const m=globalThis.__scr_require(\"%s\");export default m;", name); - src = heap; - len = strlen(heap); - } - } - JSValue v = JS_Eval(ctx, src, len, name, JS_EVAL_TYPE_MODULE | JS_EVAL_FLAG_COMPILE_ONLY); - free(heap); - if (JS_IsException(v)) return NULL; - JSModuleDef *def = JS_VALUE_GET_PTR(v); - /* File-backed metadata uses the same converters as node:url. Embedded - * keys are resolved paths, including spaces, percent signs and Unicode; - * concatenating file:// would reinterpret those as URL syntax. */ - JSValue meta = JS_GetImportMeta(ctx, def); - if (!JS_IsException(meta)) { - JSValue url; - bool file_backed = name[0] == '/' || - (name[0] && name[1] == ':' && (name[2] == '/' || name[2] == '\\')) || - (name[0] == '\\' && name[1] == '\\'); - if (file_backed) { - ScrStr *path = scr_str_new(name, strlen(name)); - ScrUrl *parsed = scr_url_from_path(path); - ScrStr *href = parsed ? scr_url_href(parsed) : NULL; - ScrStr *dir = scr_path_dirname(path); - if (!href || !dir) { - if (href) scr_str_release(href); - if (dir) scr_str_release(dir); - if (parsed) scr_url_release(parsed); - scr_str_release(path); - isl_throw_pending(ctx); - JS_FreeValue(ctx, meta); - JS_FreeValue(ctx, v); - return NULL; - } - JS_SetPropertyStr(ctx, meta, "dirname", JS_NewStringLen(ctx, dir->data, dir->len)); - JS_SetPropertyStr(ctx, meta, "filename", JS_NewStringLen(ctx, path->data, path->len)); - url = JS_NewStringLen(ctx, href->data, href->len); - scr_str_release(href); - scr_str_release(dir); - scr_url_release(parsed); - scr_str_release(path); - } else { - url = JS_NewString(ctx, name); - } - JS_SetPropertyStr(ctx, meta, "main", JS_NewBool(ctx, isl_main_module && strcmp(isl_main_module, name) == 0)); - JSValue key = JS_NewString(ctx, name); - JSValueConst data[1] = {key}; - JSValue resolve_fn = JS_NewCFunctionData(ctx, isl_import_meta_resolve, 1, - 0, 1, data); - JS_FreeValue(ctx, key); /* resolve_fn's func_data retains it */ - JS_DefinePropertyValueStr(ctx, resolve_fn, "name", JS_NewString(ctx, "resolve"), JS_PROP_CONFIGURABLE); - JS_SetPropertyStr(ctx, meta, "resolve", resolve_fn); /* consumed */ - JS_SetPropertyStr(ctx, meta, "url", url); /* consumed */ - JS_FreeValue(ctx, meta); - } - JS_FreeValue(ctx, v); - return def; -} - -/* ── host functions for the bootstrap ───────────────────────────────── - * The engine's ownership rules: argv values are borrowed, results owned. */ - -static JSValue isl_host_source(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - const char *key = JS_ToCString(ctx, argv[0]); - if (!key) return JS_EXCEPTION; - const ScrIslandModule *m = isl_mod_find(key); - if (!m) { - JS_FreeCString(ctx, key); - return JS_UNDEFINED; - } - size_t len = 0; - const char *src = isl_mod_text(m, false, &len); - if (!src) { - JSValue e = JS_ThrowInternalError(ctx, "embedded module '%s' failed to inflate", key); - JS_FreeCString(ctx, key); - return e; - } - JS_FreeCString(ctx, key); - JSValue arr = JS_NewArray(ctx); - JS_SetPropertyUint32(ctx, arr, 0, JS_NewStringLen(ctx, src, len)); - JS_SetPropertyUint32(ctx, arr, 1, JS_NewInt32(ctx, m->format)); - return arr; -} - -static JSValue isl_host_resolve(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - const char *from = JS_ToCString(ctx, argv[0]); - const char *spec = from ? JS_ToCString(ctx, argv[1]) : NULL; - if (!from || !spec) { - if (from) JS_FreeCString(ctx, from); - return JS_EXCEPTION; - } - /* The require shim asks for kind 2; import.meta.resolve passes a true third - * argument and asks for kind 1, preserving dual-package conditions. */ - int want = argc > 2 && JS_ToBool(ctx, argv[2]) > 0 ? 1 : 2; - const char *to = strncmp(spec, "node:", 5) == 0 ? spec : isl_edge_find(from, spec, want); - JSValue r = to ? JS_NewString(ctx, to) : JS_UNDEFINED; - JS_FreeCString(ctx, from); - JS_FreeCString(ctx, spec); - return r; -} - -static JSValue isl_host_argv(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - /* The static world's shape exactly: ["scriptc", argv[0], argv[1], ...]. */ - JSValue arr = JS_NewArray(ctx); - JS_SetPropertyUint32(ctx, arr, 0, JS_NewString(ctx, "scriptc")); - int n = scr_lib_arg_count(); - for (int i = 0; i < n; i++) { - JS_SetPropertyUint32(ctx, arr, (uint32_t)(i + 1), JS_NewString(ctx, scr_lib_arg(i))); - } - return arr; -} - -static JSValue isl_host_env(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - /* scr_env_pairs (scr_lib.c): the SAME snapshot the static world's - * process.env builds from — environ order on POSIX, the WIN32 - * environment block (hidden "=C:" per-drive entries skipped, exactly - * libuv) on Windows. ScrStr data is NUL-terminated, so the key can go - * straight into JS_SetPropertyStr. */ - JSValue obj = JS_NewObject(ctx); - ScrArr *pairs = scr_env_pairs(); - size_t n = (size_t)scr_arr_len(pairs); - for (size_t i = 0; i + 1 < n; i += 2) { - ScrStr *k = scr_arr_get_ref(pairs, (double)i); - ScrStr *v = scr_arr_get_ref(pairs, (double)(i + 1)); - JS_DefinePropertyValueStr(ctx, obj, k->data, JS_NewStringLen(ctx, v->data, v->len), JS_PROP_C_W_E); - scr_str_release(k); - scr_str_release(v); - } - scr_arr_release(pairs); - return obj; -} - -static JSValue isl_host_write(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t fd = 1; - JS_ToInt32(ctx, &fd, argv[0]); - size_t len; - const char *s = JS_ToCStringLen(ctx, &len, argv[1]); - if (!s) return JS_EXCEPTION; - scr_stdio_write(fd, s, len); - JS_FreeCString(ctx, s); - return JS_TRUE; -} - -/* Whole-input stdin read (fd 0 to EOF), returned as an ArrayBuffer — the - * island's process.stdin Readable pushes it as one Buffer chunk on first - * pull. Blocking, like Node's stdin read when a pipe's writer is slow; - * a TTY caller that never reads (get-stdin's isTTY early-return) never - * gets here. Bytes, not text: invalid UTF-8 must round-trip. */ -static JSValue isl_host_read_stdin(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - size_t cap = 65536; - size_t len = 0; - uint8_t *buf = malloc(cap); - if (!buf) return JS_ThrowOutOfMemory(ctx); - for (;;) { - if (len == cap) { - cap *= 2; - uint8_t *next = realloc(buf, cap); - if (!next) { - free(buf); - return JS_ThrowOutOfMemory(ctx); - } - buf = next; - } - ssize_t n = read(0, buf + len, cap - len); - if (n < 0) { - if (errno == EINTR) continue; - free(buf); - return JS_ThrowTypeError(ctx, "reading stdin failed: %s", strerror(errno)); - } - if (n == 0) break; - len += (size_t)n; - } - JSValue ab = JS_NewArrayBufferCopy(ctx, buf, len); - free(buf); - return ab; -} - -static JSValue isl_host_exit(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t code = 0; - JS_ToInt32(ctx, &code, argv[0]); - /* Node's process.exit: no unwinding, no destructors — and no atexit - * teardown here either (tearing the engine down from inside JS_Call - * would free live frames). The RC/engine audits are documented to not - * run on this path. */ - fflush(NULL); - _exit(code); -} - -/* The island process shim's implicit exit status (process.exitCode): - * mirrored here by the shim's setter, read by the emitted main after the - * loop drains — Node's a-program-that-sets-it-and-returns contract. */ -static int isl_exit_code = 0; -static size_t isl_exit_code_version = 0; - -int scr_island_exit_code(void) { return isl_exit_code; } -size_t scr_island_exit_code_version(void) { return isl_exit_code_version; } - -static JSValue isl_host_set_exit_code(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t code = 0; - JS_ToInt32(ctx, &code, argv[0]); - isl_exit_code = code; - isl_exit_code_version++; - return JS_UNDEFINED; -} - -static JSValue isl_host_isatty(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t fd = 1; - JS_ToInt32(ctx, &fd, argv[0]); - return JS_NewBool(ctx, isatty(fd) == 1); -} - -static JSValue isl_host_columns(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t fd = 1; - JS_ToInt32(ctx, &fd, argv[0]); - /* scr_process_columns (scr_lib.c): ioctl(TIOCGWINSZ) on POSIX, - * GetConsoleScreenBufferInfo on Windows — the static world's - * process.stdout.columns source of truth; -1 (non-TTY / refused) - * stays this hook's historical 0. */ - double cols = scr_process_columns((double)fd); - return JS_NewInt32(ctx, cols > 0 ? (int32_t)cols : 0); -} - -static JSValue isl_host_cwd(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - char buf[4096]; - if (!getcwd(buf, sizeof buf)) buf[0] = '\0'; - return JS_NewString(ctx, buf); -} - -static JSValue isl_host_platform(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - ScrStr *p = scr_process_platform(); /* +1 interned; matches the static world */ - JSValue r = JS_NewStringLen(ctx, p->data, p->len); - scr_str_release(p); - return r; -} - -/* os.homedir()/os.tmpdir() bridge to the SAME runtime functions the static - * lowerings call (scr_lib.c) — one implementation, one answer. */ -static JSValue isl_host_homedir(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - ScrStr *s = scr_os_homedir(); /* +1 */ - JSValue r = JS_NewStringLen(ctx, s->data, s->len); - scr_str_release(s); - return r; -} - -static JSValue isl_host_tmpdir(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - ScrStr *s = scr_os_tmpdir(); /* +1 */ - JSValue r = JS_NewStringLen(ctx, s->data, s->len); - scr_str_release(s); - return r; -} - -static JSValue isl_host_arch(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - /* Node's process.arch/os.arch() names, decided at compile time. */ -#if defined(__aarch64__) || defined(__arm64__) - return JS_NewString(ctx, "arm64"); -#elif defined(__x86_64__) - return JS_NewString(ctx, "x64"); -#elif defined(__i386__) - return JS_NewString(ctx, "ia32"); -#else - return JS_NewString(ctx, "unknown"); -#endif -} - -/* The fs bridge: one dispatcher over the SAME scr_fs_* implementations - * the static lowerings call (Node-shaped errors including the errno-name - * code cross through isl_throw_pending). String args arrive as engine - * strings, data as Uint8Arrays; stats come back as a compact array the - * JS shim shapes into Node's Stats. */ -static ScrStr *isl_arg_str(JSContext *ctx, JSValueConst v) { - size_t len; - const char *s = JS_ToCStringLen(ctx, &len, v); - if (!s) return NULL; - ScrStr *out = scr_str_new(s, len); - JS_FreeCString(ctx, s); - return out; -} - -/* Dotenv and environment mutations share the native process environment. - * The JS layer validates types before these host calls. */ -static JSValue isl_host_env_get(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; (void)argc; - ScrStr *key = isl_arg_str(ctx, argv[0]); - if (!key) return JS_EXCEPTION; - ScrStr *value = scr_env_get(key); - scr_str_release(key); - JSValue result = value ? JS_NewStringLen(ctx, value->data, value->len) : JS_UNDEFINED; - scr_str_release(value); - return result; -} - -static JSValue isl_host_chdir(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; (void)argc; - ScrStr *directory = isl_arg_str(ctx, argv[0]); - if (!directory) return JS_EXCEPTION; - scr_process_chdir(directory); - scr_str_release(directory); - return scr_exc_pending() ? isl_throw_pending(ctx) : JS_UNDEFINED; -} - -static JSValue isl_host_env_set(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; (void)argc; - ScrStr *key = isl_arg_str(ctx, argv[0]); - if (!key) return JS_EXCEPTION; - ScrStr *value = isl_arg_str(ctx, argv[1]); - if (!value) { scr_str_release(key); return JS_EXCEPTION; } - scr_env_set(key, value); - scr_str_release(key); - scr_str_release(value); - return JS_TRUE; -} - -static JSValue isl_host_env_delete(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; (void)argc; - ScrStr *key = isl_arg_str(ctx, argv[0]); - if (!key) return JS_EXCEPTION; - scr_env_unset(key); - scr_str_release(key); - return JS_TRUE; -} - -static JSValue isl_host_system_error_entries(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)ctx; (void)this_val; (void)argc; (void)argv; - ScrDyn *entries = scr_util_system_error_entries(); - JSValue result = isl_from_dyn(entries); - scr_dyn_release(entries); - return result; -} - -static JSValue isl_host_system_error_info(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - if (argc != 2) return JS_ThrowTypeError(ctx, "invalid system error bridge arity"); - double number; - if (JS_ToFloat64(ctx, &number, argv[0]) < 0) return JS_EXCEPTION; - ScrDyn value = {0}; value.kind = SCR_DYN_NUM; value.v.num = number; - ScrStr *text = JS_ToBool(ctx, argv[1]) ? scr_util_system_error_message(&value) : scr_util_system_error_name(&value); - if (!text) return isl_throw_pending(ctx); - JSValue result = JS_NewStringLen(ctx, text->data, text->len); - scr_str_release(text); - return result; -} - -static JSValue isl_host_parse_env(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; (void)argc; - ScrDyn *content = isl_dyn_from_value(argv[0]); - ScrDyn *parsed = scr_util_parse_env(content); - scr_dyn_release(content); - if (!parsed) return isl_throw_pending(ctx); - /* Preserve embedded NUL keys: JS_SetPropertyStr would truncate them. */ - JSValue result = JS_NewObject(ctx); - for (size_t i = 0; i < parsed->v.obj.len; i++) { - const ScrDynEntry *entry = &parsed->v.obj.entries[i]; - JSAtom key = JS_NewAtomLen(ctx, entry->key, entry->key_len); - int status = JS_SetProperty(ctx, result, key, isl_from_dyn(entry->value)); - JS_FreeAtom(ctx, key); - if (status < 0) { JS_FreeValue(ctx, result); result = JS_EXCEPTION; break; } - } - scr_dyn_release(parsed); - return result; -} - -static JSValue isl_host_transcode(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - if (argc != 3) return JS_ThrowTypeError(ctx, "invalid transcode bridge arity"); - size_t length = 0; - uint8_t *data = JS_GetUint8Array(ctx, &length, argv[0]); - if (!data && length) return JS_EXCEPTION; - ScrBytes bytes = {0}; - bytes.elem = SCR_BYTES_U8; bytes.len = length; bytes.data = data; - ScrDyn source = {0}; - source.kind = SCR_DYN_BYTES; source.v.bytes = &bytes; - ScrDyn *from = isl_dyn_from_value(argv[1]), *to = isl_dyn_from_value(argv[2]); - ScrBytes *result = scr_buffer_transcode(&source, from, to); - scr_dyn_release(from); scr_dyn_release(to); - if (!result) { - JSValue error = isl_pending_to_value(ctx); - JSValue code = JS_GetPropertyStr(ctx, error, "code"); - const char *name = JS_ToCString(ctx, code); - if (name && strcmp(name, "U_INVALID_CHAR_FOUND") == 0) JS_SetPropertyStr(ctx, error, "errno", JS_NewInt32(ctx, 10)); - else if (name && strcmp(name, "U_ILLEGAL_ARGUMENT_ERROR") == 0) JS_SetPropertyStr(ctx, error, "errno", JS_NewInt32(ctx, 1)); - JS_FreeCString(ctx, name); JS_FreeValue(ctx, code); - return JS_Throw(ctx, error); - } - JSValue value = JS_NewUint8ArrayCopy(ctx, result->data, result->len); - scr_bytes_release(result); - return value; -} - -static JSValue isl_host_load_env_file(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - ScrDyn *path; - if (argc > 1 && JS_ToBool(ctx, argv[1])) { - size_t len; - uint8_t *data = JS_GetUint8Array(ctx, &len, argv[0]); - if (!data) return JS_EXCEPTION; - ScrBytes *bytes = scr_bytes_new(SCR_BYTES_U8, (double)len); - if (len) memcpy(bytes->data, data, len); - path = scr_dyn_new_bytes(bytes); - path->buffer = argc > 2 && JS_ToBool(ctx, argv[2]); - scr_bytes_release(bytes); - } else path = isl_dyn_from_value(argc ? argv[0] : JS_UNDEFINED); - scr_process_load_env_file(path); - scr_dyn_release(path); - return scr_exc_pending() ? isl_throw_pending(ctx) : JS_UNDEFINED; -} - -static JSValue isl_host_fs(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - const char *op = JS_ToCString(ctx, argv[0]); - if (!op) return JS_EXCEPTION; - JSValue ret = JS_UNDEFINED; - ScrStr *a = NULL; - ScrStr *b = NULL; - if (argc > 1 && JS_IsString(argv[1])) { - a = isl_arg_str(ctx, argv[1]); - if (!a) { - JS_FreeCString(ctx, op); - return JS_EXCEPTION; - } - } - if (strcmp(op, "open") == 0) { - double flags = 0, mode = 0666; - JS_ToFloat64(ctx, &flags, argv[2]); - JS_ToFloat64(ctx, &mode, argv[3]); - ret = JS_NewFloat64(ctx, scr_fs_open_native(a, flags, mode)); - } else if (strcmp(op, "close") == 0 || strcmp(op, "fsync") == 0 || - strcmp(op, "fdatasync") == 0 || strcmp(op, "ftruncate") == 0 || - strcmp(op, "fchmod") == 0) { - double fd = 0, value = 0; - JS_ToFloat64(ctx, &fd, argv[1]); - if (argc > 2) JS_ToFloat64(ctx, &value, argv[2]); - if (strcmp(op, "close") == 0) scr_fs_close(fd); - else if (strcmp(op, "fsync") == 0) scr_fs_fsync(fd); - else if (strcmp(op, "fdatasync") == 0) scr_fs_fdatasync(fd); - else if (strcmp(op, "ftruncate") == 0) scr_fs_ftruncate(fd, value); - else scr_fs_fchmod(fd, value); - } else if (strcmp(op, "read") == 0 || strcmp(op, "write") == 0 || - strcmp(op, "readv") == 0 || strcmp(op, "writev") == 0) { - double fd = 0, offset = 0, length = 0, position = -1; - JS_ToFloat64(ctx, &fd, argv[1]); - JS_ToFloat64(ctx, &offset, argv[3]); - JS_ToFloat64(ctx, &length, argv[4]); - JS_ToFloat64(ctx, &position, argv[5]); - size_t size = 0; - uint8_t *data = JS_GetUint8Array(ctx, &size, argv[2]); - if (data || size == 0) { - ScrBytes buffer = {SIZE_MAX, size, SCR_BYTES_U8, data, NULL}; - if (strcmp(op, "readv") == 0 && argc > 6 && JS_ToBool(ctx, argv[6])) { - scr_fs_throw(EINVAL, "read", NULL); - } else { - double n = op[0] == 'r' - ? strcmp(op, "readv") == 0 && length == 0 ? scr_fs_read_zero(fd, position) - : scr_fs_read_sync(fd, &buffer, offset, length, position) - : scr_fs_write_sync(fd, &buffer, offset, length, position); - ret = JS_NewFloat64(ctx, n); - } - } else ret = JS_EXCEPTION; - } else if (strcmp(op, "readFile") == 0) { - double fd = 0; - if (!a) JS_ToFloat64(ctx, &fd, argv[1]); - ScrBytes *data = a ? scr_fs_read_file_bytes(a) : scr_fs_read_fd_bytes(fd); - if (data) { - ret = JS_NewUint8ArrayCopy(ctx, data->data, (size_t)scr_bytes_len(data)); - scr_bytes_release(data); - } - } else if (strcmp(op, "writeFile") == 0 || strcmp(op, "appendFile") == 0) { - size_t len = 0; - uint8_t *buf = JS_GetUint8Array(ctx, &len, argv[2]); - if (buf || len == 0) { - if (a) { - ScrStr *data = scr_str_new((const char *)buf, len); - if (strcmp(op, "writeFile") == 0) scr_fs_write_file(a, data); - else scr_fs_append_file(a, data); - scr_str_release(data); - } else { - double fd = 0; - JS_ToFloat64(ctx, &fd, argv[1]); - ScrBytes buffer = {SIZE_MAX, len, SCR_BYTES_U8, buf, NULL}; - size_t at = 0; - while (at < len && !scr_exc_pending()) { - double n = scr_fs_write_sync(fd, &buffer, (double)at, (double)(len - at), -1); - if (n <= 0) { if (!scr_exc_pending()) scr_fs_throw(EIO, "write", NULL); break; } - at += (size_t)n; - } - } - } else { - ret = JS_EXCEPTION; - } - } else if (strcmp(op, "exists") == 0) { - ret = JS_NewBool(ctx, scr_fs_exists(a)); - } else if (strcmp(op, "realpath") == 0) { - ScrStr *r = scr_fs_realpath(a); - if (r) { - ret = JS_NewStringLen(ctx, r->data, r->len); - scr_str_release(r); - } - } else if (strcmp(op, "mkdir") == 0) { - int32_t recursive = 0; - double mode = -1; - JS_ToInt32(ctx, &recursive, argv[2]); - JS_ToFloat64(ctx, &mode, argv[3]); - if (mode < 0) { - if (recursive) scr_fs_mkdir_recursive(a); - else scr_fs_mkdir(a); - } else { - if (recursive) scr_fs_mkdir_recursive_mode(a, mode); - else scr_fs_mkdir_mode(a, mode); - } - } else if (strcmp(op, "rm") == 0) { - int32_t recursive = 0; - int32_t force = 0; - JS_ToInt32(ctx, &recursive, argv[2]); - JS_ToInt32(ctx, &force, argv[3]); - scr_fs_rm_opts(a, recursive != 0, force != 0); - } else if (strcmp(op, "rmdir") == 0) { - scr_fs_rmdir(a); - } else if (strcmp(op, "unlink") == 0) { - scr_fs_unlink(a); - } else if (strcmp(op, "readdir") == 0) { - ScrArr *names = scr_fs_readdir(a); - if (names) { - JSValue arr = JS_NewArray(ctx); - size_t n = (size_t)scr_arr_len(names); - for (size_t i = 0; i < n; i++) { - ScrStr *name = scr_arr_get_ref(names, (double)i); - JS_SetPropertyUint32(ctx, arr, (uint32_t)i, JS_NewStringLen(ctx, name->data, name->len)); - scr_str_release(name); - } - scr_arr_release(names); - ret = arr; - } - } else if (strcmp(op, "scandir") == 0) { - ScrScandir *s = scr_fs_scandir(a); - if (s) { - JSValue arr = JS_NewArray(ctx); - size_t n = scr_fs_scandir_count(s); - for (size_t i = 0; i < n; i++) { - ScrStr *name = scr_fs_scandir_name(s, i); - JS_SetPropertyUint32(ctx, arr, (uint32_t)(i * 2), JS_NewStringLen(ctx, name->data, name->len)); - JS_SetPropertyUint32(ctx, arr, (uint32_t)(i * 2 + 1), JS_NewFloat64(ctx, scr_fs_scandir_type(s, i))); - scr_str_release(name); - } - scr_fs_scandir_free(s); - ret = arr; - } - } else if (strcmp(op, "stat") == 0 || strcmp(op, "lstat") == 0 || strcmp(op, "fstat") == 0) { - double fd = 0; - if (strcmp(op, "fstat") == 0) JS_ToFloat64(ctx, &fd, argv[1]); - ScrStats *st = strcmp(op, "fstat") == 0 ? scr_fs_fstat(fd) - : strcmp(op, "stat") == 0 ? scr_fs_stat(a) : scr_fs_lstat(a); - if (st) { - JSValue arr = JS_NewArray(ctx); - JS_SetPropertyUint32(ctx, arr, 0, JS_NewBool(ctx, scr_stats_is_file(st))); - JS_SetPropertyUint32(ctx, arr, 1, JS_NewBool(ctx, scr_stats_is_dir(st))); - JS_SetPropertyUint32(ctx, arr, 2, JS_NewBool(ctx, scr_stats_is_symlink(st))); - JS_SetPropertyUint32(ctx, arr, 3, JS_NewFloat64(ctx, scr_stats_size(st))); - JS_SetPropertyUint32(ctx, arr, 4, JS_NewFloat64(ctx, scr_stats_mtime_ms(st))); - JS_SetPropertyUint32(ctx, arr, 5, JS_NewFloat64(ctx, scr_stats_blocks(st))); - JS_SetPropertyUint32(ctx, arr, 6, JS_NewFloat64(ctx, scr_stats_nlink(st))); - JS_SetPropertyUint32(ctx, arr, 7, JS_NewFloat64(ctx, scr_stats_atime_ms(st))); - scr_stats_release(st); - ret = arr; - } - } else if (strcmp(op, "access") == 0) { - double mode = 0; - JS_ToFloat64(ctx, &mode, argv[2]); - scr_fs_access(a, mode); - } else if (strcmp(op, "mkdtemp") == 0) { - ScrStr *r = scr_fs_mkdtemp(a); - if (r) { - ret = JS_NewStringLen(ctx, r->data, r->len); - scr_str_release(r); - } - } else if (strcmp(op, "chmod") == 0) { - double mode = 0; - JS_ToFloat64(ctx, &mode, argv[2]); - scr_fs_chmod(a, mode); - } else if (strcmp(op, "readlink") == 0) { -#ifdef _WIN32 - scr_fs_throw(EINVAL, "readlink", a); -#else - char buf[4096]; - ssize_t n = readlink(a->data, buf, sizeof buf - 1); - if (n < 0) { - scr_fs_throw(errno, "readlink", a); - } else { - ret = JS_NewStringLen(ctx, buf, (size_t)n); - } -#endif - } else if (strcmp(op, "copyFile") == 0 || strcmp(op, "rename") == 0) { - b = isl_arg_str(ctx, argv[2]); - if (b) { - if (strcmp(op, "copyFile") == 0) scr_fs_copyfile(a, b); - else scr_fs_rename(a, b); - } else { - ret = JS_EXCEPTION; - } - } else { - JS_FreeCString(ctx, op); - if (a) scr_str_release(a); - return JS_ThrowReferenceError(ctx, "unknown island fs op"); - } - JS_FreeCString(ctx, op); - if (a) scr_str_release(a); - if (b) scr_str_release(b); - if (JS_IsException(ret)) return ret; - if (scr_exc_pending()) { - JS_FreeValue(ctx, ret); - return isl_throw_pending(ctx); - } - return ret; -} - -/* The path bridge: both of Node's implementations live in scr_path.c - * (the posix family and the byte-exact win32 port) — the island's path - * module rides them instead of re-porting. join/resolve pass the call's - * strings as an engine array. */ -static JSValue isl_host_path(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - const char *op = JS_ToCString(ctx, argv[0]); - if (!op) return JS_EXCEPTION; - int win32 = JS_ToBool(ctx, argv[1]); - JSValue ret = JS_UNDEFINED; - if (strcmp(op, "join") == 0 || strcmp(op, "resolve") == 0) { - JSValue lenv = JS_GetPropertyStr(ctx, argv[2], "length"); - uint32_t n = 0; - JS_ToUint32(ctx, &n, lenv); - JS_FreeValue(ctx, lenv); - ScrArr *parts = scr_arr_new(SCR_ELEM_STR, n); - bool ok = true; - for (uint32_t i = 0; i < n; i++) { - JSValue el = JS_GetPropertyUint32(ctx, argv[2], i); - ScrStr *s = isl_arg_str(ctx, el); - JS_FreeValue(ctx, el); - if (!s) { - ok = false; - break; - } - scr_arr_push_ref(parts, s); - } - if (ok) { - ScrStr *r = strcmp(op, "join") == 0 - ? (win32 ? scr_path_win32_join(parts) : scr_path_join(parts)) - : (win32 ? scr_path_win32_resolve(parts) : scr_path_resolve(parts)); - ret = JS_NewStringLen(ctx, r->data, r->len); - scr_str_release(r); - } else { - ret = JS_EXCEPTION; - } - scr_arr_release(parts); - } else { - ScrStr *a = isl_arg_str(ctx, argv[2]); - if (!a) { - JS_FreeCString(ctx, op); - return JS_EXCEPTION; - } - if (strcmp(op, "isAbsolute") == 0) { - ret = JS_NewBool(ctx, win32 ? scr_path_win32_is_absolute(a) : scr_path_is_absolute(a)); - } else if (strcmp(op, "basename") == 0) { - ScrStr *suffix = isl_arg_str(ctx, argv[3]); - if (suffix) { - ScrStr *r = win32 ? scr_path_win32_basename(a, suffix) : scr_path_basename(a, suffix); - ret = JS_NewStringLen(ctx, r->data, r->len); - scr_str_release(r); - scr_str_release(suffix); - } else { - ret = JS_EXCEPTION; - } - } else if (strcmp(op, "relative") == 0) { - ScrStr *to = isl_arg_str(ctx, argv[3]); - if (to) { - ScrStr *r = win32 ? scr_path_win32_relative(a, to) : scr_path_relative(a, to); - ret = JS_NewStringLen(ctx, r->data, r->len); - scr_str_release(r); - scr_str_release(to); - } else { - ret = JS_EXCEPTION; - } - } else { - ScrStr *r = NULL; - if (strcmp(op, "normalize") == 0) r = win32 ? scr_path_win32_normalize(a) : scr_path_normalize(a); - else if (strcmp(op, "dirname") == 0) r = win32 ? scr_path_win32_dirname(a) : scr_path_dirname(a); - else if (strcmp(op, "extname") == 0) r = win32 ? scr_path_win32_extname(a) : scr_path_extname(a); - else if (strcmp(op, "toNamespacedPath") == 0) r = win32 ? scr_path_win32_to_namespaced_path(a) : scr_path_to_namespaced_path(a); - if (r) { - ret = JS_NewStringLen(ctx, r->data, r->len); - scr_str_release(r); - } else { - ret = JS_ThrowReferenceError(ctx, "unknown island path op"); - } - } - scr_str_release(a); - } - JS_FreeCString(ctx, op); - return ret; -} - -/* The zlib bridge: function pointers scr_zlib_island.c installs (from - * the emitted main, exactly when the embedded graph imports node:zlib — - * the isl_fetch_boot registration precedent). The hooks always exist; - * unlinked builds get a clear refusal at the call. */ -static ScrBytes *(*isl_zlib_deflate)(const ScrBytes *, double, double) = NULL; -static ScrBytes *(*isl_zlib_inflate)(const ScrBytes *, double) = NULL; - -void scr_island_set_zlib(ScrBytes *(*deflate)(const ScrBytes *, double, double), - ScrBytes *(*inflate)(const ScrBytes *, double)) { - isl_zlib_deflate = deflate; - isl_zlib_inflate = inflate; -} - -static JSValue isl_host_zlib(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t deflating = 0; - int32_t mode = 0; - double level = -1; - JS_ToInt32(ctx, &deflating, argv[0]); - JS_ToInt32(ctx, &mode, argv[2]); - JS_ToFloat64(ctx, &level, argv[3]); - if ((deflating ? isl_zlib_deflate : isl_zlib_inflate) == NULL) { - return JS_ThrowReferenceError(ctx, "zlib is not linked into this binary"); - } - size_t len = 0; - uint8_t *data = JS_GetUint8Array(ctx, &len, argv[1]); - if (!data && len) return JS_EXCEPTION; - ScrBytes *in = scr_bytes_new(SCR_BYTES_U8, (double)len); - memcpy(in->data, data, len); - ScrBytes *out = deflating ? isl_zlib_deflate(in, (double)mode, level) - : isl_zlib_inflate(in, (double)mode); - scr_bytes_release(in); - if (!out) return isl_throw_pending(ctx); - JSValue r = JS_NewUint8ArrayCopy(ctx, out->data, (size_t)scr_bytes_len(out)); - scr_bytes_release(out); - return r; -} - -/* url.fileURLToPath / url.pathToFileURL over the static converters - * (scr_url.c) — Node's exact percent-decoding/encoding and host rules, - * the win32 arms on win32 targets. Failures cross as the converters' - * catchable TypeErrors. */ -static JSValue isl_host_url_to_path(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - ScrDyn *input = isl_dyn_from_value(argc ? argv[0] : JS_UNDEFINED); - if (!input) return JS_EXCEPTION; - ScrDyn *options = isl_dyn_from_value(argc > 1 ? argv[1] : JS_UNDEFINED); - ScrStr *path = scr_url_checked_to_path_options(input, options); - scr_dyn_release(input); scr_dyn_release(options); - if (!path) return isl_throw_pending(ctx); - JSValue result = JS_NewStringLen(ctx, path->data, path->len); - scr_str_release(path); - return result; -} - -static JSValue isl_host_url_to_path_buffer(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - ScrDyn *input = isl_dyn_from_value(argc ? argv[0] : JS_UNDEFINED); - if (!input) return JS_EXCEPTION; - ScrDyn *options = isl_dyn_from_value(argc > 1 ? argv[1] : JS_UNDEFINED); - ScrBytes *path = scr_url_checked_to_path_buffer(input, options); - scr_dyn_release(input); scr_dyn_release(options); - if (!path) return isl_throw_pending(ctx); - JSValue result = JS_NewUint8ArrayCopy(ctx, path->data, path->len); - scr_bytes_release(path); - return result; -} - -static JSValue isl_host_url_from_path(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - ScrDyn *input = isl_dyn_from_value(argc ? argv[0] : JS_UNDEFINED); - ScrDyn *options = isl_dyn_from_value(argc > 1 ? argv[1] : JS_UNDEFINED); - ScrUrl *url = scr_url_checked_from_path(input, options); - scr_dyn_release(input); scr_dyn_release(options); - if (!url) return isl_throw_pending(ctx); - ScrStr *href = scr_url_href(url); - scr_url_release(url); - JSValue result = JS_NewStringLen(ctx, href->data, href->len); - scr_str_release(href); - return result; -} - -/* fs.constants (and the legacy `constants` module's fs half): the REAL - * macro values of the target platform — access modes, open flags, and - * the S_IF* type bits. */ -static JSValue isl_host_fs_constants(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - JSValue o = JS_NewObject(ctx); -#define ISL_CONST(name) JS_SetPropertyStr(ctx, o, #name, JS_NewInt32(ctx, name)) - ISL_CONST(F_OK); - ISL_CONST(R_OK); - ISL_CONST(W_OK); -#ifdef X_OK - ISL_CONST(X_OK); -#else /* mingw CRTs without an execute bit: Node's win32 X_OK is 1 */ - JS_SetPropertyStr(ctx, o, "X_OK", JS_NewInt32(ctx, 1)); -#endif - ISL_CONST(O_RDONLY); - ISL_CONST(O_WRONLY); - ISL_CONST(O_RDWR); - ISL_CONST(O_CREAT); - ISL_CONST(O_EXCL); - ISL_CONST(O_TRUNC); - ISL_CONST(O_APPEND); -#ifdef O_SYNC - ISL_CONST(O_SYNC); -#else - JS_SetPropertyStr(ctx, o, "O_SYNC", JS_NewInt32(ctx, 0)); -#endif -#ifdef O_NOFOLLOW - ISL_CONST(O_NOFOLLOW); -#endif -#ifdef O_NONBLOCK - ISL_CONST(O_NONBLOCK); -#endif -#ifdef O_SYMLINK - ISL_CONST(O_SYMLINK); -#endif -#ifdef S_IFMT - ISL_CONST(S_IFMT); - ISL_CONST(S_IFREG); - ISL_CONST(S_IFDIR); - ISL_CONST(S_IFCHR); -#endif -#ifdef S_IFLNK - ISL_CONST(S_IFLNK); -#endif -#ifdef S_IFIFO - ISL_CONST(S_IFIFO); -#endif -#ifdef S_IFSOCK - ISL_CONST(S_IFSOCK); -#endif -#ifdef S_IFBLK - ISL_CONST(S_IFBLK); -#endif - JS_SetPropertyStr(ctx, o, "COPYFILE_EXCL", JS_NewInt32(ctx, 1)); - JS_SetPropertyStr(ctx, o, "COPYFILE_FICLONE", JS_NewInt32(ctx, 2)); - JS_SetPropertyStr(ctx, o, "COPYFILE_FICLONE_FORCE", JS_NewInt32(ctx, 4)); -#undef ISL_CONST - return o; -} - -/* crypto.createHash/createHmac bridge: one-shot digests over the same - * FIPS implementations the static lowerings use (plus MD5, scr_lib.c) — - * the shim concatenates update() chunks JS-side and asks once at - * digest(). undefined for an unknown algorithm (the shim throws Node's - * shape). */ -static JSValue isl_host_digest(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - const char *alg = JS_ToCString(ctx, argv[0]); - if (!alg) return JS_EXCEPTION; - size_t len = 0; - uint8_t *data = JS_GetUint8Array(ctx, &len, argv[1]); - if (!data && len) { - JS_FreeCString(ctx, alg); - return JS_EXCEPTION; - } - unsigned char out[64]; - size_t n = scr_crypto_digest_raw(alg, data, len, out); - JS_FreeCString(ctx, alg); - return n == 0 ? JS_UNDEFINED : JS_NewUint8ArrayCopy(ctx, out, n); -} - -static JSValue isl_host_hmac(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - const char *alg = JS_ToCString(ctx, argv[0]); - if (!alg) return JS_EXCEPTION; - size_t keylen = 0; - size_t len = 0; - uint8_t *key = JS_GetUint8Array(ctx, &keylen, argv[1]); - uint8_t *data = JS_GetUint8Array(ctx, &len, argv[2]); - if ((!key && keylen) || (!data && len)) { - JS_FreeCString(ctx, alg); - return JS_EXCEPTION; - } - unsigned char out[64]; - size_t n = scr_crypto_hmac_raw(alg, key, keylen, data, len, out); - JS_FreeCString(ctx, alg); - return n == 0 ? JS_UNDEFINED : JS_NewUint8ArrayCopy(ctx, out, n); -} - -/* The island validates JavaScript overloads; the native RFC 7914 core - * owns memory accounting, ROMix, and sensitive scratch cleanup. */ -static JSValue isl_host_scrypt(JSContext *ctx, JSValueConst this_val, int argc, JSValueConst *argv) { - (void)this_val; - if (argc != 7) return JS_ThrowTypeError(ctx, "invalid scrypt bridge arity"); - size_t password_len = 0, salt_len = 0; - uint8_t *password_data = JS_GetUint8Array(ctx, &password_len, argv[0]); - uint8_t *salt_data = JS_GetUint8Array(ctx, &salt_len, argv[1]); - if ((!password_data && password_len) || (!salt_data && salt_len)) return JS_EXCEPTION; - double values[5]; - for (int i = 0; i < 5; i++) if (JS_ToFloat64(ctx, &values[i], argv[i + 2]) < 0) return JS_EXCEPTION; - /* These wrappers borrow engine storage for the synchronous core. No - * extra heap copies of the password or salt outlive the bridge call. */ - ScrBytes password = {0}, salt = {0}; - password.elem = salt.elem = SCR_BYTES_U8; - password.len = password_len; - password.data = password_data; - salt.len = salt_len; - salt.data = salt_data; - ScrBytes *result = scr_crypto_scrypt_derive(&password, &salt, values[0], values[1], values[2], values[3], values[4]); - if (scr_exc_pending()) return isl_throw_pending(ctx); - JSValue value = JS_NewUint8ArrayCopy(ctx, result->data, result->len); - scr_bytes_release(result); - return value; -} - -static JSValue isl_host_pid(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - /* Node's process.pid — util.deprecate/debuglog print it in their - * stderr prefixes. mingw-w64's process.h declares getpid too. */ - return JS_NewInt32(ctx, (int32_t)getpid()); -} - -/* process.version(s) — the SAME compat-target answers the static world's - * process.versions gives (scr_lib.c), as [node, openssl]. */ -static JSValue isl_host_versions(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - ScrStr *node = scr_process_versions_node(); - ScrStr *openssl = scr_process_versions_openssl(); - JSValue arr = JS_NewArray(ctx); - JS_SetPropertyUint32(ctx, arr, 0, JS_NewStringLen(ctx, node->data, node->len)); - JS_SetPropertyUint32(ctx, arr, 1, JS_NewStringLen(ctx, openssl->data, openssl->len)); - scr_str_release(node); - scr_str_release(openssl); - return arr; -} - -/* process.hrtime's monotonic nanosecond clock, as [seconds, nanos]. */ -static JSValue isl_host_hrtime(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - double ms = scr_now_ms(); - JSValue arr = JS_NewArray(ctx); - double sec = ms / 1000.0; - double whole = (double)(int64_t)sec; - JS_SetPropertyUint32(ctx, arr, 0, JS_NewFloat64(ctx, whole)); - JS_SetPropertyUint32(ctx, arr, 1, JS_NewFloat64(ctx, (double)(int64_t)((sec - whole) * 1e9))); - return arr; -} - -/* os.userInfo's uid/gid halves (-1 on win32, like Node). */ -static JSValue isl_host_ids(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - JSValue arr = JS_NewArray(ctx); -#if defined(_WIN32) || defined(__wasi__) - JS_SetPropertyUint32(ctx, arr, 0, JS_NewInt32(ctx, -1)); - JS_SetPropertyUint32(ctx, arr, 1, JS_NewInt32(ctx, -1)); -#else - JS_SetPropertyUint32(ctx, arr, 0, JS_NewInt32(ctx, (int32_t)getuid())); - JS_SetPropertyUint32(ctx, arr, 1, JS_NewInt32(ctx, (int32_t)getgid())); -#endif - return arr; -} - -/* os.constants' signals table: the REAL signal numbers of the target. */ -/* process.umask() — the read form: read-and-restore on POSIX; Node on - * Windows answers 0 (no umask concept behind CreateFile). */ -static JSValue isl_host_umask(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; -#if defined(_WIN32) || defined(__wasi__) - return JS_NewInt32(ctx, 0); -#else - mode_t m = umask(0); - umask(m); - return JS_NewInt32(ctx, (int32_t)m); -#endif -} - -static JSValue isl_host_signals(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - JSValue o = JS_NewObject(ctx); -#define ISL_SIG(name) JS_SetPropertyStr(ctx, o, #name, JS_NewInt32(ctx, name)) -#ifdef SIGHUP - ISL_SIG(SIGHUP); -#endif - ISL_SIG(SIGINT); -#ifdef SIGQUIT - ISL_SIG(SIGQUIT); -#endif - ISL_SIG(SIGILL); -#ifdef SIGTRAP - ISL_SIG(SIGTRAP); -#endif - ISL_SIG(SIGABRT); - ISL_SIG(SIGFPE); -#ifdef SIGKILL - ISL_SIG(SIGKILL); -#endif -#ifdef SIGBUS - ISL_SIG(SIGBUS); -#endif - ISL_SIG(SIGSEGV); -#ifdef SIGSYS - ISL_SIG(SIGSYS); -#endif -#ifdef SIGPIPE - ISL_SIG(SIGPIPE); -#endif -#ifdef SIGALRM - ISL_SIG(SIGALRM); -#endif - ISL_SIG(SIGTERM); -#ifdef SIGURG - ISL_SIG(SIGURG); -#endif -#ifdef SIGSTOP - ISL_SIG(SIGSTOP); -#endif -#ifdef SIGTSTP - ISL_SIG(SIGTSTP); -#endif -#ifdef SIGCONT - ISL_SIG(SIGCONT); -#endif -#ifdef SIGCHLD - ISL_SIG(SIGCHLD); -#endif -#ifdef SIGTTIN - ISL_SIG(SIGTTIN); -#endif -#ifdef SIGTTOU - ISL_SIG(SIGTTOU); -#endif -#ifdef SIGIO - ISL_SIG(SIGIO); -#endif -#ifdef SIGXCPU - ISL_SIG(SIGXCPU); -#endif -#ifdef SIGXFSZ - ISL_SIG(SIGXFSZ); -#endif -#ifdef SIGVTALRM - ISL_SIG(SIGVTALRM); -#endif -#ifdef SIGPROF - ISL_SIG(SIGPROF); -#endif -#ifdef SIGWINCH - ISL_SIG(SIGWINCH); -#endif -#ifdef SIGUSR1 - ISL_SIG(SIGUSR1); -#endif -#ifdef SIGUSR2 - ISL_SIG(SIGUSR2); -#endif -#undef ISL_SIG - return o; -} - -/* util.inspect's promise peek: [state, result] (0 pending / 1 fulfilled / - * 2 rejected), undefined for a non-promise. JS has no synchronous view of - * promise state; the engine does (JS_PromiseState), and Node's inspect - * prints it — so the shim asks the host. Peeking never marks a rejection - * handled (the tracker fired at reject time; nothing here rescinds it). */ -static JSValue isl_host_promise_state(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - JSPromiseStateEnum st = JS_PromiseState(ctx, argv[0]); - if ((int)st < 0) return JS_UNDEFINED; - JSValue arr = JS_NewArray(ctx); - JS_SetPropertyUint32(ctx, arr, 0, JS_NewInt32(ctx, (int32_t)st)); - JS_SetPropertyUint32(ctx, arr, 1, - st == JS_PROMISE_PENDING ? JS_UNDEFINED - : JS_PromiseResult(ctx, argv[0])); - return arr; -} - -static JSValue isl_host_hostname(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - /* Node's os.hostname() is uv_os_gethostname — gethostname(2). On win32 - * that is winsock's gethostname, which answers WSANOTINITIALISED until - * someone starts winsock (Node does at boot) — start it here, OS-ref- - * counted like the socket units' own WSAStartup calls (ws2_32 is on - * every win32 link line). */ - char buf[256]; -#if defined(__wasi__) - buf[0] = '\0'; -#else -#ifdef _WIN32 - WSADATA wsa; - if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0) return JS_NewString(ctx, ""); -#endif - if (gethostname(buf, sizeof buf) != 0) buf[0] = '\0'; -#endif - buf[sizeof buf - 1] = '\0'; - return JS_NewString(ctx, buf); -} - -static JSValue isl_host_type_probe(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) { - (void)this_val; - if (argc < 2) return JS_FALSE; - size_t len; - const char *probe = JS_ToCStringLen(ctx, &len, argv[0]); - if (!probe) return JS_EXCEPTION; - bool result = isl_type_probe(argv[1], probe, len); - JS_FreeCString(ctx, probe); - return JS_NewBool(ctx, result); -} - -/* The bootstrap: the CommonJS require shim over the embedded map, the - * builtin shims, and the real process bridge. Evaluated once (module boot); - * returns the CJS import helper the boundary below pins. Everything JS - * about the module system lives in this string — the C side only serves - * tables and I/O. */ -static const char isl_modules_bootstrap[] = - "(host) => {\n" - " 'use strict';\n" - /* The WebAssembly DECISION (SEMANTICS.md, island section): the engine - * has no wasm runtime, and pretending otherwise is banned. Embedded - * JS that references WebAssembly (Emscripten factory modules load - * fine — they are plain JS — and reach WebAssembly.instantiate only - * when INVOKED) must fail honestly and catchably: a throwing stub - * with a clear message, plus real Error subclasses for the error - * types, so Emscripten's own abort path (`new - * WebAssembly.RuntimeError("Aborted(...)")` inside its catch) still - * constructs and the factory's ready promise rejects with the - * Emscripten-shaped error carrying this message — the most - * Node-plausible catchable failure. validate() answers false, the - * feature-detection truth. The PROMISE-shaped members (compile/ - * instantiate/-Streaming) REJECT instead of throwing synchronously — - * the real API's shape (invalid bytes reject, never throw), which - * keeps eval-time compiles lazy exactly as they are under Node: a - * module whose top level starts `WebAssembly.compile(...)` (es-module- - * lexer's `export const init`, undici's lazyllhttp) evaluates fine - * and fails only where the promise is AWAITED — the code path that - * actually needed wasm, often behind a feature-detect or fallback - * catch. The constructor-shaped members stay synchronous throws (so - * does `new Module()` under real wasm on bad bytes). */ - " if (typeof globalThis.WebAssembly === 'undefined') {\n" - " const die = (what) => () => {\n" - " throw new Error('WebAssembly.' + what + ' is not supported in scriptc binaries (the embedded engine has no wasm runtime)');\n" - " };\n" - /* The reason carries the __scr_wasm_stub marker (non-enumerable): - * the rejection tracker below SKIPS ledgering it, so a top-level - * `WebAssembly.compile(...)` chain the program never awaits (es- - * module-lexer's `export const init`, alive in real CLI - * graph) stays silent at teardown — under real wasm the compile - * SUCCEEDS unobserved, so silence is Node's observable — while an - * actual await site still sees the rejection untouched. The marker - * must ride the REASON, not the promise: .then() chains derive new - * unhandled promises carrying the same reason object. */ - " const dieAsync = (what) => () => {\n" - " const e = new Error('WebAssembly.' + what + ' is not supported in scriptc binaries (the embedded engine has no wasm runtime)');\n" - " Object.defineProperty(e, '__scr_wasm_stub', { value: true });\n" - " return Promise.reject(e);\n" - " };\n" - " class RuntimeError extends Error {}\n" - " class CompileError extends Error {}\n" - " class LinkError extends Error {}\n" - " RuntimeError.prototype.name = 'RuntimeError';\n" - " CompileError.prototype.name = 'CompileError';\n" - " LinkError.prototype.name = 'LinkError';\n" - " globalThis.WebAssembly = {\n" - " instantiate: dieAsync('instantiate'),\n" - " instantiateStreaming: dieAsync('instantiateStreaming'),\n" - " compile: dieAsync('compile'),\n" - " compileStreaming: dieAsync('compileStreaming'),\n" - " validate: () => false,\n" - " Module: die('Module'),\n" - " Instance: die('Instance'),\n" - " Memory: die('Memory'),\n" - " Table: die('Table'),\n" - " Global: die('Global'),\n" - " RuntimeError, CompileError, LinkError,\n" - " };\n" - " }\n" - " const cache = Object.create(null);\n" - " const builtins = Object.create(null);\n" - " const builtinModules = ['assert','assert/strict','async_hooks','buffer','child_process','cluster','console','constants','crypto','dgram','diagnostics_channel','dns','dns/promises','domain','events','fs','fs/promises','http','http2','https','inspector','inspector/promises','module','net','os','path','path/posix','path/win32','perf_hooks','process','punycode','querystring','readline','readline/promises','repl','stream','stream/consumers','stream/promises','stream/web','string_decoder','sys','timers','timers/promises','tls','trace_events','tty','url','util','util/types','v8','vm','wasi','worker_threads','zlib'];\n" - /* Node's require stack follows module records, including parents - * whose evaluation failed or whose cache entry was deleted. A failing - * resolution reports the requiring module plus its first-parent chain. - * Entry modules loaded from the compiled (ESM-like) world have no - * parent, exactly like Node's ESM→CJS boundary. */ - " const moduleParents = new WeakMap();\n" - " const requireStackOf = (parent) => {\n" - " const stack = [];\n" - " for (let m = parent; m; m = moduleParents.get(m)) stack.push(m.filename || m.id);\n" - " return stack;\n" - " };\n" - /* Node resolves core modules unconditionally, before node_modules - * and never through file edges — so a require the build-time walk - * could not see (a non-literal specifier) still reaches the shims - * here. Everything else unresolved throws Node's require-time - * MODULE_NOT_FOUND shape, surfacing lazily at the CALL, which is the - * only point Node would have loaded the module either: the message - * carries the live Require stack, plus the code and requireStack - * properties. (Unshimmed BUILTINS reached by build-time-visible lazy - * edges resolve through the edge table to their node: keys and take - * requireKey's does-not-provide throw below instead.) */ - " const resolveFrom = (parent, spec) => {\n" - " const from = parent.filename;\n" - " const to = host.resolve(from, spec);\n" - " if (to === undefined) {\n" - " const name = spec.startsWith('node:') ? spec.slice(5) : spec;\n" - " if (builtins[name]) return 'node:' + name;\n" - " const stack = requireStackOf(parent);\n" - " const err = new Error(\"Cannot find module '\" + spec + \"'\" +\n" - " (stack.length ? '\\nRequire stack:\\n- ' + stack.join('\\n- ') : ''));\n" - " err.code = 'MODULE_NOT_FOUND';\n" - " err.requireStack = stack;\n" - " throw err;\n" - " }\n" - " return to;\n" - " };\n" - " const requirePathsFrom = (from, spec) => {\n" - " if (typeof spec !== 'string') {\n" - " const err = new TypeError('The \"request\" argument must be of type string.');\n" - " err.code = 'ERR_INVALID_ARG_TYPE';\n" - " throw err;\n" - " }\n" - " const bare = spec.startsWith('node:') ? spec.slice(5) : spec;\n" - " if (builtinModules.includes(bare) && (spec.startsWith('node:') || bare !== 'test')) return null;\n" - " const slash = from.lastIndexOf('/');\n" - " const base = slash < 0 ? '/' : (from.slice(0, slash) || '/');\n" - " if (spec.startsWith('./') || spec.startsWith('../') || spec.startsWith('/')) return [base];\n" - " const out = [];\n" - " for (let dir = base;;) {\n" - " out.push((dir === '/' ? '' : dir) + '/node_modules');\n" - " const at = dir.lastIndexOf('/');\n" - " const parent = at <= 0 ? '/' : dir.slice(0, at);\n" - " if (parent === dir) break;\n" - " dir = parent;\n" - " }\n" - " return out;\n" - " };\n" - " // CommonJS module records retain identity across cache hits and circular loads.\n" - " const modulePathsFrom = (directory) => {\n" - " const paths = [];\n" - " const path = builtins.path();\n" - " for (let dir = directory;;) {\n" - " if (path.basename(dir) !== 'node_modules') paths.push(path.join(dir, 'node_modules'));\n" - " const parent = path.dirname(dir);\n" - " if (parent === dir) break;\n" - " dir = parent;\n" - " }\n" - " return paths;\n" - " };\n" - " const updateChildren = (parent, child) => {\n" - " if (parent && parent.children && !parent.children.includes(child)) parent.children.push(child);\n" - " };\n" - " function Module(id = '', parent) {\n" - " this.id = id;\n" - " this.path = builtins.path().dirname(id);\n" - " this.exports = {};\n" - " moduleParents.set(this, parent);\n" - " updateChildren(parent, this);\n" - " this.filename = null;\n" - " this.loaded = false;\n" - " this.children = [];\n" - " }\n" - " Object.defineProperty(Module.prototype, 'parent', {\n" - " get() { return moduleParents.get(this); },\n" - " set(parent) { moduleParents.set(this, parent); },\n" - " });\n" - " Object.defineProperty(Module.prototype, 'isPreloading', { get() { return false; } });\n" - " Module.prototype.require = function(id) {\n" - " if (typeof id !== 'string') envArgumentError('id', 'of type string', id);\n" - " if (id.length === 0) {\n" - " const error = new TypeError(\"The argument 'id' must be a non-empty string. Received ''\");\n" - " error.code = 'ERR_INVALID_ARG_VALUE';\n" - " throw error;\n" - " }\n" - " return requireKey(resolveFrom(this, id), this);\n" - " };\n" - " const decorateRequire = (req, parent) => {\n" - " const from = parent.filename;\n" - " const resolve = (spec) => {\n" - " if (typeof spec !== 'string') return requirePathsFrom(from, spec);\n" - " const bare = spec.startsWith('node:') ? spec.slice(5) : spec;\n" - " if (builtinModules.includes(bare) && (spec.startsWith('node:') || bare !== 'test')) return spec;\n" - " return resolveFrom(parent, spec);\n" - " };\n" - " resolve.paths = (spec) => requirePathsFrom(from, spec);\n" - " req.resolve = resolve;\n" - " req.cache = cache;\n" - " return req;\n" - " };\n" - " const requireKey = (key, parent) => {\n" - " if (key.startsWith('node:')) {\n" - " const b = builtins[key.slice(5)];\n" - " if (!b) throw new Error(\"the island does not provide the '\" + key + \"' builtin\");\n" - " return b();\n" - " }\n" - " const hit = cache[key];\n" - " if (hit) { updateChildren(parent, hit); return hit.exports; }\n" - " const info = host.source(key);\n" - " if (info === undefined) throw new Error(\"module '\" + key + \"' is not embedded\");\n" - " const src = info[0], format = info[1];\n" - " const mod = new Module(key, parent);\n" - " mod.filename = key;\n" - " mod.paths = modulePathsFrom(mod.path);\n" - " cache[key] = mod;\n" - " const req = decorateRequire((spec) => mod.require(spec), mod);\n" - /* A module whose evaluation THROWS leaves no cache entry — Node - * deletes it so a later require re-evaluates (and a lazy require - * trap throws EVERY time instead of answering {} on the retry). */ - " try {\n" - " if (format === 2) mod.exports = JSON.parse(src);\n" - " else {\n" - " if (format === 0) throw new Error('require() of ES module ' + key);\n" - " const fn = new Function('exports', 'require', 'module', '__filename', '__dirname', src);\n" - " fn.call(mod.exports, mod.exports, req, mod, key, mod.path);\n" - " }\n" - " mod.loaded = true;\n" - " } catch (e) {\n" - " delete cache[key];\n" - " if (parent && Array.isArray(parent.children)) {\n" - " const index = parent.children.indexOf(mod);\n" - " if (index !== -1) parent.children.splice(index, 1);\n" - " }\n" - " throw e;\n" - " }\n" - " return mod.exports;\n" - " };\n" - " const memo = (f) => { let v; return () => (v === undefined ? (v = f()) : v); };\n" - /* Node's events module: the emitter surface streams and CLIs drive — - * prepend/once/remove with listener-unwrap, maxListeners bookkeeping - * (warnings are not emitted), eventNames/rawListeners, Node's - * unhandled-'error' throw, cancellable once, and async event iteration. - * EventEmitter is callable so legacy constructors can use .call(this). */ - " builtins.events = memo(() => {\n" - " function EventEmitter() {\n" - " if (this._events === undefined || !Object.prototype.hasOwnProperty.call(this, '_events')) this._events = Object.create(null);\n" - " if (!Object.prototype.hasOwnProperty.call(this, '_maxListeners')) this._maxListeners = undefined;\n" - " }\n" - " const checkListener = (listener) => {\n" - " if (typeof listener !== 'function') envArgumentError('listener', 'of type function', listener);\n" - " };\n" - " class EventEmitterMethods {\n" - " _add(n, f, prepend) {\n" - " checkListener(f);\n" - " this.emit('newListener', n, f.listener !== undefined ? f.listener : f);\n" - " const a = this._events[n] = this._events[n] || [];\n" - " if (prepend) a.unshift(f); else a.push(f);\n" - " return this;\n" - " }\n" - " on(n, f) { return this._add(n, f, false); }\n" - " addListener(n, f) { return this.on(n, f); }\n" - " prependListener(n, f) { return this._add(n, f, true); }\n" - " _wrapOnce(n, f) {\n" - " let fired = false;\n" - " const g = (...a) => {\n" - " if (fired) return;\n" - " this.removeListener(n, g);\n" - " fired = true;\n" - " return f.apply(this, a);\n" - " };\n" - " Object.defineProperty(g, \"name\", { value: \"bound onceWrapper\", configurable: true });\n" - " g.listener = f;\n" - " return g;\n" - " }\n" - " once(n, f) { checkListener(f); return this._add(n, this._wrapOnce(n, f), false); }\n" - " prependOnceListener(n, f) { checkListener(f); return this._add(n, this._wrapOnce(n, f), true); }\n" - " removeListener(n, f) {\n" - " checkListener(f);\n" - " const a = this._events[n];\n" - " if (a) {\n" - " let i = a.length - 1;\n" - " while (i >= 0 && a[i] !== f && a[i].listener !== f) i--;\n" - " if (i >= 0) {\n" - " const x = a.length === 1 ? (a[i].listener !== undefined ? a[i].listener : a[i]) : f;\n" - " a.splice(i, 1);\n" - " if (a.length === 0) delete this._events[n];\n" - " this.emit('removeListener', n, x);\n" - " }\n" - " }\n" - " return this;\n" - " }\n" - " off(n, f) { return this.removeListener(n, f); }\n" - " removeAllListeners(n) {\n" - " if (!this._events.removeListener) {\n" - " if (arguments.length === 0) this._events = Object.create(null);\n" - " else delete this._events[n];\n" - " return this;\n" - " }\n" - " if (arguments.length === 0) {\n" - " for (const key of Reflect.ownKeys(this._events)) {\n" - " if (key !== 'removeListener') this.removeAllListeners(key);\n" - " }\n" - " this.removeAllListeners('removeListener');\n" - " this._events = Object.create(null);\n" - " } else {\n" - " const listeners = this._events[n];\n" - " if (listeners) for (let i = listeners.length - 1; i >= 0; i--) this.removeListener(n, listeners[i]);\n" - " }\n" - " return this;\n" - " }\n" - " setMaxListeners(m) { this._maxListeners = m; return this; }\n" - " getMaxListeners() { return this._maxListeners === undefined ? EventEmitter.defaultMaxListeners : this._maxListeners; }\n" - " emit(n, ...args) {\n" - " if (n === 'error' && this._events[EventEmitter.errorMonitor]) this.emit(EventEmitter.errorMonitor, ...args);\n" - " const a = this._events[n];\n" - " if (!a || a.length === 0) {\n" - " if (n === 'error') {\n" - /* Unhandled error payloads cross the bridge as engine exceptions. */ - " const err = args[0];\n" - " if (err instanceof Error) throw err;\n" - " const e = new Error(\"Unhandled error.\" + ' (' + builtins.util().inspect(err) + ')');\n" - " e.code = 'ERR_UNHANDLED_ERROR';\n" - " e.context = err;\n" - " throw e;\n" - " }\n" - " return false;\n" - " }\n" - " for (const f of a.slice()) f.apply(this, args);\n" - " return true;\n" - " }\n" - " listenerCount(n, listener) {\n" - " const a = this._events[n];\n" - " return a ? listener == null ? a.length : a.filter(f => f === listener || f.listener === listener).length : 0;\n" - " }\n" - " listeners(n) {\n" - " const a = this._events[n];\n" - " return a ? a.map((x) => (x.listener !== undefined ? x.listener : x)) : [];\n" - " }\n" - " rawListeners(n) { const a = this._events[n]; return a ? a.slice() : []; }\n" - " eventNames() { return Reflect.ownKeys(this._events); }\n" - " }\n" - " EventEmitter.prototype = EventEmitterMethods.prototype;\n" - " EventEmitter.prototype.constructor = EventEmitter;\n" - " EventEmitter.defaultMaxListeners = 10;\n" - " EventEmitter.errorMonitor = Symbol('events.errorMonitor');\n" - " EventEmitter.captureRejectionSymbol = Symbol.for('nodejs.rejection');\n" - " EventEmitter.listenerCount = (emitter, n) => emitter.listenerCount(n);\n" - " EventEmitter.getEventListeners = (emitter, n) => emitter.listeners(n);\n" - " EventEmitter.setMaxListeners = (m, ...emitters) => { for (const e of emitters) e.setMaxListeners(m); };\n" - " const resistStopPropagation = Symbol.for('scriptc.events.resistStopPropagation');\n" - " const checkSignal = (signal, name) => {\n" - " if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal)))\n" - " envArgumentError(name, 'an instance of AbortSignal', signal);\n" - " };\n" - " const checkOptions = (options) => {\n" - " if (options === null || typeof options !== 'object' || Array.isArray(options))\n" - " envArgumentError('options', 'of type object', options);\n" - " };\n" - " const abortError = (signal) => {\n" - " const error = new Error('The operation was aborted', { cause: signal.reason });\n" - " error.name = 'AbortError';\n" - " error.code = 'ABORT_ERR';\n" - " return error;\n" - " };\n" - " const add = (emitter, name, listener, flags) => {\n" - " if (typeof emitter.on === 'function') {\n" - " if (flags && flags.once) emitter.once(name, listener);\n" - " else emitter.on(name, listener);\n" - " } else if (typeof emitter.addEventListener === 'function') emitter.addEventListener(name, listener, flags);\n" - " else envArgumentError('emitter', 'an instance of EventEmitter', emitter);\n" - " };\n" - " const remove = (emitter, name, listener) => {\n" - " if (typeof emitter.removeListener === 'function') emitter.removeListener(name, listener);\n" - " else if (typeof emitter.removeEventListener === 'function') emitter.removeEventListener(name, listener);\n" - " else envArgumentError('emitter', 'an instance of EventEmitter', emitter);\n" - " };\n" - " EventEmitter.addAbortListener = (signal, listener) => {\n" - " if (signal === undefined) envArgumentError('signal', 'an instance of AbortSignal', signal);\n" - " checkSignal(signal, 'signal');\n" - " checkListener(listener);\n" - " let dispose;\n" - " if (signal.aborted) queueMicrotask(() => listener());\n" - " else {\n" - " signal.addEventListener('abort', listener, { once: true, [resistStopPropagation]: true });\n" - " dispose = () => signal.removeEventListener('abort', listener);\n" - " }\n" - " return { __proto__: null, [Symbol.dispose]() { if (dispose) dispose(); } };\n" - " };\n" - " EventEmitter.once = async (emitter, name, options = {}) => {\n" - " checkOptions(options);\n" - " const signal = options.signal;\n" - " checkSignal(signal, 'options.signal');\n" - " if (signal && signal.aborted) throw abortError(signal);\n" - " return new Promise((resolve, reject) => {\n" - " const onError = (err) => {\n" - " remove(emitter, name, onEvent);\n" - " if (signal) remove(signal, 'abort', onAbort);\n" - " reject(err);\n" - " };\n" - " const onEvent = (...args) => {\n" - " if (typeof emitter.removeListener === 'function') emitter.removeListener('error', onError);\n" - " if (signal) remove(signal, 'abort', onAbort);\n" - " resolve(args);\n" - " };\n" - " const onAbort = () => {\n" - " remove(emitter, name, onEvent);\n" - " remove(emitter, 'error', onError);\n" - " reject(abortError(signal));\n" - " };\n" - " const flags = { __proto__: null, once: true, [resistStopPropagation]: true };\n" - " add(emitter, name, onEvent, flags);\n" - " if (name !== 'error' && typeof emitter.once === 'function') emitter.once('error', onError);\n" - " if (signal) add(signal, 'abort', onAbort, flags);\n" - " });\n" - " };\n" - " const queue = () => {\n" - " let values = [], head = 0;\n" - " return {\n" - " get size() { return values.length - head; },\n" - " push(value) { values.push(value); },\n" - " shift() {\n" - " const value = values[head];\n" - " values[head++] = undefined;\n" - " if (head === values.length) { values = []; head = 0; }\n" - " else if (head >= 1024 && head * 2 > values.length) { values = values.slice(head); head = 0; }\n" - " return value;\n" - " },\n" - " };\n" - " };\n" - " const checkWatermark = (value, name) => {\n" - " if (typeof value !== 'number') envArgumentError(name, 'of type number', value);\n" - " if (!Number.isInteger(value) || value < 1 || value > Number.MAX_SAFE_INTEGER) {\n" - " const range = Number.isInteger(value) ? '>= 1 && <= 9007199254740991' : 'an integer';\n" - " const received = Number.isInteger(value) && Math.abs(value) > 2 ** 32 ? String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, '_') : String(value);\n" - " const error = new RangeError('The value of \"' + name + '\" is out of range. It must be ' + range + '. Received ' + received);\n" - " error.code = 'ERR_OUT_OF_RANGE';\n" - " throw error;\n" - " }\n" - " };\n" - " const iteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf((async function* () {})())));\n" - " EventEmitter.on = (emitter, name, options = {}) => {\n" - " checkOptions(options);\n" - " const signal = options.signal;\n" - " checkSignal(signal, 'options.signal');\n" - " if (signal && signal.aborted) throw abortError(signal);\n" - " const high = options.highWaterMark ?? options.highWatermark ?? Number.MAX_SAFE_INTEGER;\n" - " checkWatermark(high, 'options.highWaterMark');\n" - " const low = options.lowWaterMark ?? options.lowWatermark ?? 1;\n" - " checkWatermark(low, 'options.lowWaterMark');\n" - " const events = queue(), pending = queue(), listeners = [];\n" - " let paused = false, error = null, finished = false, abortListener;\n" - " const close = () => {\n" - " if (abortListener) abortListener[Symbol.dispose]();\n" - " while (listeners.length) { const [event, handler] = listeners.pop(); remove(emitter, event, handler); }\n" - " finished = true;\n" - " paused = false;\n" - " const result = { value: undefined, done: true };\n" - " while (pending.size) pending.shift().resolve(result);\n" - " return Promise.resolve(result);\n" - " };\n" - " const onError = (err) => {\n" - " if (pending.size) pending.shift().reject(err);\n" - " else error = err;\n" - " close();\n" - " };\n" - " const onEvent = (...args) => {\n" - " if (pending.size) pending.shift().resolve({ value: args, done: false });\n" - " else {\n" - " if (!paused && events.size + 1 > high) { paused = true; emitter.pause(); }\n" - " events.push(args);\n" - " }\n" - " };\n" - " const iterator = Object.setPrototypeOf({\n" - " next() {\n" - " if (events.size) {\n" - " const value = events.shift();\n" - " if (paused && events.size < low) { emitter.resume(); paused = false; }\n" - " return Promise.resolve({ value, done: false });\n" - " }\n" - " if (error) { const err = error; error = null; return Promise.reject(err); }\n" - " if (finished) return close();\n" - " return new Promise((resolve, reject) => pending.push({ resolve, reject }));\n" - " },\n" - " return() { return close(); },\n" - " throw(err) {\n" - " if (!(err instanceof Error)) envArgumentError('EventEmitter.AsyncIterator', 'an instance of Error', err);\n" - " onError(err);\n" - " },\n" - " [Symbol.asyncIterator]() { return this; },\n" - " }, iteratorPrototype);\n" - " const listen = (event, handler) => { add(emitter, event, handler); listeners.push([event, handler]); };\n" - " listen(name, onEvent);\n" - " if (name !== 'error' && typeof emitter.on === 'function') listen('error', onError);\n" - " const closeEvents = options.close;\n" - " if (closeEvents && closeEvents.length) { for (let i = 0; i < closeEvents.length; i++) listen(closeEvents[i], close); }\n" - " if (signal) abortListener = EventEmitter.addAbortListener(signal, () => onError(abortError(signal)));\n" - " return iterator;\n" - " };\n" - " EventEmitter.EventEmitter = EventEmitter;\n" - " EventEmitter.default = EventEmitter;\n" - " return EventEmitter;\n" - " });\n" - /* node:path — the bare module binds by TARGET (Node on Windows IS - * path.win32) and both namespaces are always available; every - * member except parse/format rides scr_path.c's byte-exact ports - * through the host path hook, parse/format are Node v24's - * algorithms ported here. */ - " builtins.path = memo(() => {\n" - "const CHAR_DOT = \".\";\n" - "const isSepP = (c) => c === \"/\";\n" - "const isSepW = (c) => c === \"/\" || c === \"\\\\\";\n" - "const isLetter = (c) => (c >= \"a\" && c <= \"z\") || (c >= \"A\" && c <= \"Z\");\n" - "function parsePosix(path) {\n" - " if (typeof path !== \"string\") {\n" - " const e = new TypeError('The \"path\" argument must be of type string. Received ' + (path === null ? \"null\" : typeof path === \"object\" ? \"an instance of \" + ((path.constructor && path.constructor.name) || \"Object\") : \"type \" + typeof path + \" (\" + JSON.stringify(path) + \")\"));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " const ret = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n" - " if (path.length === 0) return ret;\n" - " const isAbs = path[0] === \"/\";\n" - " let start;\n" - " if (isAbs) {\n" - " ret.root = \"/\";\n" - " start = 1;\n" - " } else {\n" - " start = 0;\n" - " }\n" - " let startDot = -1;\n" - " let startPart = 0;\n" - " let end = -1;\n" - " let matchedSlash = true;\n" - " let preDotState = 0;\n" - " for (let i = path.length - 1; i >= start; --i) {\n" - " const ch = path[i];\n" - " if (isSepP(ch)) {\n" - " if (!matchedSlash) {\n" - " startPart = i + 1;\n" - " break;\n" - " }\n" - " continue;\n" - " }\n" - " if (end === -1) {\n" - " matchedSlash = false;\n" - " end = i + 1;\n" - " }\n" - " if (ch === CHAR_DOT) {\n" - " if (startDot === -1) startDot = i;\n" - " else if (preDotState !== 1) preDotState = 1;\n" - " } else if (startDot !== -1) {\n" - " preDotState = -1;\n" - " }\n" - " }\n" - " if (end !== -1) {\n" - " const s = startPart === 0 && isAbs ? 1 : startPart;\n" - " if (startDot === -1 || preDotState === 0 ||\n" - " (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)) {\n" - " ret.base = ret.name = path.slice(s, end);\n" - " } else {\n" - " ret.name = path.slice(s, startDot);\n" - " ret.base = path.slice(s, end);\n" - " ret.ext = path.slice(startDot, end);\n" - " }\n" - " }\n" - " if (startPart > 0) ret.dir = path.slice(0, startPart - 1);\n" - " else if (isAbs) ret.dir = \"/\";\n" - " return ret;\n" - "}\n" - "function parseWin32(path) {\n" - " if (typeof path !== \"string\") {\n" - " const e = new TypeError('The \"path\" argument must be of type string. Received ' + (path === null ? \"null\" : typeof path === \"object\" ? \"an instance of \" + ((path.constructor && path.constructor.name) || \"Object\") : \"type \" + typeof path + \" (\" + JSON.stringify(path) + \")\"));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " const ret = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n" - " if (path.length === 0) return ret;\n" - " const len = path.length;\n" - " let rootEnd = 0;\n" - " let ch = path[0];\n" - " if (len === 1) {\n" - " if (isSepW(ch)) {\n" - " ret.root = ret.dir = path;\n" - " return ret;\n" - " }\n" - " ret.base = ret.name = path;\n" - " return ret;\n" - " }\n" - " if (isSepW(ch)) {\n" - " rootEnd = 1;\n" - " if (isSepW(path[1])) {\n" - " let j = 2;\n" - " let last = j;\n" - " while (j < len && !isSepW(path[j])) j++;\n" - " if (j < len && j !== last) {\n" - " last = j;\n" - " while (j < len && isSepW(path[j])) j++;\n" - " if (j < len && j !== last) {\n" - " last = j;\n" - " while (j < len && !isSepW(path[j])) j++;\n" - " if (j === len) rootEnd = j;\n" - " else if (j !== last) rootEnd = j + 1;\n" - " }\n" - " }\n" - " }\n" - " } else if (isLetter(ch) && path[1] === \":\") {\n" - " if (len <= 2) {\n" - " ret.root = ret.dir = path;\n" - " return ret;\n" - " }\n" - " rootEnd = 2;\n" - " if (isSepW(path[2])) {\n" - " if (len === 3) {\n" - " ret.root = ret.dir = path;\n" - " return ret;\n" - " }\n" - " rootEnd = 3;\n" - " }\n" - " }\n" - " if (rootEnd > 0) ret.root = path.slice(0, rootEnd);\n" - " let startDot = -1;\n" - " let startPart = rootEnd;\n" - " let end = -1;\n" - " let matchedSlash = true;\n" - " let i = path.length - 1;\n" - " let preDotState = 0;\n" - " for (; i >= rootEnd; --i) {\n" - " ch = path[i];\n" - " if (isSepW(ch)) {\n" - " if (!matchedSlash) {\n" - " startPart = i + 1;\n" - " break;\n" - " }\n" - " continue;\n" - " }\n" - " if (end === -1) {\n" - " matchedSlash = false;\n" - " end = i + 1;\n" - " }\n" - " if (ch === CHAR_DOT) {\n" - " if (startDot === -1) startDot = i;\n" - " else if (preDotState !== 1) preDotState = 1;\n" - " } else if (startDot !== -1) {\n" - " preDotState = -1;\n" - " }\n" - " }\n" - " if (end !== -1) {\n" - " if (startDot === -1 || preDotState === 0 ||\n" - " (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)) {\n" - " ret.base = ret.name = path.slice(startPart, end);\n" - " } else {\n" - " ret.name = path.slice(startPart, startDot);\n" - " ret.base = path.slice(startPart, end);\n" - " ret.ext = path.slice(startDot, end);\n" - " }\n" - " }\n" - " if (startPart > 0 && startPart !== rootEnd) ret.dir = path.slice(0, startPart - 1);\n" - " else ret.dir = ret.root;\n" - " return ret;\n" - "}\n" - "function makeFormat(sep) {\n" - " return (obj) => {\n" - " if (obj === null || typeof obj !== \"object\") {\n" - " const e = new TypeError('The \"pathObject\" argument must be of type object. Received ' + (obj === null ? \"null\" : \"type \" + typeof obj + \" (\" + JSON.stringify(obj) + \")\"));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " const dir = obj.dir || obj.root;\n" - " const base = obj.base || ((obj.name || \"\") + (obj.ext || \"\"));\n" - " if (!dir) return base;\n" - " return dir === obj.root ? dir + base : dir + sep + base;\n" - " };\n" - "}\n" - " const badPath = (p) => {\n" - " const t = p === null ? 'null' : typeof p === 'object' ? 'an instance of ' + ((p.constructor && p.constructor.name) || 'Object') : 'type ' + typeof p + ' (' + String(p) + ')';\n" - " const e = new TypeError('The \"path\" argument must be of type string. Received ' + t);\n" - " e.code = 'ERR_INVALID_ARG_TYPE';\n" - " return e;\n" - " };\n" - " const str = (p) => {\n" - " if (typeof p !== 'string') throw badPath(p);\n" - " return p;\n" - " };\n" - " const mkFamily = (w) => {\n" - " const sep = w ? '\\\\' : '/';\n" - " const P = {\n" - " sep,\n" - " delimiter: w ? ';' : ':',\n" - " join: (...parts) => host.path('join', w, parts.map(str)),\n" - " resolve: (...parts) => host.path('resolve', w, parts.map(str)),\n" - " normalize: (p) => host.path('normalize', w, str(p)),\n" - " dirname: (p) => host.path('dirname', w, str(p)),\n" - " basename: (p, suffix) => host.path('basename', w, str(p), suffix === undefined ? '' : str(suffix)),\n" - " extname: (p) => host.path('extname', w, str(p)),\n" - " isAbsolute: (p) => host.path('isAbsolute', w, str(p)),\n" - " relative: (from, to) => host.path('relative', w, str(from), str(to)),\n" - " toNamespacedPath: (p) => (typeof p === 'string' ? host.path('toNamespacedPath', w, p) : p),\n" - " parse: w ? parseWin32 : parsePosix,\n" - " format: makeFormat(sep),\n" - " };\n" - " return P;\n" - " };\n" - " const posix = mkFamily(false);\n" - " const win32 = mkFamily(true);\n" - " posix.posix = win32.posix = posix;\n" - " posix.win32 = win32.win32 = win32;\n" - " const p = host.platform() === 'win32' ? win32 : posix;\n" - " p.default = p;\n" - " return p;\n" - " });\n" - /* node:path/posix and node:path/win32 are the namespaces - * themselves. */ - " builtins['path/posix'] = memo(() => {\n" - " const p = builtins.path().posix;\n" - " p.default = p;\n" - " return p;\n" - " });\n" - " builtins['path/win32'] = memo(() => {\n" - " const p = builtins.path().win32;\n" - " p.default = p;\n" - " return p;\n" - " });\n" - /* node:fs (+ fs/promises) — the host fs bridge over the SAME - * scr_fs_* implementations the static lowerings call: sync, - * callback, and promises spellings (the I/O is synchronous; - * callbacks/promises settle on the microtask queue), Stats/ - * Dirent shaping, and memory-backed create*Stream. Errors arrive - * Node-shaped with the errno-name code. */ - " builtins.fs = memo(() => {\n" - "function makeFs(env) {\n" - " const Buffer = env.Buffer;\n" - " const constants = env.fsConstants();\n" - " const call = (op, ...args) => {\n" - " try { return env.fs(op, ...args); } catch (e) {\n" - " if (e.code && !e.code.startsWith('ERR_') && e.code !== 'SC2020') {\n" - " e.syscall = op === 'readv' ? 'read' : op === 'writev' ? 'write' : op;\n" - " if (typeof args[0] === 'string') e.path = args[0];\n" - " }\n" - " throw e;\n" - " }\n" - " };\n" - " const pathOf = (p) => {\n" - " if (typeof p === \"string\") return p;\n" - " if (p instanceof Uint8Array) return Buffer.from(p).toString(\"utf8\");\n" - " if (p instanceof env.URL) return env.fileURLToPath(p);\n" - " const e = new TypeError('The \"path\" argument must be of type string or an instance of Buffer or URL. Received ' + (p === null ? \"null\" : typeof p === \"object\" ? \"an instance of \" + ((p.constructor && p.constructor.name) || \"Object\") : \"type \" + typeof p + \" (\" + JSON.stringify(p) + \")\"));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " };\n" - " const encodingOf = (options, def) => {\n" - " if (options === undefined || options === null) return def;\n" - " if (typeof options === \"string\") return options;\n" - " return options.encoding !== undefined && options.encoding !== null ? options.encoding : def;\n" - " };\n" - " const dataToU8 = (data, options) => {\n" - " if (typeof data === \"string\") return Buffer.from(data, encodingOf(options, \"utf8\"));\n" - " if (data instanceof Uint8Array) return data;\n" - " if (ArrayBuffer.isView(data)) return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n" - " const e = new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received ' + (data === null ? \"null\" : typeof data === \"object\" ? \"an instance of \" + ((data.constructor && data.constructor.name) || \"Object\") : \"type \" + typeof data));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " };\n" - " class Stats {\n" - " constructor(row) {\n" - " this._f = row[0];\n" - " this._d = row[1];\n" - " this._l = row[2];\n" - " this.size = row[3];\n" - " this.mtimeMs = row[4];\n" - " this.blocks = row[5];\n" - " this.nlink = row[6];\n" - " this.atimeMs = row[7];\n" - " this.atime = new Date(row[7]);\n" - " this.mtime = new Date(row[4]);\n" - " this.mode = (this._f ? constants.S_IFREG : this._d ? constants.S_IFDIR : this._l ? (constants.S_IFLNK || 0) : 0);\n" - " }\n" - " isFile() { return this._f; }\n" - " isDirectory() { return this._d; }\n" - " isSymbolicLink() { return this._l; }\n" - " isBlockDevice() { return false; }\n" - " isCharacterDevice() { return false; }\n" - " isFIFO() { return false; }\n" - " isSocket() { return false; }\n" - " }\n" - " class Dirent {\n" - " constructor(name, kind, parentPath) {\n" - " this.name = name;\n" - " this.parentPath = parentPath;\n" - " this.path = parentPath;\n" - " this._kind = kind;\n" - " }\n" - " isFile() { return this._kind === 1; }\n" - " isDirectory() { return this._kind === 2; }\n" - " isSymbolicLink() { return this._kind === 3; }\n" - " isFIFO() { return this._kind === 4; }\n" - " isSocket() { return this._kind === 5; }\n" - " isCharacterDevice() { return this._kind === 6; }\n" - " isBlockDevice() { return this._kind === 7; }\n" - " }\n" - " const readFileSync = (p, options) => {\n" - " const u8 = call(\"readFile\", typeof p === \"number\" ? fdOf(p) : pathOf(p));\n" - " const enc = encodingOf(options, null);\n" - " const buf = Buffer.from(u8.buffer, u8.byteOffset, u8.length);\n" - " return enc === null ? buf : buf.toString(enc);\n" - " };\n" - " const writeFileSync = (p, data, options) => {\n" - " call(\"writeFile\", typeof p === \"number\" ? fdOf(p) : pathOf(p), dataToU8(data, options));\n" - " };\n" - " const appendFileSync = (p, data, options) => {\n" - " call(\"appendFile\", typeof p === \"number\" ? fdOf(p) : pathOf(p), dataToU8(data, options));\n" - " };\n" - " const existsSync = (p) => {\n" - " try {\n" - " return call(\"exists\", pathOf(p));\n" - " } catch (e) {\n" - " return false;\n" - " }\n" - " };\n" - " const realpathSync = (p) => call(\"realpath\", pathOf(p));\n" - " realpathSync.native = realpathSync;\n" - " const mkdirSync = (p, options) => {\n" - " const recursive = !!(options && options.recursive);\n" - " const mode = options && options.mode !== undefined ? options.mode : -1;\n" - " call(\"mkdir\", pathOf(p), recursive ? 1 : 0, mode);\n" - " return undefined;\n" - " };\n" - " const rmSync = (p, options) => {\n" - " call(\"rm\", pathOf(p), options && options.recursive ? 1 : 0, options && options.force ? 1 : 0);\n" - " };\n" - " const rmdirSync = (p) => call(\"rmdir\", pathOf(p));\n" - " const unlinkSync = (p) => call(\"unlink\", pathOf(p));\n" - " const readdirSync = (p, options) => {\n" - " const path = pathOf(p);\n" - " if (options && options.withFileTypes) {\n" - " const flat = call(\"scandir\", path);\n" - " const out = [];\n" - " for (let i = 0; i < flat.length; i += 2) out.push(new Dirent(flat[i], flat[i + 1], path));\n" - " return out;\n" - " }\n" - " return call(\"readdir\", path);\n" - " };\n" - " const statSync = (p, options) => {\n" - " try {\n" - " return new Stats(call(\"stat\", pathOf(p)));\n" - " } catch (e) {\n" - " if (options && options.throwIfNoEntry === false && e.code === \"ENOENT\") return undefined;\n" - " throw e;\n" - " }\n" - " };\n" - " const lstatSync = (p, options) => {\n" - " try {\n" - " return new Stats(call(\"lstat\", pathOf(p)));\n" - " } catch (e) {\n" - " if (options && options.throwIfNoEntry === false && e.code === \"ENOENT\") return undefined;\n" - " throw e;\n" - " }\n" - " };\n" - " const accessSync = (p, mode) => call(\"access\", pathOf(p), mode === undefined ? constants.F_OK : mode);\n" - " const mkdtempSync = (prefix) => call(\"mkdtemp\", String(prefix));\n" - " const chmodSync = (p, mode) => call(\"chmod\", pathOf(p), mode);\n" - " const readlinkSync = (p) => call(\"readlink\", pathOf(p));\n" - " const copyFileSync = (src, dest) => call(\"copyFile\", pathOf(src), pathOf(dest));\n" - " const renameSync = (src, dest) => call(\"rename\", pathOf(src), pathOf(dest));\n" - " // Descriptor callbacks validate before scheduling; only system I/O failures\n" - " // travel through the callback. Payloads always retain the caller's identity.\n" - " const received = (v) => v === undefined ? 'undefined' : v === null ? 'null' : typeof v === 'string' ? 'type string (' + JSON.stringify(v) + ')' : typeof v === 'object' ? 'an instance of ' + ((v.constructor && v.constructor.name) || 'Object') : 'type ' + typeof v + ' (' + String(v) + ')';\n" - " const failType = (name, expected, v) => { const e = new TypeError('The \"' + name + '\" argument must be ' + expected + '. Received ' + received(v)); e.code = 'ERR_INVALID_ARG_TYPE'; throw e; };\n" - " const failRange = (name, range, v) => { const e = new RangeError('The value of \"' + name + '\" is out of range. It must be ' + range + '. Received ' + String(v)); e.code = 'ERR_OUT_OF_RANGE'; throw e; };\n" - " const integer = (v, name, min = -9007199254740991, max = 9007199254740991) => {\n" - " if (typeof v !== 'number') failType(name, 'of type number', v);\n" - " if (!Number.isInteger(v)) failRange(name, 'an integer', v);\n" - " if (v < min || v > max) failRange(name, '>= ' + min + ' && <= ' + max, v);\n" - " return v;\n" - " };\n" - " const fdOf = (fd) => integer(fd, 'fd', 0, 2147483647);\n" - " const cbOf = (cb) => { if (typeof cb !== 'function') failType('cb', 'of type function', cb); return cb; };\n" - " const optionsOf = (o) => { if (o != null && (typeof o !== 'object' || Array.isArray(o))) failType('options', 'of type object', o); return o || {}; };\n" - " const viewOf = (v) => { if (!ArrayBuffer.isView(v)) failType('buffer', 'an instance of Buffer, TypedArray, or DataView', v); return new Uint8Array(v.buffer, v.byteOffset, v.byteLength); };\n" - " const modeOf = (m, dflt = 0o666) => { if (m === undefined) return dflt; if (typeof m === 'string') { if (!/^[0-7]+$/.test(m)) { const e = new TypeError(\"The argument 'mode' must be a 32-bit unsigned integer or an octal string. Received '\" + m + \"'\"); e.code = 'ERR_INVALID_ARG_VALUE'; throw e; } m = parseInt(m, 8); } return integer(m, 'mode', 0, 4294967295); };\n" - " const flagsOf = (f) => {\n" - " if (f === undefined) f = 'r';\n" - " if (typeof f === 'number') return integer(f, 'flags', -2147483648, 2147483647);\n" - " if (typeof f !== 'string') failType('flags', 'of type string or number', f);\n" - " const c = constants, sync = c.O_SYNC || 0;\n" - " const flags = { r: c.O_RDONLY, rs: c.O_RDONLY | sync, sr: c.O_RDONLY | sync, 'r+': c.O_RDWR, 'rs+': c.O_RDWR | sync, 'sr+': c.O_RDWR | sync,\n" - " w: c.O_WRONLY | c.O_CREAT | c.O_TRUNC, wx: c.O_WRONLY | c.O_CREAT | c.O_TRUNC | c.O_EXCL, xw: c.O_WRONLY | c.O_CREAT | c.O_TRUNC | c.O_EXCL,\n" - " 'w+': c.O_RDWR | c.O_CREAT | c.O_TRUNC, 'wx+': c.O_RDWR | c.O_CREAT | c.O_TRUNC | c.O_EXCL, 'xw+': c.O_RDWR | c.O_CREAT | c.O_TRUNC | c.O_EXCL,\n" - " a: c.O_WRONLY | c.O_CREAT | c.O_APPEND, ax: c.O_WRONLY | c.O_CREAT | c.O_APPEND | c.O_EXCL, xa: c.O_WRONLY | c.O_CREAT | c.O_APPEND | c.O_EXCL,\n" - " as: c.O_WRONLY | c.O_CREAT | c.O_APPEND | sync, sa: c.O_WRONLY | c.O_CREAT | c.O_APPEND | sync,\n" - " 'a+': c.O_RDWR | c.O_CREAT | c.O_APPEND, 'ax+': c.O_RDWR | c.O_CREAT | c.O_APPEND | c.O_EXCL, 'xa+': c.O_RDWR | c.O_CREAT | c.O_APPEND | c.O_EXCL,\n" - " 'as+': c.O_RDWR | c.O_CREAT | c.O_APPEND | sync, 'sa+': c.O_RDWR | c.O_CREAT | c.O_APPEND | sync };\n" - " if (Object.prototype.hasOwnProperty.call(flags, f)) return flags[f];\n" - " const e = new TypeError(\"The argument 'flags' is invalid. Received '\" + f + \"'\"); e.code = 'ERR_INVALID_ARG_VALUE'; throw e;\n" - " };\n" - " const openArgs = (p, flags, mode) => {\n" - " const path = pathOf(p);\n" - " if (path.includes('\\0')) { const e = new TypeError(\"The argument 'path' must be a string, Uint8Array, or URL without null bytes. Received \" + JSON.stringify(path)); e.code = 'ERR_INVALID_ARG_VALUE'; throw e; }\n" - " return [path, flagsOf(flags), modeOf(mode)];\n" - " };\n" - " const openSync = (p, flags, mode) => call('open', ...openArgs(p, flags, mode));\n" - " const closeSync = (fd) => call('close', fdOf(fd));\n" - " const fsyncSync = (fd) => call('fsync', fdOf(fd));\n" - " const fdatasyncSync = (fd) => call('fdatasync', fdOf(fd));\n" - " const ftruncateSync = (fd, len = 0) => { fdOf(fd); integer(len, 'len'); return call('ftruncate', fd, Math.max(0, len)); };\n" - " const fchmodSync = (fd, mode) => { fdOf(fd); if (mode === undefined) failType('mode', 'of type number', mode); return call('fchmod', fd, modeOf(mode)); };\n" - " const fstatSync = (fd, options) => {\n" - " fdOf(fd);\n" - " if (options && options.bigint) { const e = new Error('fs.fstat with bigint Stats is not supported in the scriptc island'); e.code = 'SC2020'; throw e; }\n" - " return new Stats(call('fstat', fd));\n" - " };\n" - " const readWindow = (buffer, offset, length, position, nullOffset, coerceLength = true) => {\n" - " const bytes = viewOf(buffer);\n" - " offset = offset === undefined || (nullOffset && offset === null) ? 0 : integer(offset, 'offset', 0);\n" - " if (coerceLength) length |= 0;\n" - " if (length === 0) return [bytes, offset, 0, -1];\n" - " if (bytes.length === 0) { const e = new TypeError(\"The argument 'buffer' is empty and cannot be written. Received \" + (Buffer.isBuffer(buffer) ? '' : String(buffer))); e.code = 'ERR_INVALID_ARG_VALUE'; throw e; }\n" - " if (offset > bytes.length) failRange('offset', '>= 0 && <= 9007199254740991', offset);\n" - " if (length < 0 || offset + length > bytes.length) failRange('length', '<= ' + (bytes.length - offset), length);\n" - " if (position == null) position = -1;\n" - " else if (typeof position === 'bigint') {\n" - " if (position < -1n || position > 9007199254740991n) { const e = new Error('fs.read positions outside the safe integer range are not supported in the scriptc island'); e.code = 'SC2020'; throw e; }\n" - " position = Number(position);\n" - " } else integer(position, 'position', -1);\n" - " return [bytes, offset, length, position];\n" - " };\n" - " const readSync = function(fd, buffer, offset, length, position) {\n" - " viewOf(buffer);\n" - " if (arguments.length <= 3 || typeof offset === 'object') {\n" - " ({ offset = 0, length = buffer.byteLength - offset, position = null } = optionsOf(offset));\n" - " }\n" - " const a = readWindow(buffer, offset, length, position, false);\n" - " if (a[2] === 0) return 0;\n" - " return call('read', fdOf(fd), ...a);\n" - " };\n" - " const writeWindow = (buffer, offset, length, position) => {\n" - " const bytes = viewOf(buffer);\n" - " offset = offset == null || typeof offset === 'function' ? 0 : integer(offset, 'offset', 0);\n" - " if (typeof length !== 'number') length = bytes.length - offset;\n" - " if (offset > bytes.length) failRange('offset', '<= ' + bytes.length, offset);\n" - " if (length < 0) failRange('length', '>= 0', length);\n" - " if (length > bytes.length - offset) failRange('length', '<= ' + (bytes.length - offset), length);\n" - " integer(length, 'length', 0);\n" - " position = typeof position === 'number' ? position : -1;\n" - " return [bytes, offset, length, position];\n" - " };\n" - " const stringBytes = (buffer, encoding) => {\n" - " if (typeof buffer !== 'string') failType('buffer', 'of type string or an instance of Buffer, TypedArray, or DataView', buffer);\n" - " if (encoding && !Buffer.isEncoding(encoding)) { const e = new TypeError('Unknown encoding: ' + encoding); e.code = 'ERR_UNKNOWN_ENCODING'; throw e; }\n" - " return Buffer.from(buffer, encoding || 'utf8');\n" - " };\n" - " const writeSync = (fd, buffer, offset, length, position) => {\n" - " let a;\n" - " if (ArrayBuffer.isView(buffer)) {\n" - " if (typeof offset === 'object') { const o = optionsOf(offset); offset = o.offset; length = o.length; position = o.position; }\n" - " a = writeWindow(buffer, offset, length, position);\n" - " } else { const bytes = stringBytes(buffer, length); a = [bytes, 0, bytes.length, typeof offset === 'number' ? offset : -1]; }\n" - " return call('write', fdOf(fd), ...a);\n" - " };\n" - " const vectorArgs = (buffers, position) => {\n" - " if (!Array.isArray(buffers)) failType('buffers', 'an instance of Array', buffers);\n" - " const views = buffers.map((b) => viewOf(b));\n" - " position = typeof position === 'number' && Number.isFinite(position) && position >= 0 ? Math.trunc(position) : -1;\n" - " return [views, position];\n" - " };\n" - " const vectorIO = (writing, fd, buffers, views, position) => {\n" - " if (writing && buffers.length === 0) return 0;\n" - " fdOf(fd);\n" - " const length = views.reduce((n, b) => n + b.length, 0);\n" - " const bytes = writing ? Buffer.concat(views) : Buffer.alloc(length);\n" - " const n = call(writing ? 'writev' : 'readv', fd, bytes, 0, length, position, buffers.length === 0);\n" - " if (!writing) { let at = 0; for (const b of views) { const size = Math.min(b.length, n - at); if (size > 0) b.set(bytes.subarray(at, at + size)); at += b.length; } }\n" - " return n;\n" - " };\n" - " const readvSync = (fd, buffers, position) => { const [views, pos] = vectorArgs(buffers, position); return vectorIO(false, fd, buffers, views, pos); };\n" - " const writevSync = (fd, buffers, position) => { const [views, pos] = vectorArgs(buffers, position); return vectorIO(true, fd, buffers, views, pos); };\n" - " const callbackIO = (cb, action, payload) => {\n" - " let result, error = null;\n" - " try { result = action(); } catch (e) { error = e; }\n" - " env.nextTick(() => payload === undefined ? cb(error, result) : cb(error, result || 0, payload));\n" - " };\n" - " const open = function(p, flags, mode, cb) {\n" - " if (arguments.length < 3) { cb = flags; flags = 'r'; mode = 0o666; }\n" - " else if (typeof mode === 'function') { cb = mode; mode = 0o666; }\n" - " const a = openArgs(p, flags, mode); cbOf(cb); callbackIO(cb, () => call('open', ...a));\n" - " };\n" - " const read = function(fd, buffer, offset, length, position, cb) {\n" - " fdOf(fd);\n" - " if (arguments.length <= 4) {\n" - " let o;\n" - " if (arguments.length === 4) { o = optionsOf(offset); cb = length; }\n" - " else if (arguments.length === 3) { cb = offset; if (!ArrayBuffer.isView(buffer)) { o = optionsOf(buffer); ({ buffer = Buffer.alloc(16384) } = o); } }\n" - " else { cb = buffer; buffer = Buffer.alloc(16384); }\n" - " ({ offset = 0, length = buffer.byteLength - offset, position = null } = o || {});\n" - " }\n" - " viewOf(buffer); cbOf(cb);\n" - " const a = readWindow(buffer, offset, length, position, true);\n" - " callbackIO(cb, () => a[2] === 0 ? 0 : call('read', fd, ...a), buffer);\n" - " };\n" - " const write = function(fd, buffer, offset, length, position, cb) {\n" - " fdOf(fd); let a;\n" - " if (ArrayBuffer.isView(buffer)) {\n" - " cb = cb || position || length || offset; cbOf(cb);\n" - " if (typeof offset === 'object') { const o = optionsOf(offset); offset = o.offset; length = o.length; position = o.position; }\n" - " a = writeWindow(buffer, offset, length, position);\n" - " } else {\n" - " if (typeof position !== 'function') { if (typeof offset === 'function') { position = offset; offset = null; } else position = length; length = 'utf8'; }\n" - " const bytes = stringBytes(buffer, length); cb = position; cbOf(cb); a = [bytes, 0, bytes.length, typeof offset === 'number' ? offset : -1];\n" - " }\n" - " callbackIO(cb, () => call('write', fd, ...a), buffer);\n" - " };\n" - " const vectorCallback = (writing) => (fd, buffers, position, cb) => {\n" - " fdOf(fd); const [views, pos] = vectorArgs(buffers, position); cb = cb || position; cbOf(cb);\n" - " callbackIO(cb, () => vectorIO(writing, fd, buffers, views, pos), buffers);\n" - " };\n" - " const controlCallback = (op, normalize) => (...args) => {\n" - " const cb = args.pop(); fdOf(args[0]); normalize(args); cbOf(cb);\n" - " callbackIO(cb, () => call(op, ...args));\n" - " };\n" - " const handleState = new WeakMap();\n" - " class FileHandle extends env.EventEmitter {\n" - " constructor(fd) { super(); handleState.set(this, { fd }); }\n" - " get fd() { return handleState.get(this).fd; }\n" - " close = () => {\n" - " const state = handleState.get(this);\n" - " if (state.fd === -1) return Promise.resolve();\n" - " const fd = state.fd; state.fd = -1;\n" - " const result = Promise.resolve().then(() => closeSync(fd));\n" - " this.emit('close'); return result;\n" - " };\n" - " async [Symbol.asyncDispose || Symbol.for('nodejs.asyncDispose')]() { await this.close(); }\n" - " async _call(op, action) {\n" - " if (this.fd === -1) { const e = new Error('file closed'); e.code = 'EBADF'; e.syscall = op; throw e; }\n" - " return action(this.fd);\n" - " }\n" - " read(buffer, offset, length, position) {\n" - " return this._call('read', (fd) => {\n" - " if (!ArrayBuffer.isView(buffer)) { ({ buffer = Buffer.alloc(16384), offset = 0, length = buffer.byteLength - offset, position = null } = optionsOf(buffer)); }\n" - " if (offset !== null && typeof offset === 'object') { ({ offset = 0, length = buffer.byteLength - offset, position = null } = optionsOf(offset)); }\n" - " if (offset == null) offset = 0;\n" - " if (length == null) length = buffer.byteLength - offset;\n" - " const a = readWindow(buffer, offset, length, position, true, false);\n" - " return { __proto__: null, bytesRead: a[2] === 0 ? 0 : call('read', fd, ...a), buffer };\n" - " });\n" - " }\n" - " write(buffer, offset, length, position) {\n" - " return this._call('write', (fd) => {\n" - " const bytesWritten = buffer && buffer.byteLength === 0 ? 0 : writeSync(fd, buffer, offset, length, position);\n" - " return { __proto__: null, bytesWritten, buffer };\n" - " });\n" - " }\n" - " readv(buffers, position) { return this._call('readv', (fd) => ({ __proto__: null, bytesRead: readvSync(fd, buffers, position), buffers })); }\n" - " writev(buffers, position) { return this._call('writev', (fd) => ({ __proto__: null, bytesWritten: writevSync(fd, buffers, position), buffers })); }\n" - " readFile(options) { return this._call('readFile', (fd) => readFileSync(fd, options)); }\n" - " writeFile(data, options) { return this._call('writeFile', (fd) => writeFileSync(fd, data, options)); }\n" - " appendFile(data, options) { return this._call('writeFile', (fd) => writeFileSync(fd, data, options)); }\n" - " stat(options) { return this._call('fstat', (fd) => fstatSync(fd, options)); }\n" - " sync() { return this._call('fsync', fsyncSync); }\n" - " datasync() { return this._call('fdatasync', fdatasyncSync); }\n" - " truncate(len = 0) { return this._call('ftruncate', (fd) => ftruncateSync(fd, len)); }\n" - " chmod(mode) { return this._call('fchmod', (fd) => fchmodSync(fd, mode)); }\n" - " }\n" - " const sync = {\n" - " readFileSync, writeFileSync, appendFileSync, existsSync, realpathSync,\n" - " mkdirSync, rmSync, rmdirSync, unlinkSync, readdirSync, statSync,\n" - " lstatSync, accessSync, mkdtempSync, chmodSync, copyFileSync, renameSync,\n" - " readlinkSync, openSync, closeSync, readSync, writeSync, readvSync, writevSync, fstatSync, fchmodSync, ftruncateSync, fsyncSync, fdatasyncSync,\n" - " };\n" - " const callbackify = (syncFn) => (...args) => {\n" - " const cb = args.pop();\n" - " if (typeof cb !== \"function\") {\n" - " const e = new TypeError('The \"cb\" argument must be of type function. Received ' + (cb === undefined ? \"undefined\" : \"type \" + typeof cb));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " let result;\n" - " try {\n" - " result = syncFn(...args);\n" - " } catch (err) {\n" - " env.nextTick(() => cb(err));\n" - " return;\n" - " }\n" - " env.nextTick(() => cb(null, result));\n" - " };\n" - " const promisify = (syncFn) => (...args) => new Promise((resolve, reject) => {\n" - " try {\n" - " resolve(syncFn(...args));\n" - " } catch (err) {\n" - " reject(err);\n" - " }\n" - " });\n" - " const fs = {\n" - " ...sync,\n" - " constants,\n" - " Stats,\n" - " Dirent,\n" - " readFile: callbackify(readFileSync),\n" - " writeFile: callbackify(writeFileSync),\n" - " appendFile: callbackify(appendFileSync),\n" - " exists: (p, cb) => {\n" - " env.nextTick(() => cb(existsSync(p)));\n" - " },\n" - " realpath: Object.assign(callbackify(realpathSync), { native: callbackify(realpathSync) }),\n" - " mkdir: callbackify(mkdirSync),\n" - " rm: callbackify(rmSync),\n" - " rmdir: callbackify(rmdirSync),\n" - " unlink: callbackify(unlinkSync),\n" - " readdir: callbackify(readdirSync),\n" - " stat: callbackify(statSync),\n" - " lstat: callbackify(lstatSync),\n" - " access: callbackify(accessSync),\n" - " mkdtemp: callbackify(mkdtempSync),\n" - " chmod: callbackify(chmodSync),\n" - " copyFile: callbackify(copyFileSync),\n" - " rename: callbackify(renameSync),\n" - " readlink: callbackify(readlinkSync),\n" - " createReadStream: (p, options) => {\n" - " const enc = typeof options === \"string\" ? options : options && options.encoding;\n" - " const r = new env.Readable({\n" - " read() {\n" - " if (this._started) return;\n" - " this._started = true;\n" - " try {\n" - " const buf = readFileSync(p);\n" - " for (let i = 0; i < buf.length; i += 65536) this.push(buf.subarray(i, Math.min(i + 65536, buf.length)));\n" - " this.push(null);\n" - " } catch (err) {\n" - " this.destroy(err);\n" - " }\n" - " },\n" - " });\n" - " if (enc) r.setEncoding(enc);\n" - " r.path = typeof p === \"string\" ? p : pathOf(p);\n" - " return r;\n" - " },\n" - " createWriteStream: (p, options) => {\n" - " const chunks = [];\n" - " const w = new env.Writable({\n" - " write(chunk, e, cb) {\n" - " chunks.push(chunk);\n" - " cb();\n" - " },\n" - " final(cb) {\n" - " try {\n" - " const flags = options && options.flags;\n" - " const data = Buffer.concat(chunks.map((c) => (typeof c === \"string\" ? Buffer.from(c) : c)));\n" - " if (flags === \"a\") appendFileSync(p, data);\n" - " else writeFileSync(p, data);\n" - " cb();\n" - " } catch (err) {\n" - " cb(err);\n" - " }\n" - " },\n" - " });\n" - " w.path = typeof p === \"string\" ? p : pathOf(p);\n" - " return w;\n" - " },\n" - " watch: () => {\n" - " throw new Error(\"fs.watch is not available in the scriptc island\");\n" - " },\n" - " watchFile: () => {\n" - " throw new Error(\"fs.watchFile is not available in the scriptc island\");\n" - " },\n" - " open, read, write, readv: vectorCallback(false), writev: vectorCallback(true),\n" - " close: controlCallback('close', () => {}),\n" - " fsync: controlCallback('fsync', () => {}),\n" - " fdatasync: controlCallback('fdatasync', () => {}),\n" - " ftruncate: controlCallback('ftruncate', (a) => { a[1] = a[1] === undefined ? 0 : integer(a[1], 'len'); }),\n" - " fchmod: controlCallback('fchmod', (a) => { if (a[1] === undefined) failType('mode', 'of type number', a[1]); a[1] = modeOf(a[1]); }),\n" - " fstat: (fd, options, cb) => { fdOf(fd); if (typeof options === 'function') { cb = options; options = undefined; } cbOf(cb); callbackIO(cb, () => fstatSync(fd, options)); },\n" - " unwatchFile: () => undefined,\n" - " };\n" - " fs.promises = {\n" - " readFile: promisify(readFileSync),\n" - " writeFile: promisify(writeFileSync),\n" - " appendFile: promisify(appendFileSync),\n" - " realpath: promisify(realpathSync),\n" - " mkdir: promisify(mkdirSync),\n" - " rm: promisify(rmSync),\n" - " rmdir: promisify(rmdirSync),\n" - " unlink: promisify(unlinkSync),\n" - " readdir: promisify(readdirSync),\n" - " stat: promisify(statSync),\n" - " lstat: promisify(lstatSync),\n" - " access: promisify(accessSync),\n" - " mkdtemp: promisify(mkdtempSync),\n" - " chmod: promisify(chmodSync),\n" - " copyFile: promisify(copyFileSync),\n" - " rename: promisify(renameSync),\n" - " readlink: promisify(readlinkSync),\n" - " constants,\n" - " open: async (p, flags, mode) => new FileHandle(openSync(p, flags, mode)),\n" - " };\n" - " return fs;\n" - "}\n" - " const fs = makeFs({ fs: (...a) => host.fs(...a), fsConstants: () => host.fsConstants(), Buffer: builtins.buffer().Buffer, Readable: builtins.stream().Readable, Writable: builtins.stream().Writable, EventEmitter: builtins.events().EventEmitter, URL: builtins.url().URL, fileURLToPath: builtins.url().fileURLToPath, nextTick: (fn) => queueMicrotask(fn) });\n" - " fs.default = fs;\n" - " return fs;\n" - " });\n" - " builtins['fs/promises'] = memo(() => {\n" - " const p = { ...builtins.fs().promises };\n" - " p.default = p;\n" - " return p;\n" - " });\n" - " builtins.os = memo(() => {\n" - " const plat = host.platform();\n" - " const os = {\n" - " EOL: plat === 'win32' ? '\\r\\n' : '\\n',\n" - " platform: () => plat,\n" - " arch: () => host.arch(),\n" - " hostname: () => host.hostname(),\n" - " homedir: () => host.homedir(),\n" - " tmpdir: () => host.tmpdir(),\n" - " type: () => (plat === 'darwin' ? 'Darwin' : plat === 'win32' ? 'Windows_NT' : 'Linux'),\n" - " endianness: () => 'LE',\n" - " userInfo: () => {\n" - " const ids = host.ids();\n" - " const env = builtins.process().env;\n" - " return {\n" - " uid: ids[0],\n" - " gid: ids[1],\n" - " username: env.USER || env.USERNAME || env.LOGNAME || '',\n" - " homedir: host.homedir(),\n" - " shell: plat === 'win32' ? null : env.SHELL || null,\n" - " };\n" - " },\n" - /* The inert half: values Node reads from the kernel that the island - * does not carry — empty-but-typed answers, never throws. */ - " release: () => '',\n" - " version: () => '',\n" - " machine: () => (host.arch() === 'arm64' ? 'arm64' : host.arch() === 'x64' ? 'x86_64' : host.arch()),\n" - " cpus: () => [],\n" - " availableParallelism: () => 1,\n" - " totalmem: () => 0,\n" - " freemem: () => 0,\n" - " loadavg: () => [0, 0, 0],\n" - " uptime: () => 0,\n" - " networkInterfaces: () => ({}),\n" - " constants: {\n" - " signals: host.signals(),\n" - " errno: {},\n" - " priority: { PRIORITY_LOW: 19, PRIORITY_BELOW_NORMAL: 10, PRIORITY_NORMAL: 0, PRIORITY_ABOVE_NORMAL: -7, PRIORITY_HIGH: -14, PRIORITY_HIGHEST: -20 },\n" - " },\n" - " };\n" - " os.default = os;\n" - " return os;\n" - " });\n" - /* tty.isatty over the same host hook process.stdout.isTTY answers - * with; Node returns false for anything but a non-negative integer - * fd (never throws), so the guard mirrors that before asking the - * real isatty(3). */ - " builtins.tty = memo(() => {\n" - " const isatty = (fd) => Number.isInteger(fd) && fd >= 0 && host.isatty(fd);\n" - " class ReadStream {\n" - " constructor(fd) { this.fd = fd; this.isTTY = isatty(fd); this.isRaw = false; }\n" - " setRawMode(mode) { this.isRaw = !!mode; return this; }\n" - " }\n" - " class WriteStream {\n" - " constructor(fd) {\n" - " this.fd = fd;\n" - " this.isTTY = isatty(fd);\n" - " const c = host.columns(fd);\n" - " if (c > 0) this.columns = c;\n" - " }\n" - " write(s) { return host.write(this.fd, String(s)); }\n" - " getColorDepth() { return this.isTTY ? 8 : 1; }\n" - " hasColors(n) { return this.isTTY && (n === undefined || n <= 256); }\n" - " getWindowSize() { return [this.columns || 0, 0]; }\n" - " clearLine() { return true; }\n" - " clearScreenDown() { return true; }\n" - " cursorTo() { return true; }\n" - " moveCursor() { return true; }\n" - " }\n" - " const tty = { isatty, ReadStream, WriteStream };\n" - " tty.default = tty;\n" - " return tty;\n" - " });\n" - " builtins.diagnostics_channel = memo(() => {\n" - " // Store bindings count as active even when there are no message subscribers.\n" - " // Store propagation follows the island's synchronous AsyncLocalStorage model.\n" - " const channels = new Map();\n" - " const deferError = (error) => { queueMicrotask(() => { throw error; }); };\n" - " const deactivate = (channel) => {\n" - " if (!channel._subscribers.length && !channel._stores.size) {\n" - " channel._subscribers = undefined;\n" - " channel._stores = undefined;\n" - " }\n" - " };\n" - " class Channel {\n" - " constructor(name) {\n" - " this._subscribers = undefined;\n" - " this._stores = undefined;\n" - " this.name = name;\n" - " channels.set(name, this);\n" - " }\n" - " static [Symbol.hasInstance](value) {\n" - " if (value == null) throw new TypeError('Cannot convert undefined or null to object');\n" - " return Object.getPrototypeOf(value) === Channel.prototype;\n" - " }\n" - " _activate() {\n" - " if (this._subscribers === undefined) {\n" - " this._subscribers = [];\n" - " this._stores = new Map();\n" - " }\n" - " }\n" - " get hasSubscribers() { return this._subscribers !== undefined; }\n" - " subscribe(subscription) {\n" - " this._activate();\n" - " if (typeof subscription !== 'function') envArgumentError('subscription', 'of type function', subscription);\n" - " this._subscribers = [...this._subscribers, subscription];\n" - " }\n" - " unsubscribe(subscription) {\n" - " const index = this._subscribers?.indexOf(subscription) ?? -1;\n" - " if (index === -1) return false;\n" - " this._subscribers = [...this._subscribers.slice(0, index), ...this._subscribers.slice(index + 1)];\n" - " deactivate(this);\n" - " return true;\n" - " }\n" - " publish(data) {\n" - " const subscribers = this._subscribers;\n" - " for (const subscriber of subscribers ?? []) {\n" - " try { subscriber(data, this.name); }\n" - " catch (error) { deferError(error); }\n" - " }\n" - " }\n" - " bindStore(store, transform) { this._activate(); this._stores.set(store, transform); }\n" - " unbindStore(store) {\n" - " if (!this._stores?.delete(store)) return false;\n" - " deactivate(this);\n" - " return true;\n" - " }\n" - " runStores(data, fn, thisArg, ...args) {\n" - " let run = () => { this.publish(data); return Reflect.apply(fn, thisArg, args); };\n" - " for (const [store, transform = (data) => data] of this._stores ?? []) {\n" - " const next = run;\n" - " run = () => {\n" - " let context;\n" - " try { context = transform(data); }\n" - " catch (error) { deferError(error); return next(); }\n" - " return store.run(context, next);\n" - " };\n" - " }\n" - " return run();\n" - " }\n" - " }\n" - " const channel = (name) => {\n" - " const existing = channels.get(name);\n" - " if (existing) return existing;\n" - " if (typeof name !== 'string' && typeof name !== 'symbol') envArgumentError('channel', 'one of type string or symbol', name);\n" - " return new Channel(name);\n" - " };\n" - " const traceEvents = ['start', 'end', 'asyncStart', 'asyncEnd', 'error'];\n" - " class TracingChannel {\n" - " constructor(nameOrChannels) {\n" - " for (const name of traceEvents) {\n" - " let event;\n" - " if (typeof nameOrChannels === 'string') event = channel('tracing:' + nameOrChannels + ':' + name);\n" - " else if (nameOrChannels !== null && typeof nameOrChannels === 'object') {\n" - " event = nameOrChannels[name];\n" - " if (!(event instanceof Channel)) envArgumentError('nameOrChannels.' + name, 'an instance of Channel', event);\n" - " } else envArgumentError('nameOrChannels', 'of type string or an instance of TracingChannel or Object', nameOrChannels);\n" - " Object.defineProperty(this, name, { value: event });\n" - " }\n" - " }\n" - " get hasSubscribers() { return traceEvents.some((name) => this[name]?.hasSubscribers); }\n" - " subscribe(handlers) {\n" - " for (const name of traceEvents) if (handlers[name]) this[name]?.subscribe(handlers[name]);\n" - " }\n" - " unsubscribe(handlers) {\n" - " let done = true;\n" - " for (const name of traceEvents) if (handlers[name] && !this[name]?.unsubscribe(handlers[name])) done = false;\n" - " return done;\n" - " }\n" - " traceSync(fn, context = {}, thisArg, ...args) {\n" - " if (!this.hasSubscribers) return Reflect.apply(fn, thisArg, args);\n" - " return this.start.runStores(context, () => {\n" - " try { const result = Reflect.apply(fn, thisArg, args); context.result = result; return result; }\n" - " catch (error) { context.error = error; this.error.publish(context); throw error; }\n" - " finally { this.end.publish(context); }\n" - " });\n" - " }\n" - " tracePromise(fn, context = {}, thisArg, ...args) {\n" - " if (!this.hasSubscribers) return Reflect.apply(fn, thisArg, args);\n" - " const resolve = (result) => {\n" - " context.result = result;\n" - " this.asyncStart.publish(context);\n" - " this.asyncEnd.publish(context);\n" - " return result;\n" - " };\n" - " const reject = (error) => {\n" - " context.error = error;\n" - " this.error.publish(context);\n" - " this.asyncStart.publish(context);\n" - " this.asyncEnd.publish(context);\n" - " return Promise.reject(error);\n" - " };\n" - " return this.start.runStores(context, () => {\n" - " try {\n" - " let promise = Reflect.apply(fn, thisArg, args);\n" - " if (!(promise instanceof Promise)) promise = Promise.resolve(promise);\n" - " return Promise.prototype.then.call(promise, resolve, reject);\n" - " } catch (error) { context.error = error; this.error.publish(context); throw error; }\n" - " finally { this.end.publish(context); }\n" - " });\n" - " }\n" - " traceCallback(fn, position = -1, context = {}, thisArg, ...args) {\n" - " if (!this.hasSubscribers) return Reflect.apply(fn, thisArg, args);\n" - " const { start, end, asyncStart, asyncEnd, error } = this;\n" - " const callback = args.at(position);\n" - " if (typeof callback !== 'function') envArgumentError('callback', 'of type function', callback);\n" - " function wrappedCallback(err, result) {\n" - " if (err) { context.error = err; error.publish(context); }\n" - " else context.result = result;\n" - " asyncStart.runStores(context, () => {\n" - " try { return Reflect.apply(callback, this, arguments); }\n" - " finally { asyncEnd.publish(context); }\n" - " });\n" - " }\n" - " args.splice(position, 1, wrappedCallback);\n" - " return start.runStores(context, () => {\n" - " try { return Reflect.apply(fn, thisArg, args); }\n" - " catch (err) { context.error = err; error.publish(context); throw err; }\n" - " finally { end.publish(context); }\n" - " });\n" - " }\n" - " }\n" - " const dc = {\n" - " channel,\n" - " subscribe: (name, subscription) => channel(name).subscribe(subscription),\n" - " unsubscribe: (name, subscription) => channel(name).unsubscribe(subscription),\n" - " hasSubscribers: (name) => channels.get(name)?.hasSubscribers ?? false,\n" - " tracingChannel: (nameOrChannels) => new TracingChannel(nameOrChannels),\n" - " Channel,\n" - " };\n" - " dc.default = dc;\n" - " return dc;\n" - " });\n" - " builtins.module = memo(() => {\n" - /* createRequire over the embedded tables: the base may be a file URL - * or a plain path (Node accepts both — embedded module keys are - * realpaths, import.meta.url is their file:// form); resolution walks - * the base FILE's build-time edges and "node:" specifiers go straight - * to the shims. The Emscripten factory pattern - * (createRequire(import.meta.url) then require("node:fs")) works - * end-to-end. */ - " const createRequire = (base) => {\n" - " let key = String(base);\n" - " if (key.startsWith('file://')) key = decodeURIComponent(key.slice(7));\n" - /* The base file is the created require's parent, like Node: modules - * it loads report it in their require stacks. */ - " const parent = new Module(key);\n" - " parent.filename = key;\n" - " parent.paths = modulePathsFrom(parent.path);\n" - " return decorateRequire((spec) => parent.require(spec), parent);\n" - " };\n" - /* builtinModules/isBuiltin answer Node's QUESTION ("is this name a - * Node builtin?") with Node's full list — resolution of unshimmed - * ones still fails lazily at the call, the island's documented - * shape. */ - " const isBuiltin = (name) => {\n" - " const n = String(name);\n" - " return n.startsWith('node:') ? builtinModules.includes(n.slice(5)) : builtinModules.includes(n);\n" - " };\n" - " const m = {\n" - " createRequire,\n" - " builtinModules,\n" - " isBuiltin,\n" - " syncBuiltinESMExports: () => {},\n" - " register: () => {\n" - " throw new Error('module.register is not available in the scriptc island');\n" - " },\n" - " findSourceMap: () => undefined,\n" - " };\n" - " m.default = m;\n" - " return m;\n" - " });\n" - " builtins.url = memo(() => {\n" - /* node:url — the URL/URLSearchParams globals plus the file-path - * converters riding the static scr_url.c implementations (Node's - * exact rules), and the legacy parse/format/resolve trio over the - * WHATWG parser. */ - /* Read user option getters in their engine so thrown values preserve - * identity. The path-to-URL public wrapper validates its path first. */ - " const fileURLToPath = (u, options) => host.urlToPath(u, { windows: options?.windows });\n" - " const fileURLToPathBuffer = (u, options) => builtins.buffer().Buffer.from(host.urlToPathBuffer(u, { windows: options?.windows }));\n" - " const pathToFileURL = (p, options) => new globalThis.URL(host.urlFromPath(p, typeof p === 'string' ? { windows: options?.windows } : undefined));\n" - " const parse = (input, parseQuery) => {\n" - " const out = { protocol: null, slashes: null, auth: null, host: null, port: null,\n" - " hostname: null, hash: null, search: null, query: null, pathname: null, path: null, href: String(input) };\n" - " let u = null;\n" - " try { u = new globalThis.URL(String(input)); } catch (e) { u = null; }\n" - " if (u !== null) {\n" - " out.protocol = u.protocol || null;\n" - " out.slashes = u.href.startsWith(u.protocol + '//') ? true : null;\n" - " out.auth = u.username !== '' ? (u.password !== '' ? u.username + ':' + u.password : u.username) : null;\n" - " out.host = u.host || null;\n" - " out.port = u.port !== '' ? u.port : null;\n" - " out.hostname = u.hostname || null;\n" - " out.hash = u.hash !== '' ? u.hash : null;\n" - " out.search = u.search !== '' ? u.search : null;\n" - " out.query = u.search !== '' ? u.search.slice(1) : null;\n" - " out.pathname = u.pathname || null;\n" - " out.path = (u.pathname || '') + (u.search || '') || null;\n" - " out.href = u.href;\n" - " } else {\n" - " let rest = String(input);\n" - " const hashAt = rest.indexOf('#');\n" - " if (hashAt >= 0) { out.hash = rest.slice(hashAt); rest = rest.slice(0, hashAt); }\n" - " const qAt = rest.indexOf('?');\n" - " if (qAt >= 0) { out.search = rest.slice(qAt); out.query = rest.slice(qAt + 1); rest = rest.slice(0, qAt); }\n" - " out.pathname = rest || null;\n" - " out.path = (rest || '') + (out.search || '') || null;\n" - " }\n" - " if (parseQuery) {\n" - " const q = {};\n" - " for (const [k, v] of new globalThis.URLSearchParams(out.query || '')) {\n" - " if (k in q) { if (Array.isArray(q[k])) q[k].push(v); else q[k] = [q[k], v]; }\n" - " else q[k] = v;\n" - " }\n" - " out.query = q;\n" - " }\n" - " return out;\n" - " };\n" - " const format = (obj) => {\n" - " if (typeof obj === 'string') return obj;\n" - " if (obj !== null && typeof obj === 'object' && typeof obj.href === 'string' && obj instanceof globalThis.URL) return obj.href;\n" - " const protocol = obj.protocol ? (obj.protocol.endsWith(':') ? obj.protocol : obj.protocol + ':') : '';\n" - " const host = obj.host !== undefined && obj.host !== null ? obj.host\n" - " : obj.hostname ? obj.hostname + (obj.port ? ':' + obj.port : '') : '';\n" - " const auth = obj.auth ? obj.auth + '@' : '';\n" - " const slashes = obj.slashes || host !== '' ? '//' : '';\n" - " let pathname = obj.pathname || '';\n" - " if (pathname !== '' && !pathname.startsWith('/') && host !== '') pathname = '/' + pathname;\n" - " let search = obj.search || (obj.query && typeof obj.query === 'object' ? '?' + new globalThis.URLSearchParams(obj.query).toString() : obj.query ? '?' + obj.query : '');\n" - " if (search !== '' && !search.startsWith('?')) search = '?' + search;\n" - " let hash = obj.hash || '';\n" - " if (hash !== '' && !hash.startsWith('#')) hash = '#' + hash;\n" - " return protocol + slashes + auth + host + pathname + search + hash;\n" - " };\n" - " const resolve = (from, to) => {\n" - " const u = new globalThis.URL(String(to), new globalThis.URL(String(from), 'resolve://'));\n" - " if (u.protocol === 'resolve:') return u.pathname + u.search + u.hash;\n" - " return u.href;\n" - " };\n" - " const u = {\n" - " URL: globalThis.URL,\n" - " URLSearchParams: globalThis.URLSearchParams,\n" - " fileURLToPath, fileURLToPathBuffer, pathToFileURL, parse, format, resolve,\n" - /* IDNA is not carried: ASCII hostnames pass through lowercased - * (documented divergence for internationalized domains). */ - " domainToASCII: (d) => String(d).toLowerCase(),\n" - " domainToUnicode: (d) => String(d).toLowerCase(),\n" - " urlToHttpOptions: (u2) => ({ protocol: u2.protocol, hostname: u2.hostname, hash: u2.hash, search: u2.search, pathname: u2.pathname, path: u2.pathname + (u2.search || ''), href: u2.href, port: u2.port !== '' ? Number(u2.port) : undefined, host: u2.host }),\n" - " };\n" - " u.default = u;\n" - " return u;\n" - " });\n" - /* node:buffer — Buffer as a Uint8Array subclass carrying Node's - * surface (from/alloc/concat, the seven encodings, read/write - * accessors, indexOf/fill/copy/swap, the custom - * inspect), developed standalone and differentially tested - * against real Node. Also exposed as the Buffer GLOBAL below, - * exactly like Node. */ - " builtins.buffer = memo(() => {\n" - "function makeBuffer() {\n" - " const K_MAX_LENGTH = 9007199254740991;\n" - " const K_STRING_MAX_LENGTH = 536870888;\n" - " const INSPECT_MAX_BYTES = 50;\n" - " const utf8Enc = new TextEncoder();\n" - " const utf8Dec = new TextDecoder(\"utf-8\", { ignoreBOM: true });\n" - " const B64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n" - " const B64U = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\";\n" - " const b64Val = (() => {\n" - " const t = new Int8Array(256).fill(-1);\n" - " for (let i = 0; i < 64; i++) t[B64.charCodeAt(i)] = i;\n" - " t[\"-\".charCodeAt(0)] = 62;\n" - " t[\"_\".charCodeAt(0)] = 63;\n" - " return t;\n" - " })();\n" - " const normEnc = (enc) => {\n" - " if (enc === undefined || enc === null) return \"utf8\";\n" - " let e = String(enc).toLowerCase();\n" - " if (e === \"utf8\" || e === \"utf-8\") return \"utf8\";\n" - " if (e === \"hex\") return \"hex\";\n" - " if (e === \"base64\") return \"base64\";\n" - " if (e === \"base64url\") return \"base64url\";\n" - " if (e === \"latin1\" || e === \"binary\") return \"latin1\";\n" - " if (e === \"ascii\") return \"ascii\";\n" - " if (e === \"utf16le\" || e === \"utf-16le\" || e === \"ucs2\" || e === \"ucs-2\") return \"utf16le\";\n" - " return null;\n" - " };\n" - " const badEnc = (enc) => {\n" - " const e = new TypeError(\"Unknown encoding: \" + enc);\n" - " e.code = \"ERR_UNKNOWN_ENCODING\";\n" - " return e;\n" - " };\n" - " const outOfRange = (name, range, received) => {\n" - " const e = new RangeError('The value of \"' + name + '\" is out of range. It must be ' + range + \". Received \" + received);\n" - " e.code = \"ERR_OUT_OF_RANGE\";\n" - " return e;\n" - " };\n" - " const invalidBufferSize = (bits) => {\n" - " const e = new RangeError(\"Buffer size must be a multiple of \" + bits + \"-bits\");\n" - " e.code = \"ERR_INVALID_BUFFER_SIZE\";\n" - " return e;\n" - " };\n" - " const invalidArg = (name, expected, actual) => {\n" - " const t = actual == null ? String(actual) : typeof actual === \"object\" ? \"an instance of \" + (actual.constructor && actual.constructor.name || \"Object\") : typeof actual === \"string\" ? \"type string ('\" + actual + \"')\" : \"type \" + typeof actual + \" (\" + String(actual) + (typeof actual === 'bigint' ? 'n' : '') + \")\";\n" - " const label = name === \"first argument\" ? \"The first argument\" : 'The \"' + name + '\" argument';\n" - " const e = new TypeError(label + \" must be \" + expected + \". Received \" + t);\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " return e;\n" - " };\n" - " const encUtf8 = (s) => utf8Enc.encode(s);\n" - " const encLatin1 = (s) => {\n" - " const out = new Uint8Array(s.length);\n" - " for (let i = 0; i < s.length; i++) out[i] = s.charCodeAt(i) & 0xff;\n" - " return out;\n" - " };\n" - " const encHex = (s) => {\n" - " const n = s.length >>> 1;\n" - " const out = new Uint8Array(n);\n" - " let i = 0;\n" - " for (; i < n; i++) {\n" - " const b = parseInt(s.substr(i * 2, 2), 16);\n" - " if (Number.isNaN(b) || !/^[0-9a-fA-F]{2}$/.test(s.substr(i * 2, 2))) break;\n" - " out[i] = b;\n" - " }\n" - " return i === n ? out : out.subarray(0, i);\n" - " };\n" - " const encB64 = (s) => {\n" - " const str = String(s);\n" - " const vals = [];\n" - " for (let i = 0; i < str.length; i++) {\n" - " if (str[i] === \"=\") break;\n" - " const v = b64Val[str.charCodeAt(i)];\n" - " if (v >= 0) vals.push(v);\n" - " }\n" - " const n = Math.floor((vals.length * 6) / 8);\n" - " const out = new Uint8Array(n);\n" - " let buf = 0;\n" - " let bits = 0;\n" - " let o = 0;\n" - " for (let i = 0; i < vals.length; i++) {\n" - " buf = (buf << 6) | vals[i];\n" - " bits += 6;\n" - " if (bits >= 8) {\n" - " bits -= 8;\n" - " out[o++] = (buf >> bits) & 0xff;\n" - " }\n" - " }\n" - " return out;\n" - " };\n" - " const encUtf16 = (s) => {\n" - " const out = new Uint8Array(s.length * 2);\n" - " for (let i = 0; i < s.length; i++) {\n" - " const c = s.charCodeAt(i);\n" - " out[i * 2] = c & 0xff;\n" - " out[i * 2 + 1] = c >>> 8;\n" - " }\n" - " return out;\n" - " };\n" - " const encodeStr = (s, enc) => {\n" - " switch (enc) {\n" - " case \"utf8\": return encUtf8(s);\n" - " case \"latin1\": case \"ascii\": return encLatin1(s);\n" - " case \"hex\": return encHex(s);\n" - " case \"base64\": case \"base64url\": return encB64(s);\n" - " case \"utf16le\": return encUtf16(s);\n" - " }\n" - " };\n" - " const hexChars = \"0123456789abcdef\";\n" - " const decHex = (u8, start, end) => {\n" - " let out = \"\";\n" - " for (let i = start; i < end; i++) {\n" - " out += hexChars[u8[i] >> 4] + hexChars[u8[i] & 0x0f];\n" - " }\n" - " return out;\n" - " };\n" - " const decLatin1 = (u8, start, end) => {\n" - " let out = \"\";\n" - " for (let i = start; i < end; i += 4096) {\n" - " out += String.fromCharCode.apply(null, u8.subarray(i, Math.min(i + 4096, end)));\n" - " }\n" - " return out;\n" - " };\n" - " const decAscii = (u8, start, end) => {\n" - " let out = \"\";\n" - " for (let i = start; i < end; i++) out += String.fromCharCode(u8[i] & 0x7f);\n" - " return out;\n" - " };\n" - " const decB64 = (u8, start, end, url) => {\n" - " const alpha = url ? B64U : B64;\n" - " let out = \"\";\n" - " for (let i = start; i < end; i += 3) {\n" - " const b0 = u8[i];\n" - " const has1 = i + 1 < end;\n" - " const has2 = i + 2 < end;\n" - " const b1 = has1 ? u8[i + 1] : 0;\n" - " const b2 = has2 ? u8[i + 2] : 0;\n" - " const v = (b0 << 16) | (b1 << 8) | b2;\n" - " out += alpha[(v >> 18) & 63];\n" - " out += alpha[(v >> 12) & 63];\n" - " if (has1) out += alpha[(v >> 6) & 63];\n" - " else if (!url) out += \"=\";\n" - " if (has2) out += alpha[v & 63];\n" - " else if (!url) out += \"=\";\n" - " }\n" - " return out;\n" - " };\n" - " const decUtf16 = (u8, start, end) => {\n" - " let out = \"\";\n" - " const n = start + ((end - start) & ~1);\n" - " for (let i = start; i < n; i += 2) {\n" - " out += String.fromCharCode(u8[i] | (u8[i + 1] << 8));\n" - " }\n" - " return out;\n" - " };\n" - " const decodeBytes = (u8, enc, start, end) => {\n" - " if (start < 0) start = 0;\n" - " if (end > u8.length) end = u8.length;\n" - " if (end <= start) return \"\";\n" - " switch (enc) {\n" - " case \"utf8\": return utf8Dec.decode(u8.subarray(start, end));\n" - " case \"latin1\": return decLatin1(u8, start, end);\n" - " case \"ascii\": return decAscii(u8, start, end);\n" - " case \"hex\": return decHex(u8, start, end);\n" - " case \"base64\": return decB64(u8, start, end, false);\n" - " case \"base64url\": return decB64(u8, start, end, true);\n" - " case \"utf16le\": return decUtf16(u8, start, end);\n" - " }\n" - " };\n" - " const checkOffset = (buf, offset, ext) => {\n" - " if (!Number.isInteger(offset)) throw outOfRange(\"offset\", \"an integer\", offset);\n" - " if (offset < 0 || offset + ext > buf.length) {\n" - " if (buf.length - ext < 0) {\n" - " const e = new RangeError(\"Attempt to access memory outside buffer bounds\");\n" - " e.code = \"ERR_BUFFER_OUT_OF_BOUNDS\";\n" - " throw e;\n" - " }\n" - " throw outOfRange(\"offset\", \">= 0 and <= \" + (buf.length - ext), offset);\n" - " }\n" - " };\n" - " const checkValue = (value, min, max, name) => {\n" - " if (value < min || value > max) {\n" - " throw outOfRange(name, \">= \" + min + \" and <= \" + max, value);\n" - " }\n" - " };\n" - " class Buffer extends Uint8Array {\n" - " static alloc(size, fill, encoding) {\n" - " if (typeof size !== \"number\" || Number.isNaN(size)) throw invalidArg(\"size\", \"of type number\", size);\n" - " if (size < 0 || size > K_MAX_LENGTH) throw outOfRange(\"size\", \">= 0 && <= \" + K_MAX_LENGTH, size);\n" - " const b = new Buffer(size);\n" - " if (fill !== undefined && fill !== 0) b.fill(fill, 0, b.length, encoding);\n" - " return b;\n" - " }\n" - " static allocUnsafe(size) {\n" - " return Buffer.alloc(size);\n" - " }\n" - " static allocUnsafeSlow(size) {\n" - " return Buffer.alloc(size);\n" - " }\n" - " static from(value, encodingOrOffset, length) {\n" - " if (typeof value === \"string\") {\n" - " const enc = normEnc(encodingOrOffset);\n" - " if (enc === null) throw badEnc(encodingOrOffset);\n" - " const u8 = encodeStr(value, enc);\n" - " return new Buffer(u8.buffer, u8.byteOffset, u8.length);\n" - " }\n" - " if (value instanceof ArrayBuffer || (typeof SharedArrayBuffer !== \"undefined\" && value instanceof SharedArrayBuffer)) {\n" - " return new Buffer(value, encodingOrOffset, length);\n" - " }\n" - " if (ArrayBuffer.isView(value)) {\n" - " if (value instanceof Uint8Array) {\n" - " const copy = new Buffer(value.length);\n" - " copy.set(value);\n" - " return copy;\n" - " }\n" - " return new Buffer(Uint8Array.from(value).buffer);\n" - " }\n" - " if (value === null || value === undefined) throw invalidArg(\"first argument\", \"of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object\", value);\n" - " if (typeof value === \"object\") {\n" - " if (typeof value.length === \"number\") {\n" - " const n = Math.max(0, Math.floor(value.length) || 0);\n" - " const b = new Buffer(n);\n" - " for (let i = 0; i < n; i++) b[i] = value[i] & 0xff;\n" - " return b;\n" - " }\n" - " if (value.type === \"Buffer\" && Array.isArray(value.data)) {\n" - " return Buffer.from(value.data);\n" - " }\n" - " const prim = value.valueOf && value.valueOf();\n" - " if (prim !== null && prim !== undefined && prim !== value) return Buffer.from(prim, encodingOrOffset, length);\n" - " }\n" - " throw invalidArg(\"first argument\", \"of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object\", value);\n" - " }\n" - " static isBuffer(b) {\n" - " return b instanceof Buffer;\n" - " }\n" - " static isEncoding(enc) {\n" - " return typeof enc === \"string\" && normEnc(enc) !== null;\n" - " }\n" - " static byteLength(value, encoding) {\n" - " if (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) return value.byteLength;\n" - " if (typeof value !== \"string\") throw invalidArg(\"string\", \"of type string or an instance of Buffer or ArrayBuffer\", value);\n" - " const enc = normEnc(encoding);\n" - " switch (enc) {\n" - " case \"latin1\": case \"ascii\": return value.length;\n" - " case \"utf16le\": return value.length * 2;\n" - " case \"hex\": return value.length >>> 1;\n" - " case \"base64\": case \"base64url\": {\n" - " let n = value.length;\n" - " while (n > 0 && (value[n - 1] === \"=\" || value[n - 1] === \" \" || value[n - 1] === \"\\n\" || value[n - 1] === \"\\r\")) n--;\n" - " return Math.floor((n * 6) / 8);\n" - " }\n" - " default: return encUtf8(value).length;\n" - " }\n" - " }\n" - " static concat(list, totalLength) {\n" - " if (!Array.isArray(list)) throw invalidArg(\"list\", \"an instance of Array\", list);\n" - " if (list.length === 0) return new Buffer(0);\n" - " let total = totalLength;\n" - " if (total === undefined) {\n" - " total = 0;\n" - " for (const b of list) total += b.length;\n" - " }\n" - " const out = new Buffer(total);\n" - " let o = 0;\n" - " for (const b of list) {\n" - " if (o >= total) break;\n" - " const chunk = b.length + o > total ? b.subarray(0, total - o) : b;\n" - " out.set(chunk, o);\n" - " o += chunk.length;\n" - " }\n" - " return out;\n" - " }\n" - " static compare(a, b) {\n" - " return a.compare(b);\n" - " }\n" - " toString(encoding, start, end) {\n" - " const enc = normEnc(encoding);\n" - " if (enc === null) throw badEnc(encoding);\n" - " return decodeBytes(this, enc, start === undefined ? 0 : Math.floor(start), end === undefined ? this.length : Math.min(Math.floor(end), this.length));\n" - " }\n" - " toJSON() {\n" - " return { type: \"Buffer\", data: Array.prototype.slice.call(this) };\n" - " }\n" - " equals(other) {\n" - " if (!(other instanceof Uint8Array)) throw invalidArg(\"otherBuffer\", \"an instance of Buffer or Uint8Array\", other);\n" - " if (this === other) return true;\n" - " if (this.length !== other.length) return false;\n" - " for (let i = 0; i < this.length; i++) {\n" - " if (this[i] !== other[i]) return false;\n" - " }\n" - " return true;\n" - " }\n" - " compare(target, targetStart, targetEnd, sourceStart, sourceEnd) {\n" - " if (!(target instanceof Uint8Array)) throw invalidArg(\"target\", \"an instance of Buffer or Uint8Array\", target);\n" - " const ts = targetStart === undefined ? 0 : targetStart;\n" - " const te = targetEnd === undefined ? target.length : targetEnd;\n" - " const ss = sourceStart === undefined ? 0 : sourceStart;\n" - " const se = sourceEnd === undefined ? this.length : sourceEnd;\n" - " const a = this.subarray(ss, se);\n" - " const b = target.subarray(ts, te);\n" - " const n = Math.min(a.length, b.length);\n" - " for (let i = 0; i < n; i++) {\n" - " if (a[i] !== b[i]) return a[i] < b[i] ? -1 : 1;\n" - " }\n" - " return a.length === b.length ? 0 : a.length < b.length ? -1 : 1;\n" - " }\n" - " copy(target, targetStart, sourceStart, sourceEnd) {\n" - " const ts = targetStart === undefined ? 0 : targetStart;\n" - " const ss = sourceStart === undefined ? 0 : sourceStart;\n" - " let se = sourceEnd === undefined ? this.length : sourceEnd;\n" - " if (se > this.length) se = this.length;\n" - " const n = Math.min(se - ss, target.length - ts);\n" - " if (n <= 0) return 0;\n" - " target.set(this.subarray(ss, ss + n), ts);\n" - " return n;\n" - " }\n" - " fill(value, start, end, encoding) {\n" - " let s = 0;\n" - " let e = this.length;\n" - " let enc = encoding;\n" - " if (typeof start === \"string\") {\n" - " enc = start;\n" - " } else {\n" - " if (start !== undefined) s = start;\n" - " if (typeof end === \"string\") enc = end;\n" - " else if (end !== undefined) e = end;\n" - " }\n" - " if (typeof value === \"number\") {\n" - " Uint8Array.prototype.fill.call(this, value & 0xff, s, e);\n" - " return this;\n" - " }\n" - " let pattern;\n" - " if (typeof value === \"string\") {\n" - " const ne = normEnc(enc);\n" - " if (ne === null) throw badEnc(enc);\n" - " pattern = encodeStr(value, ne);\n" - " } else if (value instanceof Uint8Array) {\n" - " pattern = value;\n" - " } else {\n" - " throw invalidArg(\"value\", \"of type string or number or an instance of Buffer or Uint8Array\", value);\n" - " }\n" - " if (pattern.length === 0) {\n" - " Uint8Array.prototype.fill.call(this, 0, s, e);\n" - " return this;\n" - " }\n" - " for (let i = s; i < e; i++) this[i] = pattern[(i - s) % pattern.length];\n" - " return this;\n" - " }\n" - " write(string, offset, length, encoding) {\n" - " if (typeof string !== \"string\") throw invalidArg(\"string\", \"of type string\", string);\n" - " let off = 0;\n" - " let len;\n" - " let enc = \"utf8\";\n" - " if (offset === undefined) {\n" - " len = this.length;\n" - " } else if (typeof offset === \"string\") {\n" - " enc = normEnc(offset);\n" - " if (enc === null) throw badEnc(offset);\n" - " len = this.length;\n" - " } else {\n" - " off = offset;\n" - " if (length === undefined) {\n" - " len = this.length - off;\n" - " } else if (typeof length === \"string\") {\n" - " enc = normEnc(length);\n" - " if (enc === null) throw badEnc(length);\n" - " len = this.length - off;\n" - " } else {\n" - " len = length;\n" - " if (encoding !== undefined) {\n" - " enc = normEnc(encoding);\n" - " if (enc === null) throw badEnc(encoding);\n" - " }\n" - " }\n" - " }\n" - " if (off < 0 || off > this.length) throw outOfRange(\"offset\", \">= 0 and <= \" + this.length, off);\n" - " const bytes = encodeStr(string, enc);\n" - " let n = Math.min(bytes.length, len, this.length - off);\n" - " if (enc === \"utf16le\") n &= ~1;\n" - " if (enc === \"utf8\" && n < bytes.length) {\n" - " while (n > 0 && (bytes[n] & 0xc0) === 0x80) n--;\n" - " }\n" - " this.set(bytes.subarray(0, n), off);\n" - " return n;\n" - " }\n" - " slice(start, end) {\n" - " return this.subarray(start, end);\n" - " }\n" - " toLocaleString(...args) {\n" - " return this.toString(...args);\n" - " }\n" - " inspect() {\n" - " return this[Symbol.for(\"nodejs.util.inspect.custom\")]();\n" - " }\n" - " [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n" - " const max = Math.min(this.length, INSPECT_MAX_BYTES);\n" - " let out = \"> 4] + hexChars[this[i] & 0x0f];\n" - " }\n" - " if (this.length > max) {\n" - " const rest = this.length - max;\n" - " out += \" ... \" + rest + \" more byte\" + (rest > 1 ? \"s\" : \"\");\n" - " }\n" - " return out + \">\";\n" - " }\n" - " indexOf(needle, byteOffset, encoding) {\n" - " return bufIndexOf(this, needle, byteOffset, encoding, true);\n" - " }\n" - " lastIndexOf(needle, byteOffset, encoding) {\n" - " return bufIndexOf(this, needle, byteOffset, encoding, false);\n" - " }\n" - " includes(needle, byteOffset, encoding) {\n" - " return this.indexOf(needle, byteOffset, encoding) !== -1;\n" - " }\n" - " swap16() {\n" - " if (this.length % 2 !== 0) throw invalidBufferSize(\"16\");\n" - " for (let i = 0; i < this.length; i += 2) {\n" - " const t = this[i];\n" - " this[i] = this[i + 1];\n" - " this[i + 1] = t;\n" - " }\n" - " return this;\n" - " }\n" - " swap32() {\n" - " if (this.length % 4 !== 0) throw invalidBufferSize(\"32\");\n" - " for (let i = 0; i < this.length; i += 4) {\n" - " let t = this[i];\n" - " this[i] = this[i + 3];\n" - " this[i + 3] = t;\n" - " t = this[i + 1];\n" - " this[i + 1] = this[i + 2];\n" - " this[i + 2] = t;\n" - " }\n" - " return this;\n" - " }\n" - " swap64() {\n" - " if (this.length % 8 !== 0) throw invalidBufferSize(\"64\");\n" - " for (let i = 0; i < this.length; i += 8) {\n" - " for (let j = 0; j < 4; j++) {\n" - " const t = this[i + j];\n" - " this[i + j] = this[i + 7 - j];\n" - " this[i + 7 - j] = t;\n" - " }\n" - " }\n" - " return this;\n" - " }\n" - " readUInt8(offset = 0) { checkOffset(this, offset, 1); return this[offset]; }\n" - " readUInt16LE(offset = 0) { checkOffset(this, offset, 2); return this[offset] | (this[offset + 1] << 8); }\n" - " readUInt16BE(offset = 0) { checkOffset(this, offset, 2); return (this[offset] << 8) | this[offset + 1]; }\n" - " readUInt32LE(offset = 0) { checkOffset(this, offset, 4); return (this[offset] | (this[offset + 1] << 8) | (this[offset + 2] << 16)) + this[offset + 3] * 0x1000000; }\n" - " readUInt32BE(offset = 0) { checkOffset(this, offset, 4); return this[offset] * 0x1000000 + ((this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3]); }\n" - " readInt8(offset = 0) { checkOffset(this, offset, 1); return (this[offset] << 24) >> 24; }\n" - " readInt16LE(offset = 0) { checkOffset(this, offset, 2); return ((this[offset] | (this[offset + 1] << 8)) << 16) >> 16; }\n" - " readInt16BE(offset = 0) { checkOffset(this, offset, 2); return (((this[offset] << 8) | this[offset + 1]) << 16) >> 16; }\n" - " readInt32LE(offset = 0) { checkOffset(this, offset, 4); return this[offset] | (this[offset + 1] << 8) | (this[offset + 2] << 16) | (this[offset + 3] << 24); }\n" - " readInt32BE(offset = 0) { checkOffset(this, offset, 4); return (this[offset] << 24) | (this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3]; }\n" - " readUIntLE(offset, byteLength) {\n" - " checkOffset(this, offset, byteLength);\n" - " let v = 0;\n" - " let mul = 1;\n" - " for (let i = 0; i < byteLength; i++) {\n" - " v += this[offset + i] * mul;\n" - " mul *= 0x100;\n" - " }\n" - " return v;\n" - " }\n" - " readUIntBE(offset, byteLength) {\n" - " checkOffset(this, offset, byteLength);\n" - " let v = 0;\n" - " for (let i = 0; i < byteLength; i++) v = v * 0x100 + this[offset + i];\n" - " return v;\n" - " }\n" - " readIntLE(offset, byteLength) {\n" - " const v = this.readUIntLE(offset, byteLength);\n" - " const limit = Math.pow(2, 8 * byteLength - 1);\n" - " return v >= limit ? v - limit * 2 : v;\n" - " }\n" - " readIntBE(offset, byteLength) {\n" - " const v = this.readUIntBE(offset, byteLength);\n" - " const limit = Math.pow(2, 8 * byteLength - 1);\n" - " return v >= limit ? v - limit * 2 : v;\n" - " }\n" - " readBigUInt64LE(offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " return new DataView(this.buffer, this.byteOffset, this.byteLength).getBigUint64(offset, true);\n" - " }\n" - " readBigUInt64BE(offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " return new DataView(this.buffer, this.byteOffset, this.byteLength).getBigUint64(offset, false);\n" - " }\n" - " readBigInt64LE(offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " return new DataView(this.buffer, this.byteOffset, this.byteLength).getBigInt64(offset, true);\n" - " }\n" - " readBigInt64BE(offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " return new DataView(this.buffer, this.byteOffset, this.byteLength).getBigInt64(offset, false);\n" - " }\n" - " readFloatLE(offset = 0) {\n" - " checkOffset(this, offset, 4);\n" - " return new DataView(this.buffer, this.byteOffset, this.byteLength).getFloat32(offset, true);\n" - " }\n" - " readFloatBE(offset = 0) {\n" - " checkOffset(this, offset, 4);\n" - " return new DataView(this.buffer, this.byteOffset, this.byteLength).getFloat32(offset, false);\n" - " }\n" - " readDoubleLE(offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " return new DataView(this.buffer, this.byteOffset, this.byteLength).getFloat64(offset, true);\n" - " }\n" - " readDoubleBE(offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " return new DataView(this.buffer, this.byteOffset, this.byteLength).getFloat64(offset, false);\n" - " }\n" - " writeUInt8(value, offset = 0) {\n" - " checkOffset(this, offset, 1);\n" - " checkValue(value, 0, 0xff, \"value\");\n" - " this[offset] = value;\n" - " return offset + 1;\n" - " }\n" - " writeUInt16LE(value, offset = 0) {\n" - " checkOffset(this, offset, 2);\n" - " checkValue(value, 0, 0xffff, \"value\");\n" - " this[offset] = value & 0xff;\n" - " this[offset + 1] = value >>> 8;\n" - " return offset + 2;\n" - " }\n" - " writeUInt16BE(value, offset = 0) {\n" - " checkOffset(this, offset, 2);\n" - " checkValue(value, 0, 0xffff, \"value\");\n" - " this[offset] = value >>> 8;\n" - " this[offset + 1] = value & 0xff;\n" - " return offset + 2;\n" - " }\n" - " writeUInt32LE(value, offset = 0) {\n" - " checkOffset(this, offset, 4);\n" - " checkValue(value, 0, 0xffffffff, \"value\");\n" - " this[offset] = value & 0xff;\n" - " this[offset + 1] = (value >>> 8) & 0xff;\n" - " this[offset + 2] = (value >>> 16) & 0xff;\n" - " this[offset + 3] = (value >>> 24) & 0xff;\n" - " return offset + 4;\n" - " }\n" - " writeUInt32BE(value, offset = 0) {\n" - " checkOffset(this, offset, 4);\n" - " checkValue(value, 0, 0xffffffff, \"value\");\n" - " this[offset] = (value >>> 24) & 0xff;\n" - " this[offset + 1] = (value >>> 16) & 0xff;\n" - " this[offset + 2] = (value >>> 8) & 0xff;\n" - " this[offset + 3] = value & 0xff;\n" - " return offset + 4;\n" - " }\n" - " writeInt8(value, offset = 0) {\n" - " checkOffset(this, offset, 1);\n" - " checkValue(value, -0x80, 0x7f, \"value\");\n" - " this[offset] = value & 0xff;\n" - " return offset + 1;\n" - " }\n" - " writeInt16LE(value, offset = 0) {\n" - " checkOffset(this, offset, 2);\n" - " checkValue(value, -0x8000, 0x7fff, \"value\");\n" - " this[offset] = value & 0xff;\n" - " this[offset + 1] = (value >>> 8) & 0xff;\n" - " return offset + 2;\n" - " }\n" - " writeInt16BE(value, offset = 0) {\n" - " checkOffset(this, offset, 2);\n" - " checkValue(value, -0x8000, 0x7fff, \"value\");\n" - " this[offset] = (value >>> 8) & 0xff;\n" - " this[offset + 1] = value & 0xff;\n" - " return offset + 2;\n" - " }\n" - " writeInt32LE(value, offset = 0) {\n" - " checkOffset(this, offset, 4);\n" - " checkValue(value, -0x80000000, 0x7fffffff, \"value\");\n" - " new DataView(this.buffer, this.byteOffset, this.byteLength).setInt32(offset, value, true);\n" - " return offset + 4;\n" - " }\n" - " writeInt32BE(value, offset = 0) {\n" - " checkOffset(this, offset, 4);\n" - " checkValue(value, -0x80000000, 0x7fffffff, \"value\");\n" - " new DataView(this.buffer, this.byteOffset, this.byteLength).setInt32(offset, value, false);\n" - " return offset + 4;\n" - " }\n" - " writeBigUInt64LE(value, offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " new DataView(this.buffer, this.byteOffset, this.byteLength).setBigUint64(offset, value, true);\n" - " return offset + 8;\n" - " }\n" - " writeBigUInt64BE(value, offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " new DataView(this.buffer, this.byteOffset, this.byteLength).setBigUint64(offset, value, false);\n" - " return offset + 8;\n" - " }\n" - " writeBigInt64LE(value, offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " new DataView(this.buffer, this.byteOffset, this.byteLength).setBigInt64(offset, value, true);\n" - " return offset + 8;\n" - " }\n" - " writeBigInt64BE(value, offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " new DataView(this.buffer, this.byteOffset, this.byteLength).setBigInt64(offset, value, false);\n" - " return offset + 8;\n" - " }\n" - " writeFloatLE(value, offset = 0) {\n" - " checkOffset(this, offset, 4);\n" - " new DataView(this.buffer, this.byteOffset, this.byteLength).setFloat32(offset, value, true);\n" - " return offset + 4;\n" - " }\n" - " writeFloatBE(value, offset = 0) {\n" - " checkOffset(this, offset, 4);\n" - " new DataView(this.buffer, this.byteOffset, this.byteLength).setFloat32(offset, value, false);\n" - " return offset + 4;\n" - " }\n" - " writeDoubleLE(value, offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " new DataView(this.buffer, this.byteOffset, this.byteLength).setFloat64(offset, value, true);\n" - " return offset + 8;\n" - " }\n" - " writeDoubleBE(value, offset = 0) {\n" - " checkOffset(this, offset, 8);\n" - " new DataView(this.buffer, this.byteOffset, this.byteLength).setFloat64(offset, value, false);\n" - " return offset + 8;\n" - " }\n" - " writeUIntLE(value, offset, byteLength) {\n" - " checkOffset(this, offset, byteLength);\n" - " let v = value;\n" - " for (let i = 0; i < byteLength; i++) {\n" - " this[offset + i] = v & 0xff;\n" - " v = Math.floor(v / 0x100);\n" - " }\n" - " return offset + byteLength;\n" - " }\n" - " writeUIntBE(value, offset, byteLength) {\n" - " checkOffset(this, offset, byteLength);\n" - " let v = value;\n" - " for (let i = byteLength - 1; i >= 0; i--) {\n" - " this[offset + i] = v & 0xff;\n" - " v = Math.floor(v / 0x100);\n" - " }\n" - " return offset + byteLength;\n" - " }\n" - " writeIntLE(value, offset, byteLength) {\n" - " return this.writeUIntLE(value < 0 ? value + Math.pow(2, 8 * byteLength) : value, offset, byteLength);\n" - " }\n" - " writeIntBE(value, offset, byteLength) {\n" - " return this.writeUIntBE(value < 0 ? value + Math.pow(2, 8 * byteLength) : value, offset, byteLength);\n" - " }\n" - " }\n" - " Buffer.poolSize = 8192;\n" - " const bufIndexOf = (buf, needle, byteOffset, encoding, first) => {\n" - " let enc = \"utf8\";\n" - " let start = first ? 0 : buf.length - 1;\n" - " if (typeof byteOffset === \"string\") {\n" - " enc = normEnc(byteOffset);\n" - " if (enc === null) throw badEnc(byteOffset);\n" - " } else if (byteOffset !== undefined) {\n" - " start = Math.trunc(byteOffset);\n" - " if (Number.isNaN(start)) start = first ? 0 : buf.length - 1;\n" - " if (start < 0) start = buf.length + start;\n" - " if (encoding !== undefined) {\n" - " enc = normEnc(encoding);\n" - " if (enc === null) throw badEnc(encoding);\n" - " }\n" - " }\n" - " let pat;\n" - " if (typeof needle === \"number\") {\n" - " const b = needle & 0xff;\n" - " if (first) {\n" - " for (let i = Math.max(0, start); i < buf.length; i++) {\n" - " if (buf[i] === b) return i;\n" - " }\n" - " } else {\n" - " for (let i = Math.min(start, buf.length - 1); i >= 0; i--) {\n" - " if (buf[i] === b) return i;\n" - " }\n" - " }\n" - " return -1;\n" - " }\n" - " if (typeof needle === \"string\") pat = encodeStr(needle, enc);\n" - " else if (needle instanceof Uint8Array) pat = needle;\n" - " else throw invalidArg(\"value\", \"of type string or an instance of Buffer or Uint8Array\", needle);\n" - " if (pat.length === 0) {\n" - " if (first) return start < 0 ? 0 : start > buf.length ? buf.length : start;\n" - " return start < 0 ? 0 : Math.min(start, buf.length);\n" - " }\n" - " const match = (i) => {\n" - " for (let j = 0; j < pat.length; j++) {\n" - " if (buf[i + j] !== pat[j]) return false;\n" - " }\n" - " return true;\n" - " };\n" - " if (first) {\n" - " for (let i = Math.max(0, start); i <= buf.length - pat.length; i++) {\n" - " if (match(i)) return i;\n" - " }\n" - " } else {\n" - " for (let i = Math.min(start, buf.length - pat.length); i >= 0; i--) {\n" - " if (match(i)) return i;\n" - " }\n" - " }\n" - " return -1;\n" - " };\n" - " function SlowBuffer(size) { return Buffer.alloc(size); }\n" - " const validationBytes = (input) => {\n" - " if (ArrayBuffer.isView(input) && !(input instanceof DataView)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n" - " if (input instanceof ArrayBuffer || (typeof SharedArrayBuffer === 'function' && input instanceof SharedArrayBuffer)) return new Uint8Array(input);\n" - " throw invalidArg('input', 'an instance of ArrayBuffer, Buffer, or TypedArray', input);\n" - " };\n" - " const isAscii = (input) => {\n" - " const u8 = validationBytes(input);\n" - " for (let i = 0; i < u8.length; i++) {\n" - " if (u8[i] > 0x7f) return false;\n" - " }\n" - " return true;\n" - " };\n" - " const isUtf8 = (input) => {\n" - " const u8 = validationBytes(input);\n" - " let i = 0;\n" - " while (i < u8.length) {\n" - " const b = u8[i];\n" - " let n = 0;\n" - " let min = 0;\n" - " let cp = 0;\n" - " if (b < 0x80) { i++; continue; }\n" - " else if ((b & 0xe0) === 0xc0) { n = 1; min = 0x80; cp = b & 0x1f; }\n" - " else if ((b & 0xf0) === 0xe0) { n = 2; min = 0x800; cp = b & 0x0f; }\n" - " else if ((b & 0xf8) === 0xf0) { n = 3; min = 0x10000; cp = b & 0x07; }\n" - " else return false;\n" - " if (i + n >= u8.length + 1 && i + n > u8.length) return false;\n" - " for (let j = 1; j <= n; j++) {\n" - " if (i + j >= u8.length || (u8[i + j] & 0xc0) !== 0x80) return false;\n" - " cp = (cp << 6) | (u8[i + j] & 0x3f);\n" - " }\n" - " if (cp < min || cp > 0x10ffff || (cp >= 0xd800 && cp <= 0xdfff)) return false;\n" - " i += n + 1;\n" - " }\n" - " return true;\n" - " };\n" - " return {\n" - " Buffer,\n" - " SlowBuffer,\n" - " INSPECT_MAX_BYTES,\n" - " kMaxLength: K_MAX_LENGTH,\n" - " kStringMaxLength: K_STRING_MAX_LENGTH,\n" - " constants: { MAX_LENGTH: K_MAX_LENGTH, MAX_STRING_LENGTH: K_STRING_MAX_LENGTH },\n" - " isAscii,\n" - " isUtf8,\n" - " atob: globalThis.atob,\n" - " btoa: globalThis.btoa,\n" - /* Node re-exports the WHATWG classes here since v18 (undici's - * fetch/file.js extends buffer.Blob at LOAD). The web prelude - * (scr_web.c) owns the implementations. */ - " Blob: globalThis.Blob,\n" - " File: globalThis.File,\n" - " transcode: (source, from, to) => {\n" - " if (!(source instanceof Uint8Array)) throw invalidArg('source', 'an instance of Buffer or Uint8Array', source);\n" - " return Buffer.from(host.transcode(source, from, to));\n" - " },\n" - " resolveObjectURL: () => undefined,\n" - " };\n" - "}\n" - " const mod = makeBuffer();\n" - " mod.default = mod;\n" - " return mod;\n" - " });\n" - /* node:string_decoder — preserve Node's byte buffering independently - * of WHATWG TextDecoder: BOMs, invalid prefixes, UTF-16 pairs, and - * base64 groups retain their chunk-boundary behavior. */ - " builtins.string_decoder = memo(() => {\n" - "function makeStringDecoder(Buffer) {\n" - " const normEnc = (enc) => {\n" - " if (enc === undefined || enc === null || enc === '') return 'utf8';\n" - " const e = typeof enc === 'string' ? enc.toLowerCase() : enc;\n" - " if (e === 'utf8' || e === 'utf-8') return 'utf8';\n" - " if (e === 'hex' || e === 'base64' || e === 'base64url' || e === 'ascii') return e;\n" - " if (e === 'latin1' || e === 'binary') return 'latin1';\n" - " if (e === 'utf16le' || e === 'utf-16le' || e === 'ucs2' || e === 'ucs-2') return 'utf16le';\n" - " const err = new TypeError('Unknown encoding: ' + String(enc));\n" - " err.code = 'ERR_UNKNOWN_ENCODING';\n" - " throw err;\n" - " };\n" - " class StringDecoder {\n" - " constructor(encoding) {\n" - " this.encoding = normEnc(encoding);\n" - " this._encoding = this.encoding;\n" - " this._pending = new Uint8Array(0);\n" - " this._missing = 0;\n" - " }\n" - " write(buf) {\n" - " if (typeof buf === 'string') return buf;\n" - " if (!ArrayBuffer.isView(buf)) {\n" - " const received = buf === null ? 'null' : buf === undefined ? 'undefined' : typeof buf === 'object' ? 'an instance of ' + (buf.constructor && buf.constructor.name || 'Object') : 'type ' + typeof buf + ' (' + String(buf) + ')';\n" - " const err = new TypeError('The \"buf\" argument must be an instance of Buffer, TypedArray, or DataView. Received ' + received);\n" - " err.code = 'ERR_INVALID_ARG_TYPE';\n" - " throw err;\n" - " }\n" - " const bytes = new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n" - " const enc = this._encoding;\n" - " let offset = 0;\n" - " let out = '';\n" - " if (this._missing > 0) {\n" - " let take = Math.min(bytes.length, this._missing);\n" - " if (enc === 'utf8') {\n" - " for (let i = 0; i < take; i++) {\n" - " if ((bytes[i] & 0xc0) !== 0x80) { take = i; this._missing = i; break; }\n" - " }\n" - " }\n" - " const pending = new Uint8Array(this._pending.length + take);\n" - " pending.set(this._pending);\n" - " pending.set(bytes.subarray(0, take), this._pending.length);\n" - " this._pending = pending;\n" - " this._missing -= take;\n" - " offset = take;\n" - " if (this._missing === 0) {\n" - " out = Buffer.from(pending).toString(enc);\n" - " this._pending = new Uint8Array(0);\n" - " }\n" - " if (offset === bytes.length) return out;\n" - " }\n" - " const n = bytes.length - offset;\n" - " let held = 0;\n" - " let total = 0;\n" - " if (enc === 'utf8') {\n" - " for (let back = 1; back <= Math.min(n, 3); back++) {\n" - " const b = bytes[bytes.length - back];\n" - " if ((b & 0xc0) === 0x80) continue;\n" - " total = (b & 0xe0) === 0xc0 ? 2 : (b & 0xf0) === 0xe0 ? 3 : (b & 0xf8) === 0xf0 ? 4 : 0;\n" - " if (back < total) held = back;\n" - " break;\n" - " }\n" - " } else if (enc === 'utf16le') {\n" - " if (n % 2) { held = 1; total = 2; }\n" - " else if (n >= 2 && (bytes[bytes.length - 1] & 0xfc) === 0xd8) { held = 2; total = 4; }\n" - " } else if (enc === 'base64' || enc === 'base64url') {\n" - " held = n % 3;\n" - " total = 3;\n" - " }\n" - " const end = bytes.length - held;\n" - " this._pending = bytes.slice(end);\n" - " this._missing = held ? total - held : 0;\n" - " return out + Buffer.from(bytes.subarray(offset, end)).toString(enc);\n" - " }\n" - " end(buf) {\n" - " const out = buf === undefined ? '' : this.write(buf);\n" - " const tail = Buffer.from(this._pending).toString(this._encoding);\n" - " this._pending = new Uint8Array(0);\n" - " this._missing = 0;\n" - " return out + tail;\n" - " }\n" - " }\n" - " return { StringDecoder };\n" - "}\n" - " const mod = makeStringDecoder(builtins.buffer().Buffer);\n" - " mod.default = mod;\n" - " return mod;\n" - " });\n" - /* node:crypto — the hashing/random slice over host bridges - * (MD5/SHA-1/SHA-2 digest + HMAC through the same C - * implementations the static lowerings use; randomness through - * the web prelude's CSPRNG), pbkdf2 over the HMAC bridge, and - * honest throwing stubs for the key/cipher machinery the island - * does not carry. Differentially tested against real Node. */ - " builtins.crypto = memo(() => {\n" - "function makeCrypto(env) {\n" - " const Buffer = env.Buffer;\n" - " const webcrypto = globalThis.crypto;\n" - " const toU8 = (data, enc, name) => {\n" - " if (typeof data === \"string\") return Buffer.from(data, enc === undefined ? \"utf8\" : enc);\n" - " if (data instanceof Uint8Array) return data;\n" - " if (ArrayBuffer.isView(data)) return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n" - " if (data instanceof ArrayBuffer) return new Uint8Array(data);\n" - " const e = new TypeError('The \"' + name + '\" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received ' + (data === null ? \"null\" : typeof data === \"object\" ? \"an instance of \" + ((data.constructor && data.constructor.name) || \"Object\") : typeof data === \"undefined\" ? \"undefined\" : \"type \" + typeof data + \" (\" + JSON.stringify(data) + \")\"));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " };\n" - " const unsupportedDigest = () => {\n" - " return new Error(\"Digest method not supported\");\n" - " };\n" - " const concatChunks = (chunks) => {\n" - " let total = 0;\n" - " for (const c of chunks) total += c.length;\n" - " const out = new Uint8Array(total);\n" - " let o = 0;\n" - " for (const c of chunks) {\n" - " out.set(c, o);\n" - " o += c.length;\n" - " }\n" - " return out;\n" - " };\n" - " class Hash {\n" - " constructor(algorithm, from) {\n" - " if (from === undefined) {\n" - " const alg = String(algorithm).toLowerCase();\n" - " if (env.digest(alg, new Uint8Array(0)) === undefined) throw unsupportedDigest();\n" - " this._alg = alg;\n" - " this._chunks = [];\n" - " } else {\n" - " this._alg = from._alg;\n" - " this._chunks = from._chunks.slice();\n" - " }\n" - " this._done = false;\n" - " }\n" - " update(data, inputEncoding) {\n" - " if (this._done) {\n" - " const e = new Error(\"Digest already called\");\n" - " e.code = \"ERR_CRYPTO_HASH_FINALIZED\";\n" - " throw e;\n" - " }\n" - " this._chunks.push(toU8(data, inputEncoding, \"data\"));\n" - " return this;\n" - " }\n" - " copy() {\n" - " return new Hash(this._alg, this);\n" - " }\n" - " digest(outputEncoding) {\n" - " if (this._done) {\n" - " const e = new Error(\"Digest already called\");\n" - " e.code = \"ERR_CRYPTO_HASH_FINALIZED\";\n" - " throw e;\n" - " }\n" - " this._done = true;\n" - " const raw = env.digest(this._alg, concatChunks(this._chunks));\n" - " const buf = Buffer.from(raw.buffer, raw.byteOffset, raw.length);\n" - " return outputEncoding === undefined || outputEncoding === \"buffer\" ? buf : buf.toString(outputEncoding);\n" - " }\n" - " }\n" - " class Hmac {\n" - " constructor(algorithm, key) {\n" - " const alg = String(algorithm).toLowerCase();\n" - " if (env.digest(alg, new Uint8Array(0)) === undefined) throw unsupportedDigest();\n" - " this._alg = alg;\n" - " this._key = toU8(key, \"utf8\", \"key\");\n" - " this._chunks = [];\n" - " this._done = false;\n" - " }\n" - " update(data, inputEncoding) {\n" - " this._chunks.push(toU8(data, inputEncoding, \"data\"));\n" - " return this;\n" - " }\n" - " digest(outputEncoding) {\n" - " this._done = true;\n" - " const raw = env.hmac(this._alg, this._key, concatChunks(this._chunks));\n" - " const buf = Buffer.from(raw.buffer, raw.byteOffset, raw.length);\n" - " return outputEncoding === undefined || outputEncoding === \"buffer\" ? buf : buf.toString(outputEncoding);\n" - " }\n" - " }\n" - " const createHash = (algorithm) => new Hash(algorithm);\n" - " const createHmac = (algorithm, key) => new Hmac(algorithm, key);\n" - " const hash = (algorithm, data, outputEncoding) => {\n" - " const h = new Hash(algorithm);\n" - " h.update(typeof data === \"string\" ? Buffer.from(data, \"utf8\") : data);\n" - " return h.digest(outputEncoding === undefined ? \"hex\" : outputEncoding);\n" - " };\n" - " const fillRandom = (u8) => {\n" - " for (let i = 0; i < u8.length; i += 65536) {\n" - " webcrypto.getRandomValues(u8.subarray(i, Math.min(i + 65536, u8.length)));\n" - " }\n" - " return u8;\n" - " };\n" - " const randomBytes = (size, callback) => {\n" - " if (typeof size !== \"number\" || Number.isNaN(size) || size < 0) {\n" - " const e = new RangeError('The value of \"size\" is out of range. It must be >= 0 && <= 2147483647. Received ' + size);\n" - " e.code = \"ERR_OUT_OF_RANGE\";\n" - " throw e;\n" - " }\n" - " const buf = fillRandom(Buffer.alloc(size));\n" - " if (typeof callback === \"function\") {\n" - " queueMicrotask(() => callback(null, buf));\n" - " return undefined;\n" - " }\n" - " return buf;\n" - " };\n" - " const randomFillSync = (buf, offset, size) => {\n" - " const off = offset === undefined ? 0 : offset;\n" - " const n = size === undefined ? buf.byteLength - off : size;\n" - " const u8 = buf instanceof Uint8Array ? buf : new Uint8Array(buf.buffer || buf);\n" - " fillRandom(u8.subarray(off, off + n));\n" - " return buf;\n" - " };\n" - " const randomFill = (buf, ...rest) => {\n" - " const callback = rest.pop();\n" - " if (typeof callback !== \"function\") {\n" - " const e = new TypeError('The \"callback\" argument must be of type function. Received ' + (callback === undefined ? \"undefined\" : \"type \" + typeof callback));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " randomFillSync(buf, ...rest);\n" - " queueMicrotask(() => callback(null, buf));\n" - " };\n" - " const randomInt = (min, max, callback) => {\n" - " if (max === undefined || typeof max === \"function\") {\n" - " callback = max;\n" - " max = min;\n" - " min = 0;\n" - " }\n" - " if (!Number.isSafeInteger(min)) {\n" - " const e = new TypeError('The \"min\" argument must be a safe integer. Received ' + min);\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " if (max <= min) {\n" - " const e = new RangeError('The value of \"max\" is out of range. It must be greater than the value of \"min\" (' + min + \"). Received \" + max);\n" - " e.code = \"ERR_OUT_OF_RANGE\";\n" - " throw e;\n" - " }\n" - " const range = max - min;\n" - " const draw = () => {\n" - " const bytes = fillRandom(new Uint8Array(6));\n" - " let v = 0;\n" - " for (let i = 0; i < 6; i++) v = v * 256 + bytes[i];\n" - " return v;\n" - " };\n" - " const limit = Math.floor(Math.pow(2, 48) / range) * range;\n" - " let v = draw();\n" - " while (v >= limit) v = draw();\n" - " const result = min + (v % range);\n" - " if (typeof callback === \"function\") {\n" - " queueMicrotask(() => callback(null, result));\n" - " return undefined;\n" - " }\n" - " return result;\n" - " };\n" - " const randomUUID = () => webcrypto.randomUUID();\n" - " const timingSafeEqual = (a, b) => {\n" - " const ua = toU8(a, undefined, \"buf1\");\n" - " const ub = toU8(b, undefined, \"buf2\");\n" - " if (ua.byteLength !== ub.byteLength) {\n" - " const e = new RangeError(\"Input buffers must have the same byte length\");\n" - " e.code = \"ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH\";\n" - " throw e;\n" - " }\n" - " let diff = 0;\n" - " for (let i = 0; i < ua.length; i++) diff |= ua[i] ^ ub[i];\n" - " return diff === 0;\n" - " };\n" - " const pbkdf2Sync = (password, salt, iterations, keylen, digestAlg) => {\n" - " const alg = String(digestAlg).toLowerCase();\n" - " if (env.digest(alg, new Uint8Array(0)) === undefined) throw unsupportedDigest();\n" - " const pw = toU8(password, undefined, \"password\");\n" - " const st = toU8(salt, undefined, \"salt\");\n" - " const hLen = env.digest(alg, new Uint8Array(0)).length;\n" - " const blocks = Math.ceil(keylen / hLen);\n" - " const dk = new Uint8Array(blocks * hLen);\n" - " for (let i = 1; i <= blocks; i++) {\n" - " const block = new Uint8Array(st.length + 4);\n" - " block.set(st, 0);\n" - " block[st.length] = (i >>> 24) & 0xff;\n" - " block[st.length + 1] = (i >>> 16) & 0xff;\n" - " block[st.length + 2] = (i >>> 8) & 0xff;\n" - " block[st.length + 3] = i & 0xff;\n" - " let u = env.hmac(alg, pw, block);\n" - " const t = new Uint8Array(u);\n" - " for (let j = 1; j < iterations; j++) {\n" - " u = env.hmac(alg, pw, u);\n" - " for (let k = 0; k < hLen; k++) t[k] ^= u[k];\n" - " }\n" - " dk.set(t, (i - 1) * hLen);\n" - " }\n" - " return Buffer.from(dk.buffer, 0, keylen);\n" - " };\n" - " const pbkdf2 = (password, salt, iterations, keylen, digestAlg, callback) => {\n" - " if (typeof callback !== \"function\") {\n" - " const e = new TypeError('The \"callback\" argument must be of type function. Received undefined');\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " let derived;\n" - " try {\n" - " derived = pbkdf2Sync(password, salt, iterations, keylen, digestAlg);\n" - " } catch (err) {\n" - " queueMicrotask(() => callback(err));\n" - " return;\n" - " }\n" - " queueMicrotask(() => callback(null, derived));\n" - " };\n" - " const kdfError = (kind, code, message) => {\n" - " const error = new kind(message);\n" - " error.code = code;\n" - " return error;\n" - " };\n" - " const kdfNumber = (value) => Number.isInteger(value) && Math.abs(value) > 4294967296 ? String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \"_\") : String(value);\n" - " const kdfInteger = (value, name, max) => {\n" - " if (typeof value !== \"number\") {\n" - " const received = value === null ? \"null\" : value === undefined ? \"undefined\" : typeof value === \"object\" ? \"an instance of \" + ((value.constructor && value.constructor.name) || \"Object\") : \"type \" + typeof value + \" (\" + (typeof value === \"string\" ? \"'\" + value + \"'\" : String(value)) + \")\";\n" - " throw kdfError(TypeError, \"ERR_INVALID_ARG_TYPE\", 'The \"' + name + '\" argument must be of type number. Received ' + received);\n" - " }\n" - " if (!Number.isInteger(value) || value < 0 || value > max) {\n" - " const range = Number.isInteger(value) ? \">= 0 && <= \" + max : \"an integer\";\n" - " throw kdfError(RangeError, \"ERR_OUT_OF_RANGE\", 'The value of \"' + name + '\" is out of range. It must be ' + range + '. Received ' + kdfNumber(value));\n" - " }\n" - " return value;\n" - " };\n" - " const kdfInput = (value, name, hkdfKey = false, hkdfSource = false) => {\n" - " if (typeof value === \"string\") return Buffer.from(value);\n" - " if (value instanceof ArrayBuffer) return new Uint8Array(value);\n" - " if (ArrayBuffer.isView(value)) return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n" - " const received = value === null ? \"null\" : value === undefined ? \"undefined\" : typeof value === \"object\" ? \"an instance of \" + ((value.constructor && value.constructor.name) || \"Object\") : \"type \" + typeof value + \" (\" + (typeof value === \"string\" ? \"'\" + value + \"'\" : String(value)) + \")\";\n" - " const expected = hkdfKey ? \"string or an instance of SecretKeyObject, ArrayBuffer, TypedArray, DataView, or Buffer\" : hkdfSource ? \"string or an instance of ArrayBuffer, TypedArray, DataView, or Buffer\" : \"string or an instance of ArrayBuffer, Buffer, TypedArray, or DataView\";\n" - " throw kdfError(TypeError, \"ERR_INVALID_ARG_TYPE\", 'The \"' + name + '\" argument must be of type ' + expected + '. Received ' + received);\n" - " };\n" - " const kdfCallback = (callback) => {\n" - " if (typeof callback !== \"function\") {\n" - " const received = callback === undefined ? \"undefined\" : callback === null ? \"null\" : typeof callback === \"object\" ? \"an instance of \" + ((callback.constructor && callback.constructor.name) || \"Object\") : \"type \" + typeof callback + \" (\" + String(callback) + \")\";\n" - " throw kdfError(TypeError, \"ERR_INVALID_ARG_TYPE\", 'The \"callback\" argument must be of type function. Received ' + received);\n" - " }\n" - " };\n" - " const hkdfParameters = (digest, ikm, salt, info, keylen) => {\n" - " if (typeof digest !== \"string\") {\n" - " const received = digest === undefined ? \"undefined\" : digest === null ? \"null\" : \"type \" + typeof digest + \" (\" + String(digest) + \")\";\n" - " throw kdfError(TypeError, \"ERR_INVALID_ARG_TYPE\", 'The \"digest\" argument must be of type string. Received ' + received);\n" - " }\n" - " ikm = kdfInput(ikm, \"ikm\", true);\n" - " salt = kdfInput(salt, \"salt\", false, true);\n" - " info = kdfInput(info, \"info\", false, true);\n" - " kdfInteger(keylen, \"length\", Number.MAX_SAFE_INTEGER);\n" - " if (info.length > 1024) throw kdfError(RangeError, \"ERR_OUT_OF_RANGE\", 'The value of \"info\" is out of range. It must be must not contain more than 1024 bytes. Received ' + info.length);\n" - " return [digest, ikm, salt, info, keylen];\n" - " };\n" - " const hkdfDerive = (digest, ikm, salt, info, keylen) => {\n" - " const prk = env.hmac(digest.toLowerCase(), salt, ikm);\n" - " if (prk === undefined) throw kdfError(TypeError, \"ERR_CRYPTO_INVALID_DIGEST\", \"Invalid digest: \" + digest);\n" - " if (keylen > 255 * prk.length) {\n" - " prk.fill(0);\n" - " throw kdfError(RangeError, \"ERR_CRYPTO_INVALID_KEYLEN\", \"Invalid key length\");\n" - " }\n" - " const result = new Uint8Array(keylen);\n" - " let previous = new Uint8Array(0), offset = 0;\n" - " for (let counter = 1; offset < keylen; counter++) {\n" - " const block = new Uint8Array(previous.length + info.length + 1);\n" - " block.set(previous);\n" - " block.set(info, previous.length);\n" - " block[block.length - 1] = counter;\n" - " const next = env.hmac(digest.toLowerCase(), prk, block);\n" - " previous.fill(0);\n" - " block.fill(0);\n" - " previous = next;\n" - " const take = Math.min(next.length, keylen - offset);\n" - " result.set(next.subarray(0, take), offset);\n" - " offset += take;\n" - " }\n" - " prk.fill(0);\n" - " previous.fill(0);\n" - " return result.buffer;\n" - " };\n" - " const hkdfSync = (digest, ikm, salt, info, keylen) => {\n" - " const result = hkdfDerive(...hkdfParameters(digest, ikm, salt, info, keylen));\n" - " if (result.byteLength === 0) throw new Error(\"Deriving bits failed\");\n" - " return result;\n" - " };\n" - " const hkdf = (digest, ikm, salt, info, keylen, callback) => {\n" - " const params = hkdfParameters(digest, ikm, salt, info, keylen);\n" - " kdfCallback(callback);\n" - " const result = hkdfDerive(...params);\n" - " setImmediate(() => result.byteLength === 0 ? callback(new Error(\"Deriving bits failed\")) : callback(null, result));\n" - " };\n" - " const scryptParameters = (password, salt, keylen, options) => {\n" - " password = kdfInput(password, \"password\");\n" - " salt = kdfInput(salt, \"salt\");\n" - " kdfInteger(keylen, \"keylen\", 2147483647);\n" - " const values = [16384, 8, 1, 33554432];\n" - " if (options) {\n" - " const names = [\"N\", \"r\", \"p\"], aliases = [\"cost\", \"blockSize\", \"parallelization\"];\n" - " for (let i = 0; i < 3; i++) {\n" - " const name = names[i], alias = aliases[i], present = options[name] !== undefined;\n" - " if (present) values[i] = kdfInteger(options[name], name, 4294967295);\n" - " if (options[alias] !== undefined) {\n" - " if (present) throw kdfError(TypeError, \"ERR_INCOMPATIBLE_OPTION_PAIR\", 'Option \"' + name + '\" cannot be used in combination with option \"' + alias + '\"');\n" - " values[i] = kdfInteger(options[alias], alias, 4294967295);\n" - " }\n" - " }\n" - " if (options.maxmem !== undefined) values[3] = kdfInteger(options.maxmem, \"maxmem\", Number.MAX_SAFE_INTEGER);\n" - " }\n" - " return [password, salt, keylen, ...values];\n" - " };\n" - " const scryptSync = (password, salt, keylen, options) => Buffer.from(env.scrypt(...scryptParameters(password, salt, keylen, options)));\n" - " const scrypt = (password, salt, keylen, options, callback) => {\n" - " if (callback === undefined) { callback = options; options = undefined; }\n" - " const params = scryptParameters(password, salt, keylen, options);\n" - " kdfCallback(callback);\n" - " const result = Buffer.from(env.scrypt(...params));\n" - " setImmediate(() => callback(null, result));\n" - " };\n" - " const die = (name) => function unsupported() {\n" - " throw new Error(\"crypto.\" + name + \" is not available in the scriptc island (the embedded runtime carries the hashing/random/KDF slice only)\");\n" - " };\n" - " class KeyObject {\n" - " constructor() {\n" - " throw new Error(\"crypto.KeyObject is not available in the scriptc island (the embedded runtime carries the hashing/random/KDF slice only)\");\n" - " }\n" - " }\n" - " const constants = {\n" - " RSA_PKCS1_PADDING: 1,\n" - " RSA_NO_PADDING: 3,\n" - " RSA_PKCS1_OAEP_PADDING: 4,\n" - " RSA_PKCS1_PSS_PADDING: 6,\n" - " RSA_PSS_SALTLEN_DIGEST: -1,\n" - " RSA_PSS_SALTLEN_MAX_SIGN: -2,\n" - " RSA_PSS_SALTLEN_AUTO: -2,\n" - " defaultCoreCipherList: \"TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256\",\n" - " };\n" - " constants.defaultCipherList = constants.defaultCoreCipherList;\n" - " const crypto = {\n" - " createHash, createHmac, hash, Hash, Hmac,\n" - " randomBytes, randomFillSync, randomFill, randomInt, randomUUID,\n" - " getRandomValues: (ta) => webcrypto.getRandomValues(ta),\n" - " timingSafeEqual, pbkdf2, pbkdf2Sync, hkdf, hkdfSync, scrypt, scryptSync,\n" - " getHashes: () => [\"md5\", \"sha1\", \"sha224\", \"sha256\", \"sha384\", \"sha512\"],\n" - " getCiphers: () => [],\n" - " getCurves: () => [],\n" - " webcrypto,\n" - " constants,\n" - " KeyObject,\n" - " createCipheriv: die(\"createCipheriv\"),\n" - " createDecipheriv: die(\"createDecipheriv\"),\n" - " createSign: die(\"createSign\"),\n" - " createVerify: die(\"createVerify\"),\n" - " createDiffieHellman: die(\"createDiffieHellman\"),\n" - " createECDH: die(\"createECDH\"),\n" - " createPublicKey: die(\"createPublicKey\"),\n" - " createPrivateKey: die(\"createPrivateKey\"),\n" - " createSecretKey: die(\"createSecretKey\"),\n" - " diffieHellman: die(\"diffieHellman\"),\n" - " generateKeyPair: die(\"generateKeyPair\"),\n" - " generateKeyPairSync: die(\"generateKeyPairSync\"),\n" - " generateKey: die(\"generateKey\"),\n" - " generateKeySync: die(\"generateKeySync\"),\n" - " sign: die(\"sign\"),\n" - " verify: die(\"verify\"),\n" - " publicEncrypt: die(\"publicEncrypt\"),\n" - " publicDecrypt: die(\"publicDecrypt\"),\n" - " privateEncrypt: die(\"privateEncrypt\"),\n" - " privateDecrypt: die(\"privateDecrypt\"),\n" - " X509Certificate: die(\"X509Certificate\"),\n" - " Certificate: die(\"Certificate\"),\n" - " checkPrime: die(\"checkPrime\"),\n" - " checkPrimeSync: die(\"checkPrimeSync\"),\n" - " generatePrime: die(\"generatePrime\"),\n" - " generatePrimeSync: die(\"generatePrimeSync\"),\n" - " secureHeapUsed: die(\"secureHeapUsed\"),\n" - " setEngine: die(\"setEngine\"),\n" - " setFips: () => {},\n" - " getFips: () => 0,\n" - " };\n" - " crypto.subtle = webcrypto ? webcrypto.subtle : undefined;\n" - " return crypto;\n" - "}\n" - " const mod = makeCrypto({ digest: (a, d) => host.digest(a, d), hmac: (a, k, d) => host.hmac(a, k, d), scrypt: (...args) => host.scrypt(...args), Buffer: builtins.buffer().Buffer });\n" - " mod.default = mod;\n" - " return mod;\n" - " });\n" - /* node:stream (+ stream/promises, stream/consumers, stream/web) — - * the five stream classes over the events shim, with Node's - * observable ordering (state.sync deferral, prefinish ticks, - * finish/end per final-hook presence), pipe chains with - * drain-based backpressure, pipeline/finished both spellings, - * and async iteration — differentially pinned against Node. */ - " builtins.stream = memo(() => {\n" - "function makeStream(env) {\n" - " const EventEmitter = env.EventEmitter;\n" - " const Buffer = env.Buffer;\n" - " const StringDecoder = env.StringDecoder;\n" - " const nextTick = env.nextTick;\n" - " const ERR_PREMATURE = () => {\n" - " const e = new Error(\"Premature close\");\n" - " e.code = \"ERR_STREAM_PREMATURE_CLOSE\";\n" - " return e;\n" - " };\n" - " const ERR_PUSH_AFTER_EOF = () => {\n" - " const e = new Error(\"stream.push() after EOF\");\n" - " e.code = \"ERR_STREAM_PUSH_AFTER_EOF\";\n" - " return e;\n" - " };\n" - " const ERR_WRITE_AFTER_END = () => {\n" - " const e = new Error(\"write after end\");\n" - " e.code = \"ERR_STREAM_WRITE_AFTER_END\";\n" - " return e;\n" - " };\n" - " const ERR_DESTROYED = (what) => {\n" - " const e = new Error(\"Cannot call \" + what + \" after a stream was destroyed\");\n" - " e.code = \"ERR_STREAM_DESTROYED\";\n" - " return e;\n" - " };\n" - " const ERR_METHOD_NOT_IMPLEMENTED = (name) => {\n" - " const e = new Error(\"The \" + name + \" method is not implemented\");\n" - " e.code = \"ERR_METHOD_NOT_IMPLEMENTED\";\n" - " return e;\n" - " };\n" - " class Stream extends EventEmitter {\n" - " constructor(opts) {\n" - " super();\n" - " void opts;\n" - " }\n" - " pipe(dest, options) {\n" - " return pipeImpl(this, dest, options);\n" - " }\n" - " }\n" - " const chunkOf = (stream, chunk, encoding) => {\n" - " if (stream._objectMode) return chunk;\n" - " if (typeof chunk === \"string\") return Buffer.from(chunk, encoding === undefined || encoding === null || encoding === \"buffer\" ? \"utf8\" : encoding);\n" - " return chunk;\n" - " };\n" - " class Readable extends Stream {\n" - " constructor(options) {\n" - " super();\n" - " const opts = options || {};\n" - " this._objectMode = !!(opts.objectMode || opts.readableObjectMode);\n" - " this._hwm = opts.highWaterMark !== undefined ? opts.highWaterMark\n" - " : opts.readableHighWaterMark !== undefined ? opts.readableHighWaterMark\n" - " : this._objectMode ? 16 : " ISL_STREAM_DEFAULT_HWM ";\n" - " if (typeof opts.read === \"function\") this._read = opts.read;\n" - " if (typeof opts.destroy === \"function\") this._destroy = opts.destroy;\n" - " this._rBuf = [];\n" - " this._rLen = 0;\n" - " this._sync = true; /* Node's state.sync: true at start and during _read */\n" - " this._flowing = null;\n" - " this._rEnded = false; /* push(null) seen */\n" - " this._rEmittedEnd = false;\n" - " this._reading = false;\n" - " this._readRequested = false;\n" - " this.destroyed = false;\n" - " this._rErrored = null;\n" - " this._decoder = null;\n" - " this._encoding = null;\n" - " this._closeEmitted = false;\n" - " if (opts.encoding) this.setEncoding(opts.encoding);\n" - " if (typeof opts.signal === \"object\" && opts.signal !== null && typeof opts.signal.addEventListener === \"function\") {\n" - " opts.signal.addEventListener(\"abort\", () => {\n" - " const e = new Error(\"The operation was aborted\");\n" - " e.code = \"ABORT_ERR\";\n" - " e.name = \"AbortError\";\n" - " this.destroy(e);\n" - " });\n" - " }\n" - " }\n" - " get readableEnded() { return this._rEmittedEnd; }\n" - " get readableFlowing() { return this._flowing; }\n" - " get readableLength() { return this._rLen; }\n" - " get readableHighWaterMark() { return this._hwm; }\n" - " get readableObjectMode() { return this._objectMode; }\n" - " get readable() {\n" - " return !this._rEmittedEnd && !this.destroyed && this._rErrored === null;\n" - " }\n" - " get errored() { return this._rErrored; }\n" - " get closed() { return this._closeEmitted; }\n" - " _read() {\n" - " throw ERR_METHOD_NOT_IMPLEMENTED(\"_read()\");\n" - " }\n" - " setEncoding(enc) {\n" - " this._decoder = new StringDecoder(enc);\n" - " this._encoding = this._decoder.encoding;\n" - " if (this._rBuf.length) {\n" - " const chunks = this._rBuf;\n" - " this._rBuf = [];\n" - " this._rLen = 0;\n" - " for (const c of chunks) {\n" - " const s = typeof c === \"string\" ? c : this._decoder.write(c);\n" - " if (s.length) {\n" - " this._rBuf.push(s);\n" - " this._rLen += s.length;\n" - " }\n" - " }\n" - " }\n" - " return this;\n" - " }\n" - " push(chunk, encoding) {\n" - " if (chunk === null) {\n" - " this._rEnded = true;\n" - " this._maybeEmitEnd();\n" - " return false;\n" - " }\n" - " if (this._rEmittedEnd || (this._rEnded && !this._objectMode)) {\n" - " this.emit(\"error\", ERR_PUSH_AFTER_EOF());\n" - " return false;\n" - " }\n" - " let c = chunkOf(this, chunk, encoding);\n" - " if (this._decoder && typeof c !== \"string\") {\n" - " c = this._decoder.write(c);\n" - " if (c.length === 0) return !this._rEnded && this._rLen < this._hwm;\n" - " }\n" - " this._rBuf.push(c);\n" - " this._rLen += this._objectMode ? 1 : c.length;\n" - " this._pushed = true;\n" - " if (this._flowing === true && this._rLen === (this._objectMode ? 1 : c.length) && !this._sync && !this._reading) {\n" - " this._takeChunk();\n" - " this.emit(\"data\", c);\n" - " } else if (this._flowing === true) {\n" - " if (!this._reading) nextTick(() => this._emitData());\n" - " } else {\n" - " nextTick(() => this.emit(\"readable\"));\n" - " }\n" - " return !this._rEnded && this._rLen < this._hwm;\n" - " }\n" - " unshift(chunk, encoding) {\n" - " if (chunk === null || chunk === undefined) return;\n" - " let c = chunkOf(this, chunk, encoding);\n" - " if (this._decoder && typeof c !== \"string\") c = this._decoder.write(c);\n" - " this._rBuf.unshift(c);\n" - " this._rLen += this._objectMode ? 1 : c.length;\n" - " }\n" - " _callRead() {\n" - " while (!this._reading && !this._rEnded && !this.destroyed) {\n" - " this._reading = true;\n" - " this._pushed = false;\n" - " this._sync = true;\n" - " try {\n" - " this._read(this._hwm);\n" - " } catch (err) {\n" - " this.destroy(err);\n" - " }\n" - " this._sync = false;\n" - " this._reading = false;\n" - " if (this._flowing === true) this._drainData();\n" - " else this._maybeEmitEnd();\n" - " if (!(this._flowing === true && this._pushed && !this._rEnded && !this.destroyed)) break;\n" - " }\n" - " }\n" - " _drainData() {\n" - " while (this._flowing === true && this._rBuf.length > 0 && !this.destroyed) {\n" - " const c = this._takeChunk();\n" - " this.emit(\"data\", c);\n" - " }\n" - " this._maybeEmitEnd();\n" - " }\n" - " _emitData() {\n" - " this._drainData();\n" - " if (this._flowing === true && !this._rEnded && !this.destroyed) {\n" - " this._callRead();\n" - " }\n" - " }\n" - " _takeChunk() {\n" - " const c = this._rBuf.shift();\n" - " this._rLen -= this._objectMode ? 1 : c.length;\n" - " return c;\n" - " }\n" - " _maybeEmitEnd() {\n" - " if (this._rEnded && this._rBuf.length === 0 && !this._rEmittedEnd && !this.destroyed) {\n" - " this._rEmittedEnd = true;\n" - " if (this._decoder) {\n" - " const tail = this._decoder.end();\n" - " if (tail.length) {\n" - " this._rEmittedEnd = false;\n" - " this._rBuf.push(tail);\n" - " this._rLen += tail.length;\n" - " if (this._flowing === true) this._emitData();\n" - " return;\n" - " }\n" - " }\n" - " nextTick(() => {\n" - " this.emit(\"end\");\n" - " this._maybeClose();\n" - " });\n" - " }\n" - " }\n" - " _maybeClose() {\n" - " if (this._closeEmitted || this.destroyed) return;\n" - " this._closeEmitted = true;\n" - " nextTick(() => this.emit(\"close\"));\n" - " }\n" - " read(n) {\n" - " if (this._rBuf.length === 0) {\n" - " this._callRead();\n" - " }\n" - " if (this._rBuf.length === 0) {\n" - " this._maybeEmitEnd();\n" - " return null;\n" - " }\n" - " if (n === undefined || n === null) {\n" - " if (this._objectMode) return this._takeChunk();\n" - " let out;\n" - " if (typeof this._rBuf[0] === \"string\") {\n" - " out = this._rBuf.join(\"\");\n" - " } else {\n" - " out = Buffer.concat(this._rBuf);\n" - " }\n" - " this._rBuf = [];\n" - " this._rLen = 0;\n" - " this._maybeEmitEnd();\n" - " return out;\n" - " }\n" - " if (this._objectMode) return this._takeChunk();\n" - " if (n <= 0) return null;\n" - " if (this._rLen === 0) return null;\n" - " if (n >= this._rLen) return this.read();\n" - " let out;\n" - " if (typeof this._rBuf[0] === \"string\") {\n" - " let s = \"\";\n" - " while (s.length < n && this._rBuf.length) {\n" - " const c = this._takeChunk();\n" - " if (s.length + c.length <= n) {\n" - " s += c;\n" - " } else {\n" - " const take = n - s.length;\n" - " s += c.slice(0, take);\n" - " this._rBuf.unshift(c.slice(take));\n" - " this._rLen += c.length - take;\n" - " }\n" - " }\n" - " out = s;\n" - " } else {\n" - " const parts = [];\n" - " let got = 0;\n" - " while (got < n && this._rBuf.length) {\n" - " const c = this._takeChunk();\n" - " if (got + c.length <= n) {\n" - " parts.push(c);\n" - " got += c.length;\n" - " } else {\n" - " const take = n - got;\n" - " parts.push(c.subarray(0, take));\n" - " this._rBuf.unshift(c.subarray(take));\n" - " this._rLen += c.length - take;\n" - " got = n;\n" - " }\n" - " }\n" - " out = Buffer.concat(parts);\n" - " }\n" - " this._maybeEmitEnd();\n" - " return out;\n" - " }\n" - " on(name, fn) {\n" - " super.on(name, fn);\n" - " if (name === \"data\") {\n" - " if (this._flowing !== false) {\n" - " this._flowing = true;\n" - " nextTick(() => this._emitData());\n" - " }\n" - " } else if (name === \"readable\") {\n" - " if (this._rBuf.length > 0 || this._rEnded) {\n" - " nextTick(() => this.emit(\"readable\"));\n" - " } else {\n" - " nextTick(() => this._callRead());\n" - " }\n" - " }\n" - " return this;\n" - " }\n" - " addListener(name, fn) { return this.on(name, fn); }\n" - " pause() {\n" - " this._flowing = false;\n" - " return this;\n" - " }\n" - " resume() {\n" - " if (this._flowing !== true) {\n" - " this._flowing = true;\n" - " nextTick(() => this._emitData());\n" - " }\n" - " return this;\n" - " }\n" - " isPaused() { return this._flowing === false; }\n" - " _destroy(err, cb) { cb(err); }\n" - " destroy(err) {\n" - " if (this.destroyed) return this;\n" - " this.destroyed = true;\n" - " this._rErrored = err || null;\n" - " this._destroy(err || null, (er) => {\n" - " if (er) nextTick(() => this.emit(\"error\", er));\n" - " else if (err) nextTick(() => this.emit(\"error\", err));\n" - " if (!this._closeEmitted) {\n" - " this._closeEmitted = true;\n" - " nextTick(() => this.emit(\"close\"));\n" - " }\n" - " });\n" - " return this;\n" - " }\n" - " unpipe(dest) {\n" - " unpipeImpl(this, dest);\n" - " return this;\n" - " }\n" - " wrap() { throw ERR_METHOD_NOT_IMPLEMENTED(\"wrap()\"); }\n" - " [Symbol.asyncIterator]() {\n" - " const stream = this;\n" - " let done = false;\n" - " return {\n" - " next() {\n" - " return new Promise((resolve, reject) => {\n" - " if (done || stream._rEmittedEnd) {\n" - " done = true;\n" - " resolve({ value: undefined, done: true });\n" - " return;\n" - " }\n" - " const tryRead = () => {\n" - " const c = stream.read();\n" - " if (c !== null) {\n" - " cleanup();\n" - " resolve({ value: c, done: false });\n" - " return true;\n" - " }\n" - " if (stream._rEmittedEnd || (stream._rEnded && stream._rBuf.length === 0)) {\n" - " cleanup();\n" - " done = true;\n" - " resolve({ value: undefined, done: true });\n" - " return true;\n" - " }\n" - " return false;\n" - " };\n" - " const onReadable = () => { tryRead(); };\n" - " const onEnd = () => {\n" - " cleanup();\n" - " done = true;\n" - " resolve({ value: undefined, done: true });\n" - " };\n" - " const onError = (err) => {\n" - " cleanup();\n" - " done = true;\n" - " reject(err);\n" - " };\n" - " const cleanup = () => {\n" - " stream.removeListener(\"readable\", onReadable);\n" - " stream.removeListener(\"end\", onEnd);\n" - " stream.removeListener(\"error\", onError);\n" - " };\n" - " if (tryRead()) return;\n" - " stream.on(\"readable\", onReadable);\n" - " stream.on(\"end\", onEnd);\n" - " stream.on(\"error\", onError);\n" - " });\n" - " },\n" - " return() {\n" - " done = true;\n" - " stream.destroy();\n" - " return Promise.resolve({ value: undefined, done: true });\n" - " },\n" - " [Symbol.asyncIterator]() { return this; },\n" - " };\n" - " }\n" - " static from(iterable) {\n" - " const r = new Readable({ objectMode: true, read() {} });\n" - " (async () => {\n" - " try {\n" - " if (typeof iterable === \"string\" || iterable instanceof Buffer || iterable instanceof Uint8Array) {\n" - " r.push(iterable);\n" - " } else {\n" - " for await (const chunk of iterable) r.push(chunk);\n" - " }\n" - " r.push(null);\n" - " } catch (err) {\n" - " r.destroy(err);\n" - " }\n" - " })();\n" - " return r;\n" - " }\n" - " }\n" - " const pipeImpl = (src, dest, options) => {\n" - " const endOnFinish = !options || options.end !== false;\n" - " const onData = (chunk) => {\n" - " const ok = dest.write(chunk);\n" - " if (ok === false) src.pause();\n" - " };\n" - " const onDrain = () => src.resume();\n" - " const onEnd = () => {\n" - " if (endOnFinish) dest.end();\n" - " };\n" - " src.on(\"data\", onData);\n" - " dest.on(\"drain\", onDrain);\n" - " src.on(\"end\", onEnd);\n" - " const cleanup = () => {\n" - " src.removeListener(\"data\", onData);\n" - " dest.removeListener(\"drain\", onDrain);\n" - " src.removeListener(\"end\", onEnd);\n" - " };\n" - " if (!src._pipes) src._pipes = [];\n" - " src._pipes.push({ dest, cleanup });\n" - " dest.emit(\"pipe\", src);\n" - " return dest;\n" - " };\n" - " const unpipeImpl = (src, dest) => {\n" - " if (!src._pipes) return;\n" - " for (let i = src._pipes.length - 1; i >= 0; i--) {\n" - " if (dest === undefined || src._pipes[i].dest === dest) {\n" - " src._pipes[i].cleanup();\n" - " const d = src._pipes[i].dest;\n" - " src._pipes.splice(i, 1);\n" - " d.emit(\"unpipe\", src);\n" - " }\n" - " }\n" - " };\n" - " class Writable extends Stream {\n" - " constructor(options) {\n" - " super();\n" - " const opts = options || {};\n" - " this._objectMode = !!(opts.objectMode || opts.writableObjectMode);\n" - " this._wom = this._objectMode;\n" - " this._whwm = opts.highWaterMark !== undefined ? opts.highWaterMark\n" - " : opts.writableHighWaterMark !== undefined ? opts.writableHighWaterMark\n" - " : this._wom ? 16 : " ISL_STREAM_DEFAULT_HWM ";\n" - " if (typeof opts.write === \"function\") this._write = opts.write;\n" - " if (typeof opts.writev === \"function\") this._writev = opts.writev;\n" - " if (typeof opts.final === \"function\") this._final = opts.final;\n" - " if (typeof opts.destroy === \"function\") this._destroy = opts.destroy;\n" - " this._decodeStrings = opts.decodeStrings !== false;\n" - " this._wQueue = [];\n" - " this._wLen = 0;\n" - " this._writing = false;\n" - " this._wEnded = false;\n" - " this._wFinished = false;\n" - " this._needDrain = false;\n" - " this.destroyed = false;\n" - " this._wErrored = null;\n" - " this._wCloseEmitted = false;\n" - " this._defaultEncoding = opts.defaultEncoding || \"utf8\";\n" - " }\n" - " get writableEnded() { return this._wEnded; }\n" - " get writableFinished() { return this._wFinished; }\n" - " get writableLength() { return this._wLen; }\n" - " get writableHighWaterMark() { return this._whwm; }\n" - " get writableObjectMode() { return this._wom; }\n" - " get writable() {\n" - " return !this._wEnded && !this.destroyed && this._wErrored === null;\n" - " }\n" - " get errored() { return this._wErrored; }\n" - " get closed() { return this._wCloseEmitted; }\n" - " _write(chunk, encoding, callback) {\n" - " if (this._writev) {\n" - " this._writev([{ chunk, encoding }], callback);\n" - " return;\n" - " }\n" - " throw ERR_METHOD_NOT_IMPLEMENTED(\"_write()\");\n" - " }\n" - " write(chunk, encoding, callback) {\n" - " if (typeof encoding === \"function\") {\n" - " callback = encoding;\n" - " encoding = null;\n" - " }\n" - " if (this._wEnded) {\n" - " const err = ERR_WRITE_AFTER_END();\n" - " nextTick(() => {\n" - " if (typeof callback === \"function\") callback(err);\n" - " this.emit(\"error\", err);\n" - " });\n" - " return false;\n" - " }\n" - " if (this.destroyed) {\n" - " const err = ERR_DESTROYED(\"write\");\n" - " nextTick(() => {\n" - " if (typeof callback === \"function\") callback(err);\n" - " this.emit(\"error\", err);\n" - " });\n" - " return false;\n" - " }\n" - " let c = chunk;\n" - " let enc = encoding || this._defaultEncoding;\n" - " if (!this._wom && typeof chunk === \"string\" && this._decodeStrings) {\n" - " c = Buffer.from(chunk, enc);\n" - " enc = \"buffer\";\n" - " } else if (!this._wom && typeof chunk !== \"string\") {\n" - " enc = \"buffer\";\n" - " }\n" - " this._wQueue.push({ chunk: c, encoding: enc, callback });\n" - " this._wLen += this._wom ? 1 : (c.length !== undefined ? c.length : 1);\n" - " const ret = this._wLen < this._whwm;\n" - " if (!ret) this._needDrain = true;\n" - " this._processWrites();\n" - " return ret;\n" - " }\n" - " _processWrites() {\n" - " if (this._writing || this.destroyed) return;\n" - " const entry = this._wQueue.shift();\n" - " if (entry === undefined) {\n" - " if (this._wEnded && !this._wFinished && !this._finalCalled) {\n" - " this._finalCalled = true;\n" - " if (this._final) nextTick(() => this._runFinal());\n" - " else this._runFinal();\n" - " }\n" - " if (this._needDrain && !this._wEnded) {\n" - " this._needDrain = false;\n" - " nextTick(() => this.emit(\"drain\"));\n" - " }\n" - " return;\n" - " }\n" - " this._runWrite(entry);\n" - " }\n" - " _runFinal() {\n" - " const finish = (err) => {\n" - " if (err) {\n" - " this.destroy(err);\n" - " return;\n" - " }\n" - " this._wFinished = true;\n" - " nextTick(() => {\n" - " this.emit(\"finish\");\n" - " this._maybeCloseW();\n" - " });\n" - " };\n" - " if (this._final) {\n" - " try {\n" - " this._final.call(this, finish);\n" - " } catch (err) {\n" - " finish(err);\n" - " }\n" - " } else {\n" - " finish();\n" - " }\n" - " }\n" - " _runWrite(entry) {\n" - " this._writing = true;\n" - " const done = (err) => {\n" - " this._writing = false;\n" - " this._wLen -= this._wom ? 1 : (entry.chunk.length !== undefined ? entry.chunk.length : 1);\n" - " if (typeof entry.callback === \"function\") {\n" - " nextTick(() => entry.callback(err || null));\n" - " }\n" - " if (err) {\n" - " this.destroy(err);\n" - " return;\n" - " }\n" - " nextTick(() => this._processWrites());\n" - " };\n" - " try {\n" - " this._write.call(this, entry.chunk, entry.encoding, done);\n" - " } catch (err) {\n" - " done(err);\n" - " }\n" - " }\n" - " end(chunk, encoding, callback) {\n" - " if (typeof chunk === \"function\") {\n" - " callback = chunk;\n" - " chunk = null;\n" - " encoding = null;\n" - " } else if (typeof encoding === \"function\") {\n" - " callback = encoding;\n" - " encoding = null;\n" - " }\n" - " if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n" - " this._wEnded = true;\n" - " if (typeof callback === \"function\") {\n" - " if (this._wFinished) nextTick(callback);\n" - " else if (typeof this.prependOnceListener === \"function\") this.prependOnceListener(\"finish\", () => callback());\n" - " else this.once(\"finish\", () => callback());\n" - " }\n" - " this._processWrites();\n" - " return this;\n" - " }\n" - " cork() {}\n" - " uncork() {}\n" - " setDefaultEncoding(enc) {\n" - " this._defaultEncoding = enc;\n" - " return this;\n" - " }\n" - " _destroy(err, cb) { cb(err); }\n" - " destroy(err) {\n" - " if (this.destroyed) return this;\n" - " this.destroyed = true;\n" - " this._wErrored = err || null;\n" - " this._destroy(err || null, (er) => {\n" - " const finalErr = er || err;\n" - " if (finalErr) nextTick(() => this.emit(\"error\", finalErr));\n" - " this._maybeCloseW();\n" - " });\n" - " return this;\n" - " }\n" - " _maybeCloseW() {\n" - " if (this._wCloseEmitted) return;\n" - " this._wCloseEmitted = true;\n" - " nextTick(() => this.emit(\"close\"));\n" - " }\n" - " }\n" - " class Duplex extends Readable {\n" - " constructor(options) {\n" - " super(options);\n" - " const opts = options || {};\n" - " const w = new Writable(opts);\n" - " this._wSide = w;\n" - " this._whwm = w._whwm;\n" - " this._wQueue = w._wQueue;\n" - " if (typeof opts.write === \"function\") this._write = opts.write;\n" - " if (typeof opts.writev === \"function\") this._writev = opts.writev;\n" - " if (typeof opts.final === \"function\") this._final = opts.final;\n" - " this._wObjectMode = !!(opts.objectMode || opts.writableObjectMode);\n" - " this._decodeStrings = opts.decodeStrings !== false;\n" - " this._wLen = 0;\n" - " this._writing = false;\n" - " this._wEnded = false;\n" - " this._wFinished = false;\n" - " this._needDrain = false;\n" - " this._wErrored = null;\n" - " this._wCloseEmitted = false;\n" - " this._finalCalled = false;\n" - " this._defaultEncoding = opts.defaultEncoding || \"utf8\";\n" - " this.allowHalfOpen = opts.allowHalfOpen !== false;\n" - " }\n" - " get writableEnded() { return this._wEnded; }\n" - " get writableFinished() { return this._wFinished; }\n" - " get writableLength() { return this._wLen; }\n" - " get writableHighWaterMark() { return this._whwm; }\n" - " get writableObjectMode() { return this._wom; }\n" - " get writable() {\n" - " return !this._wEnded && !this.destroyed && this._wErrored === null;\n" - " }\n" - " }\n" - " for (const m of [\"_write\", \"write\", \"_processWrites\", \"_runFinal\", \"_runWrite\", \"end\", \"cork\", \"uncork\", \"setDefaultEncoding\", \"_maybeCloseW\"]) {\n" - " Duplex.prototype[m] = Writable.prototype[m];\n" - " }\n" - " Duplex.prototype._maybeCloseW = function () {\n" - " this._maybeClose();\n" - " };\n" - " class Transform extends Duplex {\n" - " constructor(options) {\n" - " super(options);\n" - " const opts = options || {};\n" - " if (typeof opts.transform === \"function\") this._transform = opts.transform;\n" - " if (typeof opts.flush === \"function\") this._flush = opts.flush;\n" - " }\n" - " _read() {}\n" - " _transform() {\n" - " throw ERR_METHOD_NOT_IMPLEMENTED(\"_transform()\");\n" - " }\n" - " _write(chunk, encoding, callback) {\n" - " try {\n" - " this._transform.call(this, chunk, encoding, (err, data) => {\n" - " if (err) {\n" - " callback(err);\n" - " return;\n" - " }\n" - " if (data !== undefined && data !== null) this.push(data);\n" - " callback();\n" - " });\n" - " } catch (err) {\n" - " callback(err);\n" - " }\n" - " }\n" - " _final(callback) {\n" - " if (this._flushCalled) {\n" - " callback();\n" - " return;\n" - " }\n" - " this._flushCalled = true;\n" - " if (this._flush) {\n" - " try {\n" - " this._flush.call(this, (err, data) => {\n" - " if (err) {\n" - " callback(err);\n" - " return;\n" - " }\n" - " if (data !== undefined && data !== null) this.push(data);\n" - " this.push(null);\n" - " callback();\n" - " });\n" - " } catch (err) {\n" - " callback(err);\n" - " }\n" - " } else {\n" - " this.push(null);\n" - " callback();\n" - " }\n" - " }\n" - " }\n" - " class PassThrough extends Transform {\n" - " _transform(chunk, encoding, callback) {\n" - " callback(null, chunk);\n" - " }\n" - " }\n" - " const isReadableLike = (s) => s instanceof Readable || (s && typeof s.on === \"function\" && typeof s.read === \"function\" && typeof s.write !== \"function\");\n" - " const finished = (stream, opts, callback) => {\n" - " if (typeof opts === \"function\") {\n" - " callback = opts;\n" - " opts = {};\n" - " }\n" - " let called = false;\n" - " const done = (err) => {\n" - " if (called) return;\n" - " called = true;\n" - " cleanup();\n" - " callback.call(stream, err);\n" - " };\n" - " const readable = typeof stream.push === \"function\" || typeof stream.read === \"function\";\n" - " const writable = typeof stream.write === \"function\";\n" - " let readableEnded = !readable || stream._rEmittedEnd === true;\n" - " let writableFinished = !writable || stream._wFinished === true;\n" - " const onEnd = () => {\n" - " readableEnded = true;\n" - " if (writableFinished) done(null);\n" - " };\n" - " const onFinish = () => {\n" - " writableFinished = true;\n" - " if (readableEnded) done(null);\n" - " };\n" - " const onError = (err) => done(err);\n" - " const onClose = () => {\n" - " if (readableEnded && writableFinished) {\n" - " done(null);\n" - " } else if (stream.destroyed && stream.errored) {\n" - " done(stream.errored);\n" - " } else {\n" - " done(ERR_PREMATURE());\n" - " }\n" - " };\n" - " const cleanup = () => {\n" - " stream.removeListener(\"end\", onEnd);\n" - " stream.removeListener(\"finish\", onFinish);\n" - " stream.removeListener(\"error\", onError);\n" - " stream.removeListener(\"close\", onClose);\n" - " };\n" - " if (readableEnded && writableFinished) {\n" - " nextTick(() => done(null));\n" - " return () => {};\n" - " }\n" - " if (stream.destroyed) {\n" - " nextTick(() => onClose());\n" - " return () => {};\n" - " }\n" - " stream.on(\"end\", onEnd);\n" - " stream.on(\"finish\", onFinish);\n" - " stream.on(\"error\", onError);\n" - " stream.on(\"close\", onClose);\n" - " return cleanup;\n" - " };\n" - " const pipeline = (...args) => {\n" - " const callback = args.pop();\n" - " if (typeof callback !== \"function\") {\n" - " const e = new TypeError('The \"callback\" argument must be of type function');\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " let streams = Array.isArray(args[0]) && args.length === 1 ? args[0] : args;\n" - " if (streams.length < 2) {\n" - " const e = new TypeError(\"The `streams` argument must be specified\");\n" - " e.code = \"ERR_MISSING_ARGS\";\n" - " throw e;\n" - " }\n" - " if (typeof streams[0][Symbol.asyncIterator] === \"function\" && typeof streams[0].pipe !== \"function\") {\n" - " streams = [Readable.from(streams[0]), ...streams.slice(1)];\n" - " } else if (typeof streams[0][Symbol.iterator] === \"function\" && typeof streams[0].pipe !== \"function\" && typeof streams[0] !== \"string\") {\n" - " streams = [Readable.from(streams[0]), ...streams.slice(1)];\n" - " }\n" - " let settled = false;\n" - " const tail = streams[streams.length - 1];\n" - " const settle = (err) => {\n" - " if (settled) return;\n" - " settled = true;\n" - " if (err) {\n" - " for (const s of streams) {\n" - " if (typeof s.destroy === \"function\" && !s.destroyed) s.destroy(err);\n" - " }\n" - " }\n" - " callback(err || null);\n" - " };\n" - " for (let i = 0; i < streams.length; i++) {\n" - " streams[i].on(\"error\", (err) => settle(err));\n" - " }\n" - " finished(tail, (err) => settle(err));\n" - " for (let i = 0; i < streams.length - 1; i++) {\n" - " streams[i].pipe(streams[i + 1]);\n" - " }\n" - " return tail;\n" - " };\n" - " const promises = {\n" - " pipeline: (...streams) => new Promise((resolve, reject) => {\n" - " pipeline(...streams, (err) => (err ? reject(err) : resolve()));\n" - " }),\n" - " finished: (stream, opts) => new Promise((resolve, reject) => {\n" - " finished(stream, opts || {}, (err) => (err ? reject(err) : resolve()));\n" - " }),\n" - " };\n" - " const consumers = {\n" - " text: async (stream) => {\n" - " let out = \"\";\n" - " const dec = new StringDecoder(\"utf8\");\n" - " for await (const chunk of stream) {\n" - " out += typeof chunk === \"string\" ? chunk : dec.write(chunk);\n" - " }\n" - " out += dec.end();\n" - " return out;\n" - " },\n" - " buffer: async (stream) => {\n" - " const parts = [];\n" - " for await (const chunk of stream) {\n" - " parts.push(typeof chunk === \"string\" ? Buffer.from(chunk) : Buffer.from(chunk.buffer === undefined ? chunk : chunk));\n" - " }\n" - " return Buffer.concat(parts);\n" - " },\n" - " arrayBuffer: async (stream) => {\n" - " const buf = await consumers.buffer(stream);\n" - " return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n" - " },\n" - " json: async (stream) => JSON.parse(await consumers.text(stream)),\n" - " blob: async () => {\n" - " throw new Error(\"stream.consumers.blob is not available in the scriptc island\");\n" - " },\n" - " };\n" - " const addAbortSignal = (signal, stream) => {\n" - " if (signal && typeof signal.addEventListener === \"function\") {\n" - " signal.addEventListener(\"abort\", () => {\n" - " const e = new Error(\"The operation was aborted\");\n" - " e.code = \"ABORT_ERR\";\n" - " e.name = \"AbortError\";\n" - " stream.destroy(e);\n" - " });\n" - " }\n" - " return stream;\n" - " };\n" - " Stream.Stream = Stream;\n" - " Stream.Readable = Readable;\n" - " Stream.Writable = Writable;\n" - " Stream.Duplex = Duplex;\n" - " Stream.Transform = Transform;\n" - " Stream.PassThrough = PassThrough;\n" - " Stream.pipeline = pipeline;\n" - " Stream.finished = finished;\n" - " Stream.addAbortSignal = addAbortSignal;\n" - " Stream.promises = promises;\n" - " Stream.isErrored = (s) => !!(s && s.errored);\n" - " Stream.isDestroyed = (s) => !!(s && s.destroyed);\n" - " Stream.isReadable = (s) => !!(s && s.readable);\n" - " Stream.isWritable = (s) => !!(s && s.writable);\n" - " void isReadableLike;\n" - " return { Stream, Readable, Writable, Duplex, Transform, PassThrough, pipeline, finished, addAbortSignal, promises, consumers };\n" - "}\n" - " const mod = makeStream({ EventEmitter: builtins.events(), Buffer: builtins.buffer().Buffer, StringDecoder: builtins.string_decoder().StringDecoder, nextTick: (fn) => queueMicrotask(fn) });\n" - " const s = mod.Stream;\n" - " s.default = s;\n" - " return s;\n" - " });\n" - " builtins['stream/promises'] = memo(() => {\n" - " const p = { ...builtins.stream().promises };\n" - " p.default = p;\n" - " return p;\n" - " });\n" - /* stream/consumers lives on the shim factory result; the stream - * module itself does not re-export it (Node's layout). */ - " builtins['stream/consumers'] = memo(() => {\n" - " const Buffer = builtins.buffer().Buffer;\n" - " const SD = builtins.string_decoder().StringDecoder;\n" - " const text = async (stream) => {\n" - " let out = '';\n" - " const d = new SD('utf8');\n" - " for await (const chunk of stream) out += typeof chunk === 'string' ? chunk : d.write(chunk);\n" - " return out + d.end();\n" - " };\n" - " const buffer = async (stream) => {\n" - " const parts = [];\n" - " for await (const chunk of stream) parts.push(typeof chunk === 'string' ? Buffer.from(chunk) : Buffer.from(chunk));\n" - " return Buffer.concat(parts);\n" - " };\n" - " const arrayBuffer = async (stream) => {\n" - " const b = await buffer(stream);\n" - " return b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength);\n" - " };\n" - " const json = async (stream) => JSON.parse(await text(stream));\n" - " const blob = async () => { throw new Error('stream.consumers.blob is not available in the scriptc island'); };\n" - " const c = { text, buffer, arrayBuffer, json, blob };\n" - " c.default = c;\n" - " return c;\n" - " });\n" - /* stream/web re-exports the web prelude's implemented classes. */ - " builtins['stream/web'] = memo(() => {\n" - " const g = globalThis;\n" - " const w = {\n" - " ReadableStream: g.ReadableStream, TransformStream: g.TransformStream,\n" - " ReadableStreamDefaultReader: g.ReadableStreamDefaultReader, ReadableStreamDefaultController: g.ReadableStreamDefaultController,\n" - " TextDecoderStream: g.TextDecoderStream, TextEncoderStream: g.TextEncoderStream,\n" - " TransformStreamDefaultController: g.TransformStreamDefaultController,\n" - " WritableStream: g.WritableStream, WritableStreamDefaultWriter: g.WritableStreamDefaultWriter,\n" - " WritableStreamDefaultController: g.WritableStreamDefaultController,\n" - " CountQueuingStrategy: g.CountQueuingStrategy, ByteLengthQueuingStrategy: g.ByteLengthQueuingStrategy,\n" - " };\n" - " w.default = w;\n" - " return w;\n" - " });\n" - /* node:assert (+ assert/strict) — the assertion surface over - * util's deep-equality machinery, matching Node's codes, - * operators, and simple generated-message forms (rich diff - * bodies and call-source introspection are not carried — - * documented divergence). */ - " builtins.assert = memo(() => {\n" - "function makeAssert(env) {\n" - " const isDeepStrictEqual = env.isDeepStrictEqual;\n" - " const inspect = env.inspect;\n" - " class AssertionError extends Error {\n" - " constructor(options) {\n" - " const opts = options || {};\n" - " let message = opts.message;\n" - " let generated = false;\n" - " if (message === undefined || message === null) {\n" - " generated = true;\n" - " const a = inspect(opts.actual, { depth: 2 });\n" - " const b = inspect(opts.expected, { depth: 2 });\n" - " switch (opts.operator) {\n" - " case \"strictEqual\":\n" - " message = \"Expected values to be strictly equal:\\n\\n\" + a + \" !== \" + b + \"\\n\";\n" - " break;\n" - " case \"notStrictEqual\":\n" - " message = \"Expected \\\"actual\\\" to be strictly unequal to: \" + b;\n" - " break;\n" - " case \"deepStrictEqual\":\n" - " message = \"Expected values to be strictly deep-equal:\\n\\n\" + a + \" !== \" + b + \"\\n\";\n" - " break;\n" - " case \"notDeepStrictEqual\":\n" - " message = \"Expected \\\"actual\\\" not to be strictly deep-equal to:\\n\\n\" + b + \"\\n\";\n" - " break;\n" - " case \"==\":\n" - " message = \"Expected values to be loosely equal:\\n\\n\" + a + \" != \" + b + \"\\n\";\n" - " break;\n" - " case \"!=\":\n" - " message = \"Expected \\\"actual\\\" to be loosely unequal to:\\n\\n\" + b + \"\\n\";\n" - " break;\n" - " case \"fail\":\n" - " message = \"Failed\";\n" - " break;\n" - " default:\n" - " message = a + \" \" + (opts.operator || \"==\") + \" \" + b;\n" - " }\n" - " } else if (message instanceof Error) {\n" - " throw message;\n" - " }\n" - " super(String(message));\n" - " this.name = \"AssertionError\";\n" - " this.code = \"ERR_ASSERTION\";\n" - " this.actual = opts.actual;\n" - " this.expected = opts.expected;\n" - " this.operator = opts.operator;\n" - " this.generatedMessage = opts.generatedMessage !== undefined ? opts.generatedMessage : generated;\n" - " }\n" - " }\n" - " function fail(actual, expected, message, operator) {\n" - " const argsLen = arguments.length;\n" - " if (argsLen === 0) {\n" - " throw new AssertionError({ message: \"Failed\", operator: \"fail\", generatedMessage: true });\n" - " }\n" - " if (argsLen === 1) {\n" - " throw new AssertionError({ message: actual === undefined ? \"Failed\" : actual, operator: \"fail\", generatedMessage: actual === undefined });\n" - " }\n" - " if (argsLen === 2) operator = \"!=\";\n" - " throw new AssertionError({ message, actual, expected, operator: operator || \"fail\" });\n" - " }\n" - " const innerOk = (value, message) => {\n" - " if (!value) {\n" - " if (message instanceof Error) throw message;\n" - " throw new AssertionError({\n" - " message: message !== undefined ? message\n" - " : \"The expression evaluated to a falsy value\",\n" - " actual: value,\n" - " expected: true,\n" - " operator: \"==\",\n" - " generatedMessage: message === undefined,\n" - " });\n" - " }\n" - " };\n" - " function ok(value, message) {\n" - " innerOk(value, message);\n" - " }\n" - " const looseDeep = (a, b, seen) => {\n" - " if (a == b) return true;\n" - " if (typeof a === \"number\" && typeof b === \"number\") return Number.isNaN(a) && Number.isNaN(b);\n" - " if (a === null || b === null || typeof a !== \"object\" || typeof b !== \"object\") return false;\n" - " const tagA = Object.prototype.toString.call(a);\n" - " if (tagA !== Object.prototype.toString.call(b)) return false;\n" - " if (tagA === \"[object Date]\") return a.getTime() == b.getTime(); // eslint-disable-line eqeqeq\n" - " if (tagA === \"[object RegExp]\") return String(a) === String(b);\n" - " seen = seen || new Set();\n" - " const key = null;\n" - " void key;\n" - " if (seen.has(a)) return true;\n" - " seen.add(a);\n" - " if (Array.isArray(a)) {\n" - " if (!Array.isArray(b) || a.length !== b.length) return false;\n" - " for (let i = 0; i < a.length; i++) {\n" - " if (!looseDeep(a[i], b[i], seen)) return false;\n" - " }\n" - " return true;\n" - " }\n" - " if (a instanceof Map) {\n" - " if (a.size !== b.size) return false;\n" - " for (const [k, v] of a) {\n" - " if (!b.has(k) || !looseDeep(v, b.get(k), seen)) return false;\n" - " }\n" - " return true;\n" - " }\n" - " if (a instanceof Set) {\n" - " if (a.size !== b.size) return false;\n" - " for (const v of a) {\n" - " if (!b.has(v)) return false;\n" - " }\n" - " return true;\n" - " }\n" - " const ka = Object.keys(a);\n" - " const kb = Object.keys(b);\n" - " if (ka.length !== kb.length) return false;\n" - " for (const k of ka) {\n" - " if (!Object.prototype.hasOwnProperty.call(b, k)) return false;\n" - " if (!looseDeep(a[k], b[k], seen)) return false;\n" - " }\n" - " return true;\n" - " };\n" - " const checkExpected = (actual, expected, message, fnName) => {\n" - " if (typeof expected === \"function\") {\n" - " if (expected.prototype !== undefined && actual instanceof expected) return true;\n" - " if (Error.isPrototypeOf ? Object.getPrototypeOf(expected) === null : false) return false;\n" - " if (!(expected === Error || Error.prototype.isPrototypeOf(expected.prototype || {}))) {\n" - " return expected(actual) === true;\n" - " }\n" - " return actual instanceof expected;\n" - " }\n" - " if (expected instanceof RegExp) {\n" - " return expected.test(actual instanceof Error ? actual.message : String(actual));\n" - " }\n" - " if (expected !== null && typeof expected === \"object\") {\n" - " for (const k of Object.keys(expected)) {\n" - " const want = expected[k];\n" - " const got = actual[k];\n" - " if (want instanceof RegExp) {\n" - " if (!want.test(got)) return false;\n" - " } else if (!isDeepStrictEqual(got, want)) {\n" - " return false;\n" - " }\n" - " }\n" - " return true;\n" - " }\n" - " void message;\n" - " void fnName;\n" - " return false;\n" - " };\n" - " const mismatchError = (thrown, expected, operator) => {\n" - " if (typeof expected === \"function\" && (expected === Error || Error.prototype.isPrototypeOf(expected.prototype || {}))) {\n" - " return new AssertionError({\n" - " message: 'The error is expected to be an instance of \"' + expected.name + '\". Received \"' + (thrown && thrown.constructor && thrown.constructor.name) + '\"\\n\\nError message:\\n\\n' + (thrown && thrown.message),\n" - " actual: thrown,\n" - " expected,\n" - " operator,\n" - " generatedMessage: true,\n" - " });\n" - " }\n" - " if (expected instanceof RegExp) {\n" - " return new AssertionError({\n" - " message: \"The input did not match the regular expression \" + expected + \". Input:\\n\\n\" + inspect(thrown instanceof Error ? String(thrown) : thrown) + \"\\n\",\n" - " actual: thrown,\n" - " expected,\n" - " operator,\n" - " generatedMessage: true,\n" - " });\n" - " }\n" - " return new AssertionError({\n" - " message: \"Expected values to be strictly deep-equal:\\n+ actual - expected\\n\",\n" - " actual: thrown,\n" - " expected,\n" - " operator,\n" - " generatedMessage: true,\n" - " });\n" - " };\n" - " const noErrorRegexExec = RegExp.prototype.exec;\n" - " const noErrorMatches = (actual, expected) => {\n" - " if (typeof expected === 'function') {\n" - " if (expected.prototype !== undefined && actual instanceof expected) return true;\n" - " if (Object.prototype.isPrototypeOf.call(Error, expected)) return false;\n" - " if (expected === Error && typeof actual === 'symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n" - " return Reflect.apply(expected, {}, [actual]) === true;\n" - " }\n" - " if (expected instanceof RegExp) return Reflect.apply(noErrorRegexExec, expected, [String(actual)]) !== null;\n" - " envArgumentError('expected', 'of type function or an instance of RegExp', expected);\n" - " };\n" - " const noErrorFailure = (actual, expected, message, operator) => {\n" - " if (typeof expected === 'string') { message = expected; expected = undefined; }\n" - " if (!expected || noErrorMatches(actual, expected)) {\n" - " const kind = operator === 'doesNotReject' ? 'rejection' : 'exception';\n" - " throw new AssertionError({ actual, expected, operator,\n" - " message: 'Got unwanted ' + kind + (message ? ': ' + message : '.') + '\\nActual message: \"' + actual?.message + '\"',\n" - " });\n" - " }\n" - " throw actual;\n" - " };\n" - " const waitForNoError = async (input) => {\n" - " const isPromise = (p) => env.isPromise(p) || (p !== null && typeof p === 'object' && typeof p.then === 'function' && typeof p.catch === 'function');\n" - " let result;\n" - " if (typeof input !== 'function') {\n" - " if (!isPromise(input)) envArgumentError('promiseFn', 'of type function or an instance of Promise', input);\n" - " result = input;\n" - " } else {\n" - " result = input();\n" - " if (!isPromise(result)) {\n" - " const error = new TypeError('Expected instance of Promise to be returned from the \\\"promiseFn\\\" function but got ' + envReceivedType(result) + '.');\n" - " error.code = 'ERR_INVALID_RETURN_VALUE';\n" - " throw error;\n" - " }\n" - " }\n" - " try { await result; } catch (actual) { return { didFail: true, actual }; }\n" - " return { didFail: false };\n" - " };\n" - " const assert = Object.assign(ok, {\n" - " AssertionError,\n" - " ok,\n" - " fail,\n" - " equal(actual, expected, message) {\n" - " if (actual != expected && !(Number.isNaN(actual) && Number.isNaN(expected))) {\n" - " throw new AssertionError({ message, actual, expected, operator: \"==\" });\n" - " }\n" - " },\n" - " notEqual(actual, expected, message) {\n" - " if (actual == expected || (Number.isNaN(actual) && Number.isNaN(expected))) {\n" - " throw new AssertionError({ message, actual, expected, operator: \"!=\" });\n" - " }\n" - " },\n" - " strictEqual(actual, expected, message) {\n" - " if (!Object.is(actual, expected)) {\n" - " throw new AssertionError({ message, actual, expected, operator: \"strictEqual\" });\n" - " }\n" - " },\n" - " notStrictEqual(actual, expected, message) {\n" - " if (Object.is(actual, expected)) {\n" - " throw new AssertionError({ message, actual, expected, operator: \"notStrictEqual\" });\n" - " }\n" - " },\n" - " deepEqual(actual, expected, message) {\n" - " if (!looseDeep(actual, expected)) {\n" - " throw new AssertionError({ message, actual, expected, operator: \"deepEqual\" });\n" - " }\n" - " },\n" - " notDeepEqual(actual, expected, message) {\n" - " if (looseDeep(actual, expected)) {\n" - " throw new AssertionError({ message, actual, expected, operator: \"notDeepEqual\" });\n" - " }\n" - " },\n" - " deepStrictEqual(actual, expected, message) {\n" - " if (!isDeepStrictEqual(actual, expected)) {\n" - " throw new AssertionError({ message, actual, expected, operator: \"deepStrictEqual\" });\n" - " }\n" - " },\n" - " notDeepStrictEqual(actual, expected, message) {\n" - " if (isDeepStrictEqual(actual, expected)) {\n" - " throw new AssertionError({ message, actual, expected, operator: \"notDeepStrictEqual\" });\n" - " }\n" - " },\n" - " throws(fn, expected, message) {\n" - " if (typeof expected === \"string\") {\n" - " message = expected;\n" - " expected = undefined;\n" - " }\n" - " let thrown = null;\n" - " let did = false;\n" - " try {\n" - " fn();\n" - " } catch (e) {\n" - " did = true;\n" - " thrown = e;\n" - " }\n" - " if (!did) {\n" - " throw new AssertionError({\n" - " message: \"Missing expected exception\" + (message ? \": \" + message : \".\"),\n" - " operator: \"throws\",\n" - " });\n" - " }\n" - " if (expected !== undefined && !checkExpected(thrown, expected, message, \"throws\")) {\n" - " throw mismatchError(thrown, expected, \"throws\");\n" - " }\n" - " },\n" - " doesNotThrow(fn, expected, message) {\n" - " if (typeof fn !== 'function') envArgumentError('fn', 'of type function', fn);\n" - " try {\n" - " fn();\n" - " } catch (e) {\n" - " noErrorFailure(e, expected, message, 'doesNotThrow');\n" - " }\n" - " },\n" - " async rejects(promiseOrFn, expected, message) {\n" - " if (typeof expected === \"string\") {\n" - " message = expected;\n" - " expected = undefined;\n" - " }\n" - " let rejection = null;\n" - " let did = false;\n" - " try {\n" - " await (typeof promiseOrFn === \"function\" ? promiseOrFn() : promiseOrFn);\n" - " } catch (e) {\n" - " did = true;\n" - " rejection = e;\n" - " }\n" - " if (!did) {\n" - " throw new AssertionError({\n" - " message: \"Missing expected rejection\" + (message ? \": \" + message : \".\"),\n" - " operator: \"rejects\",\n" - " });\n" - " }\n" - " if (expected !== undefined && !checkExpected(rejection, expected, message, \"rejects\")) {\n" - " throw mismatchError(rejection, expected, \"rejects\");\n" - " }\n" - " },\n" - " async doesNotReject(promiseOrFn, expected, message) {\n" - " const result = await waitForNoError(promiseOrFn);\n" - " if (result.didFail) noErrorFailure(result.actual, expected, message, 'doesNotReject');\n" - " },\n" - " match(string, regexp, message) {\n" - " if (!(regexp instanceof RegExp)) {\n" - " const e = new TypeError('The \"regexp\" argument must be an instance of RegExp. Received ' + (regexp === null ? \"null\" : \"type \" + typeof regexp + \" ('\" + String(regexp) + \"')\"));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " if (typeof string !== \"string\" || !regexp.test(string)) {\n" - " throw new AssertionError({\n" - " message: message !== undefined ? message\n" - " : typeof string !== \"string\"\n" - " ? 'The \"string\" argument must be of type string. Received type ' + typeof string + \" (\" + inspect(string) + \")\"\n" - " : \"The input did not match the regular expression \" + regexp + \". Input:\\n\\n\" + inspect(string) + \"\\n\",\n" - " actual: string,\n" - " expected: regexp,\n" - " operator: \"match\",\n" - " generatedMessage: message === undefined,\n" - " });\n" - " }\n" - " },\n" - " doesNotMatch(string, regexp, message) {\n" - " if (!(regexp instanceof RegExp)) {\n" - " const e = new TypeError('The \"regexp\" argument must be an instance of RegExp. Received ' + (regexp === null ? \"null\" : \"type \" + typeof regexp + \" ('\" + String(regexp) + \"')\"));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " if (typeof string === \"string\" && regexp.test(string)) {\n" - " throw new AssertionError({\n" - " message: message !== undefined ? message\n" - " : \"The input was expected to not match the regular expression \" + regexp + \". Input:\\n\\n\" + inspect(string) + \"\\n\",\n" - " actual: string,\n" - " expected: regexp,\n" - " operator: \"doesNotMatch\",\n" - " generatedMessage: message === undefined,\n" - " });\n" - " }\n" - " },\n" - " ifError(value) {\n" - " if (value !== null && value !== undefined) {\n" - " const e = new AssertionError({\n" - " message: \"ifError got unwanted exception: \" + (value instanceof Error && typeof value.message === \"string\" ? (value.message === \"\" ? value.constructor.name : value.message) : inspect(value)),\n" - " actual: value,\n" - " expected: null,\n" - " operator: \"ifError\",\n" - " });\n" - " throw e;\n" - " }\n" - " },\n" - " });\n" - " const strict = Object.assign(\n" - " function strictOk(...args) {\n" - " return ok(...args);\n" - " },\n" - " assert,\n" - " {\n" - " equal: assert.strictEqual,\n" - " notEqual: assert.notStrictEqual,\n" - " deepEqual: assert.deepStrictEqual,\n" - " notDeepEqual: assert.notDeepStrictEqual,\n" - " },\n" - " );\n" - " strict.strict = strict;\n" - " assert.strict = strict;\n" - " return assert;\n" - "}\n" - " const u = builtins.util();\n" - " const a = makeAssert({ isDeepStrictEqual: u.isDeepStrictEqual, inspect: u.inspect, isPromise: u.types.isPromise });\n" - " a.default = a;\n" - " return a;\n" - " });\n" - " builtins['assert/strict'] = memo(() => {\n" - " const s = builtins.assert().strict;\n" - " s.default = s;\n" - " return s;\n" - " });\n" - /* node:util — the full JS shim, developed standalone and - * differentially tested against real Node (inspect, format, - * promisify, callbackify, inherits, deprecate, debuglog, types, - * isDeepStrictEqual, stripVTControlCharacters, styleText, - * parseArgs, toUSVString). The host supplies what JS cannot see: - * promise state (JS_PromiseState), the pid, and fd writes. */ - " const envReceivedType = (value) => {\n" - " const type = typeof value;\n" - " let received;\n" - " if (value === null || value === undefined) received = String(value);\n" - " else if (type === 'function') received = 'function ' + value.name;\n" - " else if (type === 'object' && value.constructor && value.constructor.name) received = 'an instance of ' + value.constructor.name;\n" - " else received = type === 'object' ? builtins.util().inspect(value, { depth: -1 }) : 'type ' + type + ' (' + builtins.util().inspect(value) + ')';\n" - " return received;\n" - " };\n" - " const envArgumentError = (name, expected, value) => {\n" - " const received = envReceivedType(value);\n" - " const error = new TypeError('The \"' + name + '\" ' + (name.includes('.') ? 'property' : 'argument') + ' must be ' + expected + '. Received ' + received);\n" - " error.code = 'ERR_INVALID_ARG_TYPE';\n" - " throw error;\n" - " };\n" - " builtins.util = memo(() => {\n" - "function makeUtil(env) {\n" - " const inspectCustom = Symbol.for(\"nodejs.util.inspect.custom\");\n" - " const idRe = /^[a-zA-Z_][a-zA-Z_0-9]*$/; /* Node's keyStrRegExp: no $ */\n" - " const strEsc = (s, q) => {\n" - " let out = \"\";\n" - " for (let i = 0; i < s.length; i++) {\n" - " const c = s.charCodeAt(i);\n" - " const ch = s[i];\n" - " if (ch === q || ch === \"\\\\\") out += \"\\\\\" + ch;\n" - " else if (c === 10) out += \"\\\\n\";\n" - " else if (c === 9) out += \"\\\\t\";\n" - " else if (c === 13) out += \"\\\\r\";\n" - " else if (c === 8) out += \"\\\\b\";\n" - " else if (c === 12) out += \"\\\\f\";\n" - " else if (c === 11) out += \"\\\\v\";\n" - " else if (c < 32 || c === 127) out += \"\\\\x\" + c.toString(16).toUpperCase().padStart(2, \"0\");\n" - " else out += ch;\n" - " }\n" - " return out;\n" - " };\n" - " const quoteStr = (s) => {\n" - " if (!s.includes(\"'\")) return \"'\" + strEsc(s, \"'\") + \"'\";\n" - " if (!s.includes('\"')) return '\"' + strEsc(s, '\"') + '\"';\n" - " if (!s.includes(\"`\") && !s.includes(\"${\")) return \"`\" + strEsc(s, \"`\") + \"`\";\n" - " return \"'\" + strEsc(s, \"'\") + \"'\";\n" - " };\n" - " const fmtNumber = (n) => (Object.is(n, -0) ? \"-0\" : String(n));\n" - " const fmtBigInt = (n) => String(n) + \"n\";\n" - " const fmtPrimitive = (ctx, v) => {\n" - " const t = typeof v;\n" - " if (t === \"string\") {\n" - " if (v.length > ctx.maxStringLength) {\n" - " const rest = v.length - ctx.maxStringLength;\n" - " return quoteStr(v.slice(0, ctx.maxStringLength)) +\n" - " \"... \" + rest + \" more character\" + (rest > 1 ? \"s\" : \"\");\n" - " }\n" - " return quoteStr(v);\n" - " }\n" - " if (t === \"number\") return fmtNumber(v);\n" - " if (t === \"bigint\") return fmtBigInt(v);\n" - " if (t === \"boolean\") return v ? \"true\" : \"false\";\n" - " if (t === \"undefined\") return \"undefined\";\n" - " return String(v); /* symbol */\n" - " };\n" - " const constructorNameOf = (v) => {\n" - " let p = v;\n" - " while (p !== null) {\n" - " const d = Object.getOwnPropertyDescriptor(p, \"constructor\");\n" - " if (d !== undefined && typeof d.value === \"function\" && d.value.name !== \"\") {\n" - " return d.value.name;\n" - " }\n" - " p = Object.getPrototypeOf(p);\n" - " }\n" - " return null;\n" - " };\n" - " const fnBase = (v) => {\n" - " const s = Function.prototype.toString.call(v);\n" - " let kind = \"Function\";\n" - " if (s.startsWith(\"class\")) {\n" - " let base = \"class \" + (v.name || \"(anonymous)\");\n" - " const proto = Object.getPrototypeOf(v);\n" - " if (typeof proto === \"function\" && proto.name !== \"\") base += \" extends \" + proto.name;\n" - " return \"[\" + base + \"]\";\n" - " }\n" - " if (s.startsWith(\"async function\") || (s.startsWith(\"async\") && !s.startsWith(\"async function*\"))) kind = \"AsyncFunction\";\n" - " if (s.startsWith(\"function*\") || /^async function\\*/.test(s)) kind = s.startsWith(\"async\") ? \"AsyncGeneratorFunction\" : \"GeneratorFunction\";\n" - " if (/^async\\s*(\\*|function\\*)/.test(s)) kind = \"AsyncGeneratorFunction\";\n" - " return v.name === \"\" ? \"[\" + kind + \" (anonymous)]\" : \"[\" + kind + \": \" + v.name + \"]\";\n" - " };\n" - " const kindTA = (v) => {\n" - " const tag = Object.prototype.toString.call(v).slice(8, -1);\n" - " return /^(Ui|I|Fl|Big)/.test(tag) && tag.endsWith(\"Array\") ? tag : null;\n" - " };\n" - " const keyOf = (k) => {\n" - " if (typeof k === \"symbol\") return String(k);\n" - " return idRe.test(k) ? k : quoteStr(k);\n" - " };\n" - " const ownKeysOf = (ctx, v) => {\n" - " const keys = [];\n" - " for (const k of Object.keys(v)) keys.push(k);\n" - " for (const s of Object.getOwnPropertySymbols(v)) {\n" - " const d = Object.getOwnPropertyDescriptor(v, s);\n" - " if (d && d.enumerable) keys.push(s);\n" - " }\n" - " return keys;\n" - " };\n" - " const fmtProperty = (ctx, v, k, depth) => {\n" - " const d = Object.getOwnPropertyDescriptor(v, k) ||\n" - " { value: v[k], enumerable: true };\n" - " let val;\n" - " if (d.value !== undefined || (\"value\" in d)) {\n" - " val = fmtValue(ctx, d.value, depth + 1);\n" - " } else if (d.get !== undefined) {\n" - " val = d.set !== undefined ? \"[Getter/Setter]\" : \"[Getter]\";\n" - " } else if (d.set !== undefined) {\n" - " val = \"[Setter]\";\n" - " } else {\n" - " val = \"undefined\";\n" - " }\n" - " return keyOf(k) + \": \" + val;\n" - " };\n" - " const belowBreakLength = (ctx, output, start, base) => {\n" - " let total = output.length + start;\n" - " if (total + output.length > ctx.breakLength) return false;\n" - " for (let i = 0; i < output.length; i++) total += output[i].length;\n" - " return total <= ctx.breakLength && base.length + total <= ctx.breakLength;\n" - " };\n" - " const groupArrayElements = (ctx, output, value) => {\n" - " let totalLength = 0;\n" - " let maxLength = 0;\n" - " let i = 0;\n" - " let outputLength = output.length;\n" - " if (ctx.maxArrayLength < output.length) outputLength = output.length - 1;\n" - " const dataLen = new Array(outputLength);\n" - " for (; i < outputLength; i++) {\n" - " const len = output[i].length;\n" - " dataLen[i] = len;\n" - " totalLength += len + 2;\n" - " if (maxLength < len) maxLength = len;\n" - " }\n" - " const actualMax = maxLength + 2;\n" - " if (actualMax * 3 + ctx.indentationLvl < ctx.breakLength &&\n" - " (totalLength / actualMax > 5 || maxLength <= 6)) {\n" - " const approxCharHeights = 2.5;\n" - " const averageBias = Math.sqrt(actualMax - totalLength / output.length);\n" - " const biasedMax = Math.max(actualMax - 3 - averageBias, 1);\n" - " const columns = Math.min(\n" - " Math.round(Math.sqrt(approxCharHeights * biasedMax * outputLength) / biasedMax),\n" - " Math.floor((ctx.breakLength - ctx.indentationLvl) / actualMax),\n" - " ctx.compact * 4,\n" - " 15,\n" - " );\n" - " if (columns <= 1) return output;\n" - " const tmp = [];\n" - " const maxLineLength = [];\n" - " for (let ii = 0; ii < columns; ii++) {\n" - " let lineLength = 0;\n" - " for (let j = ii; j < output.length; j += columns) {\n" - " if (dataLen[j] > lineLength) lineLength = dataLen[j];\n" - " }\n" - " maxLineLength[ii] = lineLength + 2;\n" - " }\n" - " let order = String.prototype.padStart;\n" - " if (value !== undefined) {\n" - " for (let ii = 0; ii < output.length; ii++) {\n" - " if (typeof value[ii] !== \"number\" && typeof value[ii] !== \"bigint\") {\n" - " order = String.prototype.padEnd;\n" - " break;\n" - " }\n" - " }\n" - " }\n" - " for (let ii = 0; ii < outputLength; ii += columns) {\n" - " const max = Math.min(ii + columns, outputLength);\n" - " let str = \"\";\n" - " let j = ii;\n" - " for (; j < max - 1; j++) {\n" - " const padding = maxLineLength[j - ii] + output[j].length - dataLen[j];\n" - " str += order.call(output[j] + \", \", padding, \" \");\n" - " }\n" - " if (order === String.prototype.padStart) {\n" - " const padding = maxLineLength[j - ii] + output[j].length - dataLen[j] - 2;\n" - " str += output[j].padStart(padding, \" \");\n" - " } else {\n" - " str += output[j];\n" - " }\n" - " tmp.push(str);\n" - " }\n" - " if (ctx.maxArrayLength < output.length) tmp.push(output[outputLength]);\n" - " output = tmp;\n" - " }\n" - " return output;\n" - " };\n" - " const reduceToSingleString = (ctx, output, base, braces, isArrayLike, depth, value) => {\n" - " if (ctx.compact >= 1 && typeof ctx.compact === \"number\") {\n" - " const entries = output.length;\n" - " if (isArrayLike && entries > 6) output = groupArrayElements(ctx, output, value);\n" - " if (ctx.currentDepth - depth < ctx.compact && entries === output.length) {\n" - " const start = output.length + ctx.indentationLvl + braces[0].length + base.length + 10;\n" - " if (belowBreakLength(ctx, output, start, base)) {\n" - " const joined = output.join(\", \");\n" - " if (!joined.includes(\"\\n\")) {\n" - " return (base ? base + \" \" : \"\") + braces[0] + \" \" + joined + \" \" + braces[1];\n" - " }\n" - " }\n" - " }\n" - " }\n" - " const indentation = \"\\n\" + \" \".repeat(ctx.indentationLvl);\n" - " return (base ? base + \" \" : \"\") + braces[0] + indentation + \" \" +\n" - " output.join(\",\" + indentation + \" \") + indentation + braces[1];\n" - " };\n" - " const fmtList = (ctx, v, depth) => {\n" - " const output = [];\n" - " const max = Math.min(ctx.maxArrayLength, v.length);\n" - " let i = 0;\n" - " while (i < max) {\n" - " if (!Object.prototype.hasOwnProperty.call(v, i)) {\n" - " let j = i;\n" - " while (j < v.length && !Object.prototype.hasOwnProperty.call(v, j)) j++;\n" - " const n = Math.min(j, max) === j ? j - i : j - i;\n" - " output.push(\"<\" + n + \" empty item\" + (n > 1 ? \"s\" : \"\") + \">\");\n" - " i = j;\n" - " continue;\n" - " }\n" - " output.push(fmtValue(ctx, v[i], depth + 1));\n" - " i++;\n" - " }\n" - " if (v.length > max) {\n" - " const rest = v.length - max;\n" - " output.push(\"... \" + rest + \" more item\" + (rest > 1 ? \"s\" : \"\"));\n" - " }\n" - " return output;\n" - " };\n" - " const fmtTypedArray = (ctx, v, depth) => {\n" - " const max = Math.min(ctx.maxArrayLength, v.length);\n" - " const output = new Array(max);\n" - " for (let i = 0; i < max; i++) {\n" - " output[i] = typeof v[i] === \"bigint\" ? fmtBigInt(v[i]) : fmtNumber(v[i]);\n" - " }\n" - " if (v.length > max) {\n" - " const rest = v.length - max;\n" - " output.push(\"... \" + rest + \" more item\" + (rest > 1 ? \"s\" : \"\"));\n" - " }\n" - " return output;\n" - " };\n" - " const hexSlice = (u8, n) => {\n" - " let s = \"\";\n" - " for (let i = 0; i < n; i++) s += (i ? \" \" : \"\") + u8[i].toString(16).padStart(2, \"0\");\n" - " return s;\n" - " };\n" - " const fmtValue = (ctx, value, depth, typedArray) => {\n" - " if (typeof value !== \"object\" && typeof value !== \"function\") {\n" - " return fmtPrimitive(ctx, value);\n" - " }\n" - " if (value === null) return \"null\";\n" - " if (ctx.customInspect) {\n" - " const maybe = value[inspectCustom];\n" - " if (typeof maybe === \"function\" && maybe !== inspect &&\n" - " !(value.constructor && value.constructor.prototype === value)) {\n" - " const depthRemaining = ctx.depth === null ? null : ctx.depth - depth;\n" - " const opts = {\n" - " depth: ctx.depth, colors: ctx.colors, showHidden: ctx.showHidden,\n" - " breakLength: ctx.breakLength, compact: ctx.compact,\n" - " maxArrayLength: ctx.maxArrayLength, maxStringLength: ctx.maxStringLength,\n" - " customInspect: ctx.customInspect, sorted: ctx.sorted, getters: ctx.getters,\n" - " numericSeparator: ctx.numericSeparator, stylize: (s) => s,\n" - " };\n" - " const ret = maybe.call(value, depthRemaining, opts, inspect);\n" - " if (ret !== value) {\n" - " return typeof ret !== \"string\" ? fmtValue(ctx, ret, depth) : ret;\n" - " }\n" - " }\n" - " }\n" - " if (ctx.seen.includes(value)) {\n" - " let index = 1;\n" - " if (ctx.circular === undefined) {\n" - " ctx.circular = new Map();\n" - " ctx.circular.set(value, index);\n" - " } else {\n" - " const seenIndex = ctx.circular.get(value);\n" - " if (seenIndex === undefined) {\n" - " index = ctx.circular.size + 1;\n" - " ctx.circular.set(value, index);\n" - " } else {\n" - " index = seenIndex;\n" - " }\n" - " }\n" - " return \"[Circular *\" + index + \"]\";\n" - " }\n" - " return fmtRaw(ctx, value, depth, typedArray);\n" - " };\n" - " const fmtRaw = (ctx, value, depth, typedArray) => {\n" - " let keys = ownKeysOf(ctx, value);\n" - " const protoOf = Object.getPrototypeOf(value);\n" - " const ctorName = protoOf === null ? null : constructorNameOf(value);\n" - " let base = \"\";\n" - " let braces;\n" - " let formatter = null;\n" - " let isArrayLike = false;\n" - " const taKind = kindTA(value);\n" - " if (Array.isArray(value)) {\n" - " if (depth > ctx.depth && ctx.depth !== null) return \"[Array]\";\n" - " const prefix = ctorName !== \"Array\" || protoOf === null\n" - " ? (ctorName === null ? \"[Array(\" + value.length + \"): null prototype] \" : ctorName + \"(\" + value.length + \") \")\n" - " : \"\";\n" - " keys = keys.filter((k) => !(typeof k === \"string\" && /^\\d+$/.test(k) && +k < value.length));\n" - " braces = [prefix + \"[\", \"]\"];\n" - " if (value.length === 0 && keys.length === 0) return braces[0] + \"]\";\n" - " formatter = fmtList;\n" - " isArrayLike = true;\n" - " } else if (value instanceof Map) {\n" - " if (depth > ctx.depth && ctx.depth !== null) return \"[Map]\";\n" - " const size = value.size;\n" - " const prefix = (ctorName !== \"Map\" ? ctorName + \" [Map]\" : \"Map\") + \"(\" + size + \") \";\n" - " if (size === 0 && keys.length === 0) return prefix + \"{}\";\n" - " braces = [prefix + \"{\", \"}\"];\n" - " formatter = (c, v, d) => {\n" - " const out = [];\n" - " for (const [k, val] of v) {\n" - " out.push(fmtValue(c, k, d + 1) + \" => \" + fmtValue(c, val, d + 1));\n" - " }\n" - " return out;\n" - " };\n" - " } else if (value instanceof Set) {\n" - " if (depth > ctx.depth && ctx.depth !== null) return \"[Set]\";\n" - " const size = value.size;\n" - " const prefix = (ctorName !== \"Set\" ? ctorName + \" [Set]\" : \"Set\") + \"(\" + size + \") \";\n" - " if (size === 0 && keys.length === 0) return prefix + \"{}\";\n" - " braces = [prefix + \"{\", \"}\"];\n" - " formatter = (c, v, d) => {\n" - " const out = [];\n" - " for (const val of v) out.push(fmtValue(c, val, d + 1));\n" - " return out;\n" - " };\n" - " } else if (taKind !== null) {\n" - " if (depth > ctx.depth && ctx.depth !== null) return \"[\" + taKind + \"]\";\n" - " const prefix = (ctorName !== taKind && ctorName !== null ? ctorName + \"(\" + value.length + \") [\" + taKind + \"] \" : taKind + \"(\" + value.length + \") \");\n" - " braces = [prefix + \"[\", \"]\"];\n" - " if (value.length === 0 && keys.length === 0) return braces[0] + \"]\";\n" - " keys = keys.filter((k) => !(typeof k === \"string\" && /^\\d+$/.test(k) && +k < value.length));\n" - " formatter = fmtTypedArray;\n" - " isArrayLike = true;\n" - " } else if (typeof value === \"function\") {\n" - " base = fnBase(value);\n" - " if (keys.length === 0) return base;\n" - " if (depth > ctx.depth && ctx.depth !== null) return base;\n" - " braces = [\"{\", \"}\"];\n" - " formatter = () => [];\n" - " } else if (value instanceof RegExp) {\n" - " base = RegExp.prototype.toString.call(value);\n" - " if (keys.length === 0) return base;\n" - " if (depth > ctx.depth && ctx.depth !== null) return base;\n" - " braces = [\"{\", \"}\"];\n" - " formatter = () => [];\n" - " } else if (value instanceof Date) {\n" - " const t = Date.prototype.getTime.call(value);\n" - " base = Number.isNaN(t) ? \"Invalid Date\" : Date.prototype.toISOString.call(value);\n" - " if (keys.length === 0) return base;\n" - " if (depth > ctx.depth && ctx.depth !== null) return base;\n" - " braces = [\"{\", \"}\"];\n" - " formatter = () => [];\n" - " } else if (value instanceof Error) {\n" - " base = value.stack;\n" - " if (typeof base !== \"string\" || base === \"\") {\n" - " const name = value.name === undefined ? \"Error\" : String(value.name);\n" - " const msg = value.message === undefined || value.message === \"\" ? \"\" : \": \" + String(value.message);\n" - " base = \"[\" + name + msg + \"]\";\n" - " }\n" - " keys = keys.filter((k) => k !== \"message\" && k !== \"stack\");\n" - " if (keys.length === 0) return base;\n" - " if (depth > ctx.depth && ctx.depth !== null) return base;\n" - " braces = [\"{\", \"}\"];\n" - " formatter = () => [];\n" - " } else if (value instanceof Promise) {\n" - " if (depth > ctx.depth && ctx.depth !== null) return \"[Promise]\";\n" - " const st = env.promiseState(value);\n" - " braces = [\"Promise {\", \"}\"];\n" - " formatter = (c, v, d) => {\n" - " if (st === undefined || st[0] === 0) return [\"\"];\n" - " if (st[0] === 1) return [fmtValue(c, st[1], d + 1)];\n" - " return [\" \" + fmtValue(c, st[1], d + 1)];\n" - " };\n" - " } else if (value instanceof ArrayBuffer) {\n" - " if (depth > ctx.depth && ctx.depth !== null) return \"[ArrayBuffer]\";\n" - " const u8 = new Uint8Array(value);\n" - " const n = Math.min(ctx.maxArrayLength, u8.length);\n" - " let contents = \"<\" + hexSlice(u8, n);\n" - " if (u8.length > n) {\n" - " const rest = u8.length - n;\n" - " contents += (n > 0 ? \" \" : \"\") + \"... \" + rest + \" more byte\" + (rest > 1 ? \"s\" : \"\");\n" - " }\n" - " contents += \">\";\n" - " braces = [\"ArrayBuffer {\", \"}\"];\n" - " const bl = value.byteLength;\n" - " formatter = () => [\"[Uint8Contents]: \" + contents, \"[byteLength]: \" + fmtNumber(bl)];\n" - " } else {\n" - " const boxed = (() => {\n" - " const tag = Object.prototype.toString.call(value).slice(8, -1);\n" - " if (tag === \"String\") return \"[String: \" + quoteStr(String.prototype.valueOf.call(value)) + \"]\";\n" - " if (tag === \"Number\") return \"[Number: \" + fmtNumber(Number.prototype.valueOf.call(value)) + \"]\";\n" - " if (tag === \"Boolean\") return \"[Boolean: \" + Boolean.prototype.valueOf.call(value) + \"]\";\n" - " if (tag === \"Symbol\") return \"[Symbol: \" + String(Symbol.prototype.valueOf.call(value)) + \"]\";\n" - " if (tag === \"BigInt\") return \"[BigInt: \" + fmtBigInt(BigInt.prototype.valueOf.call(value)) + \"]\";\n" - " return null;\n" - " })();\n" - " if (boxed !== null) {\n" - " base = boxed;\n" - " if (Object.prototype.toString.call(value).slice(8, -1) === \"String\") {\n" - " const len = String.prototype.valueOf.call(value).length;\n" - " keys = keys.filter((k) => !(typeof k === \"string\" && /^\\d+$/.test(k) && +k < len));\n" - " }\n" - " if (keys.length === 0) return base;\n" - " braces = [\"{\", \"}\"];\n" - " formatter = () => [];\n" - " } else {\n" - " if (keys.length > 0 && depth > ctx.depth && ctx.depth !== null) {\n" - " return \"[\" + (ctorName === null ? \"Object: null prototype\" : ctorName) + \"]\";\n" - " }\n" - " if (protoOf === null) {\n" - " base = \"[Object: null prototype]\";\n" - " braces = [\"{\", \"}\"];\n" - " } else if (ctorName !== \"Object\" && ctorName !== null) {\n" - " braces = [ctorName + \" {\", \"}\"];\n" - " } else {\n" - " braces = [\"{\", \"}\"];\n" - " }\n" - " if (keys.length === 0) {\n" - " if (base !== \"\") return base + \" {}\";\n" - " return braces[0] === \"{\" ? \"{}\" : braces[0] + \"}\";\n" - " }\n" - " formatter = () => [];\n" - " }\n" - " }\n" - " ctx.seen.push(value);\n" - " ctx.currentDepth = depth;\n" - " let output;\n" - " try {\n" - " output = formatter(ctx, value, depth);\n" - " for (const k of keys) {\n" - " output.push(fmtProperty(ctx, value, k, depth));\n" - " }\n" - " } finally {\n" - " ctx.seen.pop();\n" - " }\n" - " if (ctx.sorted) output.sort();\n" - " const res = reduceToSingleString(ctx, output, base, braces, isArrayLike, depth, value);\n" - " if (ctx.circular !== undefined) {\n" - " const index = ctx.circular.get(value);\n" - " if (index !== undefined) return \" \" + res;\n" - " }\n" - " return res;\n" - " };\n" - " function inspect(value, showHiddenOrOpts, depthArg, colorsArg) {\n" - " const ctx = {\n" - " showHidden: false, depth: 2, colors: false, customInspect: true,\n" - " maxArrayLength: 100, maxStringLength: 10000, breakLength: 128,\n" - " compact: 3, sorted: false, getters: false, numericSeparator: false,\n" - " seen: [], circular: undefined, indentationLvl: 0, currentDepth: 0,\n" - " };\n" - " if (arguments.length > 1) {\n" - " if (typeof showHiddenOrOpts === \"boolean\") {\n" - " ctx.showHidden = showHiddenOrOpts;\n" - " if (depthArg !== undefined) ctx.depth = depthArg;\n" - " if (colorsArg !== undefined) ctx.colors = colorsArg;\n" - " } else if (showHiddenOrOpts !== null && typeof showHiddenOrOpts === \"object\") {\n" - " for (const k of Object.keys(showHiddenOrOpts)) {\n" - " if (showHiddenOrOpts[k] !== undefined || k in ctx) ctx[k] = showHiddenOrOpts[k];\n" - " }\n" - " }\n" - " }\n" - " if (ctx.maxArrayLength === null) ctx.maxArrayLength = Infinity;\n" - " if (ctx.maxStringLength === null) ctx.maxStringLength = Infinity;\n" - " if (ctx.breakLength === null) ctx.breakLength = Infinity;\n" - " if (ctx.compact === false) ctx.compact = 0;\n" - " return fmtValue(ctx, value, 0);\n" - " }\n" - " inspect.custom = inspectCustom;\n" - " inspect.defaultOptions = {\n" - " showHidden: false, depth: 2, colors: false, customInspect: true,\n" - " showProxy: false, maxArrayLength: 100, maxStringLength: 10000,\n" - " breakLength: 128, compact: 3, sorted: false, getters: false,\n" - " numericSeparator: false,\n" - " };\n" - " inspect.colors = {\n" - " reset: [0, 0], bold: [1, 22], dim: [2, 22], italic: [3, 23],\n" - " underline: [4, 24], blink: [5, 25], inverse: [7, 27], hidden: [8, 28],\n" - " strikethrough: [9, 29], doubleunderline: [21, 24], black: [30, 39],\n" - " red: [31, 39], green: [32, 39], yellow: [33, 39], blue: [34, 39],\n" - " magenta: [35, 39], cyan: [36, 39], white: [37, 39], bgBlack: [40, 49],\n" - " bgRed: [41, 49], bgGreen: [42, 49], bgYellow: [43, 49], bgBlue: [44, 49],\n" - " bgMagenta: [45, 49], bgCyan: [46, 49], bgWhite: [47, 49],\n" - " framed: [51, 54], overlined: [53, 55], gray: [90, 39], redBright: [91, 39],\n" - " greenBright: [92, 39], yellowBright: [93, 39], blueBright: [94, 39],\n" - " magentaBright: [95, 39], cyanBright: [96, 39], whiteBright: [97, 39],\n" - " bgGray: [100, 49], bgRedBright: [101, 49], bgGreenBright: [102, 49],\n" - " bgYellowBright: [103, 49], bgBlueBright: [104, 49],\n" - " bgMagentaBright: [105, 49], bgCyanBright: [106, 49], bgWhiteBright: [107, 49],\n" - " };\n" - " const formatWithOptions = (opts, ...args) => {\n" - " let first = args[0];\n" - " let a = 0;\n" - " let str = \"\";\n" - " let joined = \"\";\n" - " if (typeof first === \"string\" && first.includes(\"%\")) {\n" - " a = 1;\n" - " let lastPos = 0;\n" - " for (let i = 0; i < first.length - 1; i++) {\n" - " if (first[i] !== \"%\") continue;\n" - " const next = first[++i];\n" - " let tempStr;\n" - " if (next === \"%\") {\n" - " str += first.slice(lastPos, i - 1) + \"%\";\n" - " lastPos = i + 1;\n" - " continue;\n" - " }\n" - " if (a >= args.length) continue;\n" - " switch (next) {\n" - " case \"s\": {\n" - " const arg = args[a];\n" - " if (typeof arg === \"number\") tempStr = fmtNumber(arg);\n" - " else if (typeof arg === \"bigint\") tempStr = fmtBigInt(arg);\n" - " else if (typeof arg !== \"object\" || arg === null) tempStr = String(arg);\n" - " else tempStr = inspect(arg, { ...opts, compact: 3, colors: false, depth: 0 });\n" - " break;\n" - " }\n" - " case \"j\":\n" - " try { tempStr = JSON.stringify(args[a]); }\n" - " catch (e) { tempStr = \"[Circular]\"; }\n" - " break;\n" - " case \"d\": {\n" - " const arg = args[a];\n" - " if (typeof arg === \"bigint\") tempStr = fmtBigInt(arg);\n" - " else if (typeof arg === \"symbol\") tempStr = \"NaN\";\n" - " else tempStr = fmtNumber(Number(arg));\n" - " break;\n" - " }\n" - " case \"O\":\n" - " tempStr = inspect(args[a], { ...opts });\n" - " break;\n" - " case \"o\":\n" - " tempStr = inspect(args[a], { ...opts, showHidden: true, showProxy: true, depth: 4 });\n" - " break;\n" - " case \"i\": {\n" - " const arg = args[a];\n" - " if (typeof arg === \"bigint\") tempStr = fmtBigInt(arg);\n" - " else if (typeof arg === \"symbol\") tempStr = \"NaN\";\n" - " else tempStr = fmtNumber(parseInt(arg));\n" - " break;\n" - " }\n" - " case \"f\": {\n" - " const arg = args[a];\n" - " if (typeof arg === \"symbol\") tempStr = \"NaN\";\n" - " else tempStr = fmtNumber(parseFloat(arg));\n" - " break;\n" - " }\n" - " case \"c\":\n" - " a += 1;\n" - " lastPos = i + 1;\n" - " continue;\n" - " default:\n" - " continue;\n" - " }\n" - " if (lastPos !== i - 1) str += first.slice(lastPos, i - 1);\n" - " str += tempStr;\n" - " lastPos = i + 1;\n" - " a++;\n" - " }\n" - " if (lastPos !== 0) {\n" - " if (lastPos < first.length) str += first.slice(lastPos);\n" - " first = str;\n" - " str = \"\";\n" - " } else {\n" - " str = \"\";\n" - " }\n" - " joined = first;\n" - " }\n" - " while (a < args.length) {\n" - " const value = args[a];\n" - " joined += a > 0 || typeof first !== \"string\" && a === 0 ? \"\" : \"\";\n" - " if (joined !== \"\" || a > 0) joined += \" \";\n" - " joined += typeof value !== \"string\" ? inspect(value, opts) : value;\n" - " a++;\n" - " }\n" - " return joined;\n" - " };\n" - " const format = (...args) => formatWithOptions({}, ...args);\n" - " const inherits = (ctor, superCtor) => {\n" - " if (ctor === undefined || ctor === null) {\n" - " const e = new TypeError('The \"ctor\" argument must be of type function. Received ' + (ctor === null ? \"null\" : \"undefined\"));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " if (superCtor === undefined || superCtor === null) {\n" - " const e = new TypeError('The \"superCtor\" argument must be of type function. Received ' + (superCtor === null ? \"null\" : \"undefined\"));\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " if (superCtor.prototype === undefined) {\n" - " const e = new TypeError('The \"superCtor.prototype\" argument must be of type object. Received undefined');\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " Object.defineProperty(ctor, \"super_\", { value: superCtor, writable: true, configurable: true });\n" - " Object.setPrototypeOf(ctor.prototype, superCtor.prototype);\n" - " };\n" - " const received = (v) => {\n" - " if (v === null || v === undefined) return String(v);\n" - " if (typeof v === 'object') return v.constructor && 'name' in v.constructor ? 'an instance of ' + v.constructor.name : inspect(v, { depth: -1 });\n" - " if (typeof v === 'function') return 'function ' + v.name;\n" - " if (typeof v === 'string') {\n" - " if (v.length > 28) v = v.slice(0, 25) + '...';\n" - " return 'type string (' + (v.includes(\"'\") ? JSON.stringify(v) : \"'\" + v + \"'\") + ')';\n" - " }\n" - " if (typeof v === 'number') return 'type number (' + (Object.is(v, -0) ? '-0' : String(v)) + ')';\n" - " if (typeof v === 'bigint') return 'type bigint (' + v + 'n)';\n" - " if (typeof v === 'symbol') return 'type symbol (' + String(v) + ')';\n" - " return 'type ' + typeof v + ' (' + String(v) + ')';\n" - " };\n" - " const validateAdapterFunction = (value, name) => {\n" - " if (typeof value !== 'function') {\n" - " const e = new TypeError('The ' + (name === 'last argument' ? name : '\"' + name + '\" ' + (name.includes('.') ? 'property' : 'argument')) + ' must be of type function. Received ' + received(value));\n" - " e.code = 'ERR_INVALID_ARG_TYPE';\n" - " throw e;\n" - " }\n" - " };\n" - " const kCustomPromisified = Symbol.for(\"nodejs.util.promisify.custom\");\n" - " const kCustomPromisifyArgs = Symbol(\"customPromisifyArgs\");\n" - " const promisify = (original) => {\n" - " validateAdapterFunction(original, 'original');\n" - " if (original[kCustomPromisified]) {\n" - " const fn = original[kCustomPromisified];\n" - " validateAdapterFunction(fn, 'util.promisify.custom');\n" - " return Object.defineProperty(fn, kCustomPromisified, { value: fn, enumerable: false, writable: false, configurable: true });\n" - " }\n" - " const argumentNames = original[kCustomPromisifyArgs];\n" - " function fn(...args) {\n" - " return new Promise((resolve, reject) => {\n" - " args.push((err, ...values) => {\n" - " if (err) return reject(err);\n" - " if (argumentNames !== undefined && values.length > 1) {\n" - " const obj = {};\n" - " for (let i = 0; i < argumentNames.length; i++) obj[argumentNames[i]] = values[i];\n" - " resolve(obj);\n" - " } else {\n" - " resolve(values[0]);\n" - " }\n" - " });\n" - " Reflect.apply(original, this, args);\n" - " });\n" - " }\n" - " Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n" - " Object.defineProperty(fn, kCustomPromisified, { value: fn, enumerable: false, writable: false, configurable: true });\n" - " const descriptors = Object.getOwnPropertyDescriptors(original);\n" - " for (const descriptor of Object.values(descriptors)) Object.setPrototypeOf(descriptor, null);\n" - " return Object.defineProperties(fn, descriptors);\n" - " };\n" - " promisify.custom = kCustomPromisified;\n" - " const callbackify = (original) => {\n" - " validateAdapterFunction(original, 'original');\n" - " function callbackified(...args) {\n" - " const maybeCb = args.pop();\n" - " validateAdapterFunction(maybeCb, 'last argument');\n" - " const cb = (...cbArgs) => Reflect.apply(maybeCb, this, cbArgs);\n" - " Reflect.apply(original, this, args).then(\n" - " (ret) => queueMicrotask(() => cb(null, ret)),\n" - " (rej) => queueMicrotask(() => {\n" - " if (!rej) {\n" - " const wrapped = new Error(\"Promise was rejected with falsy value\");\n" - " wrapped.code = \"ERR_FALSY_VALUE_REJECTION\";\n" - " wrapped.reason = rej;\n" - " return cb(wrapped);\n" - " }\n" - " return cb(rej);\n" - " }),\n" - " );\n" - " }\n" - " const descriptors = Object.getOwnPropertyDescriptors(original);\n" - " if (typeof descriptors.length.value === 'number') descriptors.length.value++;\n" - " if (typeof descriptors.name.value === 'string') descriptors.name.value += 'Callbackified';\n" - " for (const descriptor of Object.values(descriptors)) Object.setPrototypeOf(descriptor, null);\n" - " Object.defineProperties(callbackified, descriptors);\n" - " return callbackified;\n" - " };\n" - " const deprecate = (fn, msg, code) => {\n" - " if (typeof fn !== \"function\") {\n" - " const e = new TypeError('The \"fn\" argument must be of type function');\n" - " e.code = \"ERR_INVALID_ARG_TYPE\";\n" - " throw e;\n" - " }\n" - " let warned = false;\n" - " function deprecated(...args) {\n" - " if (!warned) {\n" - " warned = true;\n" - " const prefix = code !== undefined ? \"[\" + code + \"] DeprecationWarning\" : \"DeprecationWarning\";\n" - " env.writeErr(\"(node:\" + env.pid + \") \" + prefix + \": \" + msg + \"\\n\");\n" - " }\n" - " if (new.target) return Reflect.construct(fn, args, new.target);\n" - " return Reflect.apply(fn, this, args);\n" - " }\n" - " return deprecated;\n" - " };\n" - " let debugEnvSet;\n" - " const debuglog = (set, cb) => {\n" - " if (debugEnvSet === undefined) {\n" - " debugEnvSet = new Set(\n" - " String(env.env.NODE_DEBUG || \"\").toLowerCase().split(\",\").map((s) => s.trim()).filter((s) => s !== \"\"),\n" - " );\n" - " }\n" - " set = String(set).toLowerCase();\n" - " const enabled = debugEnvSet.has(set) || [...debugEnvSet].some((p) =>\n" - " p.includes(\"*\") && new RegExp(\"^\" + p.replace(/[.+?^${}()|[\\]\\\\]/g, \"\\\\$&\").replace(/\\*/g, \".*\") + \"$\").test(set));\n" - " let fn;\n" - " if (enabled) {\n" - " const setUpper = set.toUpperCase();\n" - " fn = (...args) => {\n" - " env.writeErr(setUpper + \" \" + env.pid + \": \" + format(...args) + \"\\n\");\n" - " };\n" - " } else {\n" - " fn = () => {};\n" - " }\n" - " Object.defineProperty(fn, \"enabled\", { get: () => enabled, configurable: true });\n" - " if (typeof cb === \"function\") cb(fn);\n" - " return fn;\n" - " };\n" - " const tagOf = (v) => Object.prototype.toString.call(v).slice(8, -1);\n" - " const taTagGetter = Object.getOwnPropertyDescriptor(\n" - " Object.getPrototypeOf(Object.getPrototypeOf(new Uint8Array(0))), Symbol.toStringTag).get;\n" - " const types = {\n" - " isAnyArrayBuffer: (v) => env.typeProbe(\"isAnyArrayBuffer\", v),\n" - " isArrayBufferView: (v) => env.typeProbe(\"isArrayBufferView\", v),\n" - " isArgumentsObject: (v) => env.typeProbe(\"isArgumentsObject\", v),\n" - " isArrayBuffer: (v) => env.typeProbe(\"isArrayBuffer\", v),\n" - " isAsyncFunction: (v) => env.typeProbe(\"isAsyncFunction\", v),\n" - " isBigInt64Array: (v) => env.typeProbe(\"isBigInt64Array\", v),\n" - " isBigUint64Array: (v) => env.typeProbe(\"isBigUint64Array\", v),\n" - " isBooleanObject: (v) => env.typeProbe(\"isBooleanObject\", v),\n" - " isBoxedPrimitive: (v) => env.typeProbe(\"isBoxedPrimitive\", v),\n" - " isBigIntObject: (v) => env.typeProbe(\"isBigIntObject\", v),\n" - " isCryptoKey: (v) => env.typeProbe(\"isCryptoKey\", v),\n" - " isDataView: (v) => env.typeProbe(\"isDataView\", v),\n" - " isDate: (v) => env.typeProbe(\"isDate\", v),\n" - " isExternal: (v) => env.typeProbe(\"isExternal\", v),\n" - " isFloat16Array: (v) => env.typeProbe(\"isFloat16Array\", v),\n" - " isFloat32Array: (v) => env.typeProbe(\"isFloat32Array\", v),\n" - " isFloat64Array: (v) => env.typeProbe(\"isFloat64Array\", v),\n" - " isGeneratorFunction: (v) => env.typeProbe(\"isGeneratorFunction\", v),\n" - " isGeneratorObject: (v) => env.typeProbe(\"isGeneratorObject\", v),\n" - " isInt8Array: (v) => env.typeProbe(\"isInt8Array\", v),\n" - " isInt16Array: (v) => env.typeProbe(\"isInt16Array\", v),\n" - " isInt32Array: (v) => env.typeProbe(\"isInt32Array\", v),\n" - " isKeyObject: (v) => env.typeProbe(\"isKeyObject\", v),\n" - " isMap: (v) => env.typeProbe(\"isMap\", v),\n" - " isMapIterator: (v) => env.typeProbe(\"isMapIterator\", v),\n" - " isModuleNamespaceObject: (v) => env.typeProbe(\"isModuleNamespaceObject\", v),\n" - " isNativeError: (v) => env.typeProbe(\"isNativeError\", v),\n" - " isNumberObject: (v) => env.typeProbe(\"isNumberObject\", v),\n" - " isPromise: (v) => env.typeProbe(\"isPromise\", v),\n" - " isProxy: (v) => env.typeProbe(\"isProxy\", v),\n" - " isRegExp: (v) => env.typeProbe(\"isRegExp\", v),\n" - " isSet: (v) => env.typeProbe(\"isSet\", v),\n" - " isSetIterator: (v) => env.typeProbe(\"isSetIterator\", v),\n" - " isSharedArrayBuffer: (v) => env.typeProbe(\"isSharedArrayBuffer\", v),\n" - " isStringObject: (v) => env.typeProbe(\"isStringObject\", v),\n" - " isSymbolObject: (v) => env.typeProbe(\"isSymbolObject\", v),\n" - " isTypedArray: (v) => env.typeProbe(\"isTypedArray\", v),\n" - " isUint8Array: (v) => env.typeProbe(\"isUint8Array\", v),\n" - " isUint8ClampedArray: (v) => env.typeProbe(\"isUint8ClampedArray\", v),\n" - " isUint16Array: (v) => env.typeProbe(\"isUint16Array\", v),\n" - " isUint32Array: (v) => env.typeProbe(\"isUint32Array\", v),\n" - " isWeakMap: (v) => env.typeProbe(\"isWeakMap\", v),\n" - " isWeakSet: (v) => env.typeProbe(\"isWeakSet\", v),\n" - " };\n" - " for (const [name, probe] of Object.entries(types)) {\n" - " const wrapper = name === \"isTypedArray\" || /Array$/.test(name) && name !== \"isAnyArrayBuffer\" && name !== \"isArrayBuffer\";\n" - " if (!wrapper && name !== \"isArrayBufferView\" && name !== \"isCryptoKey\" && name !== \"isKeyObject\") {\n" - " Object.defineProperty(probe, \"name\", { value: \"\", configurable: true });\n" - " Object.defineProperty(probe, \"length\", { value: 0, configurable: true });\n" - " }\n" - " }\n" - " types.isArrayBufferView = ArrayBuffer.isView;\n" - " Object.defineProperty(types.isCryptoKey, \"name\", { value: \"value\", configurable: true });\n" - " Object.defineProperty(types.isKeyObject, \"name\", { value: \"value\", configurable: true });\n" - " const deepConstructors = new Set([Array, ArrayBuffer, BigInt, Boolean, DataView, Date, Error, Function,\n" - " Map, Number, Object, Promise, RegExp, Set, String, Symbol, WeakMap, WeakSet, Uint8Array,\n" - " Uint8ClampedArray, Uint16Array, Uint32Array, Int8Array, Int16Array, Int32Array, Float32Array,\n" - " Float64Array, BigInt64Array, BigUint64Array, Buffer]);\n" - " if (typeof Float16Array !== \"undefined\") deepConstructors.add(Float16Array);\n" - " const deepEquals = (a, b, skipPrototype, memos) => {\n" - " if (Object.is(a, b)) return true;\n" - " if (typeof a !== \"object\" || a === null || typeof b !== \"object\" || b === null) return false;\n" - " if (!skipPrototype) {\n" - " if (deepConstructors.has(a.constructor) ||\n" - " (a.constructor !== undefined && !Object.prototype.hasOwnProperty.call(a, \"constructor\"))) {\n" - " if (a.constructor !== b.constructor) return false;\n" - " } else if (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false;\n" - " }\n" - " const array = Array.isArray(a);\n" - " const view = ArrayBuffer.isView(a);\n" - " const map = types.isMap(a);\n" - " const set = types.isSet(a);\n" - " const date = types.isDate(a);\n" - " const regexp = types.isRegExp(a);\n" - " const buffer = types.isAnyArrayBuffer(a);\n" - " if (array !== Array.isArray(b) || view !== ArrayBuffer.isView(b) ||\n" - " map !== types.isMap(b) || set !== types.isSet(b) || date !== types.isDate(b) ||\n" - " regexp !== types.isRegExp(b) || buffer !== types.isAnyArrayBuffer(b)) return false;\n" - " if (!view && tagOf(a) !== tagOf(b)) return false;\n" - " if (array && a.length !== b.length) return false;\n" - " if (view) {\n" - " if (taTagGetter.call(a) !== taTagGetter.call(b) || a.byteLength !== b.byteLength) return false;\n" - " const ua = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n" - " const ub = new Uint8Array(b.buffer, b.byteOffset, b.byteLength);\n" - " for (let i = 0; i < ua.length; i++) if (ua[i] !== ub[i]) return false;\n" - " }\n" - " if (buffer) {\n" - " if (a.byteLength !== b.byteLength) return false;\n" - " const ua = new Uint8Array(a);\n" - " const ub = new Uint8Array(b);\n" - " for (let i = 0; i < ua.length; i++) if (ua[i] !== ub[i]) return false;\n" - " }\n" - " if (date && !Object.is(Date.prototype.getTime.call(a), Date.prototype.getTime.call(b))) return false;\n" - " if (regexp && (a.source !== b.source || a.flags !== b.flags || a.lastIndex !== b.lastIndex)) return false;\n" - " if (types.isPromise(a) || types.isPromise(b) || types.isWeakMap(a) || types.isWeakMap(b) ||\n" - " types.isWeakSet(a) || types.isWeakSet(b)) return false;\n" - " const boxed = types.isBoxedPrimitive(a);\n" - " if (boxed !== types.isBoxedPrimitive(b)) return false;\n" - " if (boxed) {\n" - " const unbox = (v) => (types.isStringObject(v) ? String.prototype.valueOf :\n" - " types.isNumberObject(v) ? Number.prototype.valueOf : types.isBooleanObject(v) ? Boolean.prototype.valueOf :\n" - " types.isBigIntObject(v) ? BigInt.prototype.valueOf : Symbol.prototype.valueOf).call(v);\n" - " if (!Object.is(unbox(a), unbox(b))) return false;\n" - " }\n" - " const error = a instanceof Error;\n" - " if (error !== (b instanceof Error)) return false;\n" - " if (typeof URL !== \"undefined\" && (a instanceof URL || b instanceof URL)) {\n" - " if (!(a instanceof URL && b instanceof URL) || a.href !== b.href) return false;\n" - " }\n" - " const enumerable = (v, k) => Object.prototype.propertyIsEnumerable.call(v, k);\n" - " // Typed view elements were compared by bytes. Object.is on float elements\n" - " // would erase distinct NaN payloads that Node's strict comparison preserves.\n" - " const keys = (v) => Reflect.ownKeys(v).filter((k) => enumerable(v, k) &&\n" - " !((array || view) && typeof k === \"string\" && String(k >>> 0) === k && k !== \"4294967295\"));\n" - " const keysA = keys(a);\n" - " const keysB = keys(b);\n" - " if (keysA.length !== keysB.length || keysA.some((k) => !enumerable(b, k))) return false;\n" - " if (map || set) {\n" - " if (a.size !== b.size) return false;\n" - " }\n" - " // Node 24's pair fast path for the first ancestor, then ancestor-set\n" - " // matching at greater depth. Keep this state local to each traversal path.\n" - " memos = memos || [];\n" - " if (memos.length === 1) {\n" - " if (memos[0][0] === a) return memos[0][1] === b;\n" - " if (memos[0][1] === b) return false;\n" - " } else if (memos.length > 1) {\n" - " const seenA = memos.some((p) => p[0] === a || p[1] === a);\n" - " const seenB = memos.some((p) => p[0] === b || p[1] === b);\n" - " if (seenA || seenB) return seenA && seenB;\n" - " }\n" - " memos.push([a, b]);\n" - " try {\n" - " if (error) {\n" - " for (const k of [\"name\", \"message\", \"cause\", \"errors\"]) {\n" - " if (!enumerable(b, k) && !deepEquals(a[k], b[k], skipPrototype, memos)) return false;\n" - " }\n" - " if (Object.prototype.hasOwnProperty.call(a, \"cause\") !== Object.prototype.hasOwnProperty.call(b, \"cause\")) return false;\n" - " }\n" - " let ordered = true;\n" - " for (let i = 0; i < keysB.length; i++) {\n" - " const k = keysB[i];\n" - " ordered = ordered && keysA[i] === k;\n" - " const descriptor = !ordered ? Object.getOwnPropertyDescriptor(a, k) : undefined;\n" - " if (!ordered && (!descriptor || !descriptor.enumerable)) return false;\n" - " const value = descriptor && descriptor.writable !== undefined ? descriptor.value : a[k];\n" - " if (!deepEquals(value, b[k], skipPrototype, memos)) return false;\n" - " }\n" - " if (array) {\n" - " for (let i = 0; i < a.length; i++) {\n" - " if (b[i] === undefined) {\n" - " if (!Object.prototype.hasOwnProperty.call(b, i)) {\n" - " const indicesA = Object.keys(a);\n" - " const indicesB = Object.keys(b);\n" - " if (indicesA.length !== indicesB.length) return false;\n" - " for (; i < indicesB.length; i++) {\n" - " const k = indicesB[i];\n" - " if ((a[k] === undefined && !Object.prototype.hasOwnProperty.call(a, k)) ||\n" - " !deepEquals(a[k], b[k], skipPrototype, memos)) return false;\n" - " }\n" - " return true;\n" - " }\n" - " if (a[i] !== undefined || !Object.prototype.hasOwnProperty.call(a, i)) return false;\n" - " } else if (a[i] === undefined || !deepEquals(a[i], b[i], skipPrototype, memos)) return false;\n" - " }\n" - " }\n" - " if (map || set) {\n" - " const remaining = map ? Array.from(b.entries()) : Array.from(b.values());\n" - " for (const item of a) {\n" - " const index = remaining.findIndex((other) => map\n" - " ? deepEquals(item[0], other[0], skipPrototype, memos) && deepEquals(item[1], other[1], skipPrototype, memos)\n" - " : deepEquals(item, other, skipPrototype, memos));\n" - " if (index === -1) return false;\n" - " remaining.splice(index, 1);\n" - " }\n" - " }\n" - " return true;\n" - " } finally {\n" - " memos.pop();\n" - " }\n" - " };\n" - " const isDeepStrictEqual = (a, b, skipPrototype) => deepEquals(a, b, !!skipPrototype, undefined);\n" - " const ansiRe = /[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/\\#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/\\#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))/g;\n" - " const stripVTControlCharacters = (str) => {\n" - " if (typeof str !== \"string\") envArgumentError(\"str\", \"of type string\", str);\n" - " return str.replace(ansiRe, \"\");\n" - " };\n" - " const styleAliases = { grey: 'gray', blackBright: 'gray', bgGrey: 'bgGray', bgBlackBright: 'bgGray', faint: 'dim', crossedout: 'strikethrough', strikeThrough: 'strikethrough', crossedOut: 'strikethrough', conceal: 'hidden', swapColors: 'inverse', swapcolors: 'inverse', doubleUnderline: 'doubleunderline' };\n" - " for (const [name, target] of Object.entries(styleAliases)) Object.defineProperty(inspect.colors, name, {\n" - " configurable: true, get: () => inspect.colors[target], set: (value) => { inspect.colors[target] = value; },\n" - " });\n" - " let styleCache;\n" - " const getStyleCache = () => {\n" - " if (styleCache === undefined) {\n" - " styleCache = Object.create(null);\n" - " for (const key of Object.getOwnPropertyNames(inspect.colors)) {\n" - " const pair = inspect.colors[key];\n" - " if (!pair) continue;\n" - " styleCache[key] = { open: '\\u001b[' + pair[0] + 'm', close: '\\u001b[' + pair[1] + 'm', keepClose: pair[0] === 1 || pair[0] === 2 };\n" - " }\n" - " }\n" - " return styleCache;\n" - " };\n" - " const replaceCloseCode = (text, style) => {\n" - " let at = 0, index = text.indexOf(style.close), result = '';\n" - " while (index !== -1 && index + style.close.length < text.length) {\n" - " result += text.slice(at, index) + (style.keepClose ? style.close : '') + style.open;\n" - " at = index + style.close.length;\n" - " index = text.indexOf(style.close, at);\n" - " }\n" - " return result + text.slice(at);\n" - " };\n" - " let warnedColors = false;\n" - " const terminalColors = () => {\n" - " const e = env.env, force = e.FORCE_COLOR;\n" - " if (force !== undefined) {\n" - " const enabled = ['', '1', '2', '3', 'true'].includes(force);\n" - " const disabled = e.NO_COLOR ? 'NO_COLOR' : e.NODE_DISABLE_COLORS ? 'NODE_DISABLE_COLORS' : undefined;\n" - " if (enabled && disabled && !warnedColors) {\n" - " env.emitWarning(\"The '\" + disabled + \"' env is ignored due to the 'FORCE_COLOR' env being set.\", 'Warning');\n" - " warnedColors = true;\n" - " }\n" - " return enabled;\n" - " }\n" - " if (e.NO_COLOR || e.NODE_DISABLE_COLORS || e.TERM === 'dumb') return false;\n" - " if (env.platform === 'win32' || e.TMUX || e.TF_BUILD !== undefined && e.AGENT_NAME !== undefined) return true;\n" - " if (e.CI !== undefined) return ['APPVEYOR', 'BUILDKITE', 'CIRCLECI', 'DRONE', 'GITEA_ACTIONS', 'GITHUB_ACTIONS', 'GITLAB_CI', 'TRAVIS'].some((name) => e[name] !== undefined) || e.CI_NAME === 'codeship';\n" - " if (e.TEAMCITY_VERSION !== undefined) return /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(e.TEAMCITY_VERSION);\n" - " if (['iTerm.app', 'HyperTerm', 'MacTerm', 'Apple_Terminal'].includes(e.TERM_PROGRAM)) return true;\n" - " if (e.COLORTERM === 'truecolor' || e.COLORTERM === '24bit') return true;\n" - " if (e.TERM) {\n" - " if (e.TERM.includes('truecolor') || e.TERM.startsWith('xterm-256')) return true;\n" - " const term = e.TERM.toLowerCase();\n" - " if (['eterm', 'cons25', 'console', 'cygwin', 'dtterm', 'gnome', 'hurd', 'jfbterm', 'konsole', 'kterm', 'mlterm', 'mosh', 'putty', 'st', 'rxvt-unicode-24bit', 'terminator', 'xterm-kitty'].includes(term) || /ansi|color|linux|direct|^con[0-9]*x[0-9]|^rxvt|^screen|^xterm|^vt100|^vt220/.test(term)) return true;\n" - " }\n" - " return !!e.COLORTERM;\n" - " };\n" - " const styleText = (format, text, options) => {\n" - " const validateStream = options?.validateStream ?? true;\n" - " const cache = getStyleCache();\n" - " if (!validateStream && typeof format === 'string' && typeof text === 'string') {\n" - " if (format === 'none') return text;\n" - " const style = cache[format];\n" - " if (style !== undefined) return style.open + replaceCloseCode(text, style) + style.close;\n" - " }\n" - " if (typeof text !== 'string') envArgumentError('text', 'of type string', text);\n" - " if (options !== undefined && (options === null || typeof options !== 'object' || Array.isArray(options))) envArgumentError('options', 'of type object', options);\n" - " if (typeof validateStream !== 'boolean') envArgumentError('options.validateStream', 'of type boolean', validateStream);\n" - " let skipColorize = false;\n" - " if (validateStream) {\n" - " const stream = options?.stream ?? env.stdout;\n" - " const node = stream && (stream._readableState || stream._writableState || typeof stream.write === 'function' && typeof stream.on === 'function' || typeof stream.pipe === 'function' && typeof stream.on === 'function');\n" - " const readable = stream && !node && typeof stream.pipeThrough === 'function' && typeof stream.getReader === 'function' && typeof stream.cancel === 'function';\n" - " const writable = stream && !node && typeof stream.getWriter === 'function' && typeof stream.abort === 'function';\n" - " if (!node && !readable && !writable) envArgumentError('stream', 'an instance of ReadableStream, WritableStream, or Stream', stream);\n" - " let colorize;\n" - " if (env.env.FORCE_COLOR !== undefined) colorize = terminalColors();\n" - " else colorize = stream?.isTTY && (typeof stream.getColorDepth === 'function' ? stream.getColorDepth() > 2 : stream === env.stdout || stream === env.stderr || stream === env.stdin ? terminalColors() : true);\n" - " skipColorize = !colorize;\n" - " }\n" - " const formats = Array.isArray(format) ? format : [format];\n" - " let open = '', close = '', processed = text;\n" - " for (const key of formats) {\n" - " if (key === 'none') continue;\n" - " const style = cache[key];\n" - " if (style === undefined && !Object.getOwnPropertyNames(inspect.colors).includes(key)) {\n" - " const error = new TypeError(\"The argument 'format' must be one of: \" + Object.getOwnPropertyNames(inspect.colors).map((name) => \"'\" + name + \"'\").join(', ') + '. Received ' + inspect(key));\n" - " error.code = 'ERR_INVALID_ARG_VALUE';\n" - " throw error;\n" - " }\n" - " open += style.open; close = style.close + close;\n" - " processed = replaceCloseCode(processed, style);\n" - " }\n" - " return skipColorize ? text : open + processed + close;\n" - " };\n" - " const parseArgs = (config = {}) => {\n" - " if (config === null) throw new TypeError(\"Cannot convert undefined or null to object\");\n" - " const own = (o, k) => Object.prototype.hasOwnProperty.call(o, k);\n" - " const get = (o, k) => own(o, k) ? o[k] : undefined;\n" - " const args = get(config, 'args') ?? env.argv.slice(2);\n" - " const strict = get(config, 'strict') ?? true;\n" - " const allowPositionals = get(config, 'allowPositionals') ?? !strict;\n" - " const returnTokens = get(config, 'tokens') ?? false;\n" - " const allowNegative = get(config, 'allowNegative') ?? false;\n" - " const options = get(config, 'options') ?? Object.create(null);\n" - " const fail = (code, message) => { const e = new TypeError(message); e.code = code; throw e; };\n" - " const validate = (v, name, expected, ok) => {\n" - " if (!ok) fail('ERR_INVALID_ARG_TYPE', 'The \"' + name + '\" ' + (name.startsWith('options.') ? 'property' : 'argument') + ' must be ' + expected + '. Received ' + received(v));\n" - " };\n" - " const object = (v, name) => validate(v, name, 'of type object', v !== null && typeof v === 'object' && !Array.isArray(v));\n" - " const boolean = (v, name) => validate(v, name, 'of type boolean', typeof v === 'boolean');\n" - " const string = (v, name) => validate(v, name, 'of type string', typeof v === 'string');\n" - " validate(args, 'args', 'an instance of Array', Array.isArray(args));\n" - " boolean(strict, 'strict');\n" - " boolean(allowPositionals, 'allowPositionals');\n" - " boolean(returnTokens, 'tokens');\n" - " boolean(allowNegative, 'allowNegative');\n" - " object(options, 'options');\n" - " for (const [name, option] of Object.entries(options)) {\n" - " const path = 'options.' + name;\n" - " object(option, path);\n" - " const type = get(option, 'type');\n" - " validate(type, path + '.type', \"('string|boolean')\", type === 'string' || type === 'boolean');\n" - " if (own(option, 'short')) {\n" - " const short = option.short;\n" - " string(short, path + '.short');\n" - " if (short.length !== 1) fail('ERR_INVALID_ARG_VALUE', \"The property '\" + path + \".short' must be a single character. Received \" + inspect(short));\n" - " }\n" - " const multiple = get(option, 'multiple');\n" - " if (own(option, 'multiple')) boolean(multiple, path + '.multiple');\n" - " const value = get(option, 'default');\n" - " if (value !== undefined) {\n" - " const check = type === 'string' ? string : boolean;\n" - " if (multiple) {\n" - " validate(value, path + '.default', 'an instance of Array', Array.isArray(value));\n" - " for (let i = 0; i < value.length; i++) check(value[i], path + '.default[' + i + ']');\n" - " } else check(value, path + '.default');\n" - " }\n" - " }\n" - " const optionGet = (name, key) => own(options, name) ? get(options[name], key) : undefined;\n" - " const shortName = (ch) => {\n" - " const entry = Object.entries(options).find(([, option]) => get(option, 'short') === ch);\n" - " return entry ? entry[0] : ch;\n" - " };\n" - " const tokens = [];\n" - " // Tokenize the full argument snapshot before checking usage, as Node does.\n" - " const remaining = Array.prototype.slice.call(args);\n" - " let index = -1;\n" - " let groupCount = 0;\n" - " while (remaining.length) {\n" - " const arg = remaining.shift();\n" - " if (groupCount > 0) groupCount--; else index++;\n" - " if (arg === '--') {\n" - " tokens.push({ kind: 'option-terminator', index });\n" - " for (const value of remaining) tokens.push({ kind: 'positional', index: ++index, value });\n" - " break;\n" - " }\n" - " // Reading length first deliberately preserves Node's nullish-argument error.\n" - " if (arg == null) throw new TypeError(\"Cannot read properties of \" + arg + \" (reading 'length')\");\n" - " const length = arg.length;\n" - " if (length === 2 && String.prototype.charAt.call(arg, 0) === '-' && String.prototype.charAt.call(arg, 1) !== '-') {\n" - " const name = shortName(String.prototype.charAt.call(arg, 1));\n" - " let value, inlineValue;\n" - " if (optionGet(name, 'type') === 'string' && remaining[0] != null) { value = remaining.shift(); inlineValue = false; }\n" - " tokens.push({ kind: 'option', name, rawName: arg, index, value, inlineValue });\n" - " if (value != null) index++;\n" - " } else if (length > 2 && String.prototype.charAt.call(arg, 0) === '-' && String.prototype.charAt.call(arg, 1) !== '-') {\n" - " const firstName = shortName(String.prototype.charAt.call(arg, 1));\n" - " if (optionGet(firstName, 'type') === 'string') {\n" - " tokens.push({ kind: 'option', name: firstName, rawName: '-' + String.prototype.charAt.call(arg, 1), index, value: String.prototype.slice.call(arg, 2), inlineValue: true });\n" - " } else {\n" - " const expanded = [];\n" - " for (let i = 1; i < length; i++) {\n" - " const ch = String.prototype.charAt.call(arg, i);\n" - " const name = shortName(ch);\n" - " if (optionGet(name, 'type') === 'string' && i !== length - 1) { expanded.push('-' + String.prototype.slice.call(arg, i)); break; }\n" - " expanded.push('-' + ch);\n" - " }\n" - " remaining.unshift(...expanded);\n" - " groupCount = expanded.length;\n" - " }\n" - " } else if (length > 2 && String.prototype.startsWith.call(arg, '--')) {\n" - " const eq = String.prototype.indexOf.call(arg, '=', 3);\n" - " const name = String.prototype.slice.call(arg, 2, eq < 0 ? undefined : eq);\n" - " let value, inlineValue;\n" - " if (eq >= 0) { value = String.prototype.slice.call(arg, eq + 1); inlineValue = true; }\n" - " else if (optionGet(name, 'type') === 'string' && remaining[0] != null) { value = remaining.shift(); inlineValue = false; }\n" - " tokens.push({ kind: 'option', name, rawName: '--' + name, index, value, inlineValue });\n" - " if (eq < 0 && value != null) index++;\n" - " } else tokens.push({ kind: 'positional', index, value: arg });\n" - " }\n" - " const result = { values: Object.create(null), positionals: [] };\n" - " if (returnTokens) result.tokens = tokens;\n" - " for (const token of tokens) {\n" - " if (token.kind === 'positional') {\n" - " if (!allowPositionals) fail('ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL', \"Unexpected argument '\" + token.value + \"'. This command does not take positional arguments\");\n" - " result.positionals.push(token.value);\n" - " } else if (token.kind === 'option') {\n" - " let name = token.name;\n" - " if (strict) {\n" - " if (!own(options, name)) {\n" - " if (allowNegative && name.startsWith('no-') && own(options, name.slice(3)) && optionGet(name.slice(3), 'type') === 'boolean') name = name.slice(3);\n" - " else fail('ERR_PARSE_ARGS_UNKNOWN_OPTION', \"Unknown option '\" + token.rawName + \"'\" + (allowPositionals ? \". To specify a positional argument starting with a '-', place it at the end of the command after '--', as in '-- \\\"\" + token.rawName + \"\\\"\" : ''));\n" - " }\n" - " const short = optionGet(name, 'short');\n" - " const label = (short ? '-' + short + ', ' : '') + '--' + name;\n" - " if (optionGet(name, 'type') === 'string' && typeof token.value !== 'string') fail('ERR_PARSE_ARGS_INVALID_OPTION_VALUE', \"Option '\" + label + \" ' argument missing\");\n" - " if (optionGet(name, 'type') === 'boolean' && token.value != null) fail('ERR_PARSE_ARGS_INVALID_OPTION_VALUE', \"Option '\" + label + \"' does not take an argument\");\n" - " if (!token.inlineValue && token.value != null && token.value.length > 1 && String.prototype.charAt.call(token.value, 0) === '-') {\n" - " const example = token.rawName.startsWith('--') ? \"'\" + token.rawName + \"=-XYZ'\" : \"'--\" + token.name + \"=-XYZ' or '\" + token.rawName + \"-XYZ'\";\n" - " fail('ERR_PARSE_ARGS_INVALID_OPTION_VALUE', \"Option '\" + token.rawName + \"' argument is ambiguous.\\nDid you forget to specify the option argument for '\" + token.rawName + \"'?\\nTo specify an option argument starting with a dash use \" + example + '.');\n" - " }\n" - " }\n" - " name = token.name;\n" - " let value = token.value;\n" - " if (name === '__proto__') continue;\n" - " if (allowNegative && name.startsWith('no-') && value === undefined) { name = name.slice(3); token.name = name; value = false; }\n" - " value = value ?? true;\n" - " if (optionGet(name, 'multiple')) {\n" - " if (!result.values[name]) result.values[name] = [];\n" - " result.values[name].push(value);\n" - " } else result.values[name] = value;\n" - " }\n" - " }\n" - " for (const [name, option] of Object.entries(options)) {\n" - " if (name !== '__proto__' && get(option, 'default') !== undefined && result.values[name] === undefined) result.values[name] = get(option, 'default');\n" - " }\n" - " return result;\n" - " };\n" - " const toUSVString = (s) => {\n" - " let primitive = s;\n" - " const isObject = (v) => v !== null && (typeof v === 'object' || typeof v === 'function');\n" - " if (isObject(s)) {\n" - " const exotic = s[Symbol.toPrimitive];\n" - " if (exotic !== undefined && exotic !== null) {\n" - " if (typeof exotic !== 'function') {\n" - " const kind = typeof exotic;\n" - " const label = ['object', 'symbol', 'bigint'].includes(kind) ? kind : kind + ' ' + (kind === 'string' ? '\"' + exotic + '\"' : String(exotic));\n" - " throw new TypeError(label + ' is not a function');\n" - " }\n" - " primitive = Reflect.apply(exotic, s, ['string']);\n" - " if (isObject(primitive)) throw new TypeError('Cannot convert object to primitive value');\n" - " } else {\n" - " let converted = false;\n" - " for (const name of ['toString', 'valueOf']) {\n" - " const method = s[name];\n" - " if (typeof method !== 'function') continue;\n" - " primitive = Reflect.apply(method, s, []);\n" - " if (!isObject(primitive)) { converted = true; break; }\n" - " }\n" - " if (!converted) throw new TypeError('Cannot convert object to primitive value');\n" - " }\n" - " }\n" - " if (typeof primitive === 'symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n" - " return `${primitive}`.replace(/[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(? {\n" - " if (source === null || typeof source !== \"object\") return target;\n" - " for (const k of Object.keys(source)) target[k] = source[k];\n" - " return target;\n" - " };\n" - " // Node 24's MIME API uses HTTP whitespace and token grammar, not Unicode trimming.\n" - " const mimeInvalidToken = /[^!#$%&'*+\\-.^_`|~A-Za-z0-9]/;\n" - " const mimeInvalidValue = /[^\\t\\u0020-\\u007e\\u0080-\\u00ff]/;\n" - " const mimeLeadingWhitespace = /^[\\r\\n\\t ]*/;\n" - " const mimeTrailingWhitespace = /[\\r\\n\\t ]*$/;\n" - " const mimeLower = (s) => s.replace(/[A-Z]/g, (c) => c.toLowerCase());\n" - " const mimeError = (production, input, index) => {\n" - " const error = new TypeError('The MIME syntax for a ' + production + ' in \"' + input + '\" is invalid' + (index === -1 ? '' : ' at ' + index));\n" - " error.code = 'ERR_INVALID_MIME_SYNTAX';\n" - " throw error;\n" - " };\n" - " const mimeValidateToken = (value, production, input = value) => {\n" - " const index = value.search(mimeInvalidToken);\n" - " if (!value.length || index !== -1) mimeError(production, input, index);\n" - " };\n" - " const mimeEncode = (value) => {\n" - " if (value.length && value.search(mimeInvalidToken) === -1) return value;\n" - " return '\"' + value.replace(/[\"\\\\]/g, (c) => '\\\\' + c) + '\"';\n" - " };\n" - " let mimeParamsFromSource;\n" - " class MIMEParams {\n" - " #data = new Map();\n" - " #source = null;\n" - " static {\n" - " mimeParamsFromSource = (source) => {\n" - " const params = new MIMEParams();\n" - " params.#source = source;\n" - " return params;\n" - " };\n" - " }\n" - " #parse() {\n" - " if (this.#source === null) return;\n" - " const source = this.#source;\n" - " const end = source.search(mimeTrailingWhitespace);\n" - " let pos = 0;\n" - " while (pos < end) {\n" - " pos += source.slice(pos).match(mimeLeadingWhitespace)[0].length;\n" - " const start = pos;\n" - " while (pos < source.length && source[pos] !== ';' && source[pos] !== '=') pos++;\n" - " const name = mimeLower(source.slice(start, pos));\n" - " if (pos < end && source[pos++] === ';') continue;\n" - " if (pos >= end) break;\n" - " let value = '';\n" - " if (source[pos] === '\"') {\n" - " pos++;\n" - " // Quoted values accept escaped characters and a missing closing quote.\n" - " while (pos < source.length) {\n" - " const char = source[pos++];\n" - " if (char === '\"') break;\n" - " value += char === '\\\\' && pos < source.length ? source[pos++] : char;\n" - " }\n" - " } else {\n" - " const startValue = pos;\n" - " while (pos < source.length && source[pos] !== ';') pos++;\n" - " value = source.slice(startValue, pos).replace(mimeTrailingWhitespace, '');\n" - " if (!value.length) continue;\n" - " }\n" - " // Parsing ignores invalid parameters and keeps the first duplicate.\n" - " if (name.length && name.search(mimeInvalidToken) === -1 &&\n" - " value.search(mimeInvalidValue) === -1 && !this.#data.has(name)) {\n" - " this.#data.set(name, value);\n" - " }\n" - " pos++;\n" - " }\n" - " this.#source = null;\n" - " }\n" - " delete(name) { this.#parse(); this.#data.delete(name); }\n" - " get(name) { this.#parse(); return this.#data.has(name) ? this.#data.get(name) : null; }\n" - " has(name) { this.#parse(); return this.#data.has(name); }\n" - " set(name, value) {\n" - " this.#parse();\n" - " name = `${name}`;\n" - " value = `${value}`;\n" - " mimeValidateToken(name, 'parameter name');\n" - " const index = value.search(mimeInvalidValue);\n" - " if (index !== -1) mimeError('parameter value', value, index);\n" - " this.#data.set(name, value);\n" - " }\n" - " *entries() { this.#parse(); yield* this.#data.entries(); }\n" - " *keys() { this.#parse(); yield* this.#data.keys(); }\n" - " *values() { this.#parse(); yield* this.#data.values(); }\n" - " toString() {\n" - " this.#parse();\n" - " let result = '';\n" - " for (const [name, value] of this.#data) {\n" - " if (result.length) result += ';';\n" - " result += name + '=' + mimeEncode(value);\n" - " }\n" - " return result;\n" - " }\n" - " }\n" - " const mimeParamsStringify = MIMEParams.prototype.toString;\n" - " Object.defineProperty(MIMEParams.prototype, Symbol.iterator, {\n" - " value: MIMEParams.prototype.entries, writable: true, configurable: true,\n" - " });\n" - " Object.defineProperty(MIMEParams.prototype, 'toJSON', {\n" - " value: mimeParamsStringify, writable: true, configurable: true,\n" - " });\n" - " class MIMEType {\n" - " #type;\n" - " #subtype;\n" - " #params;\n" - " constructor(input) {\n" - " input = `${input}`;\n" - " const start = input.match(mimeLeadingWhitespace)[0].length;\n" - " const slash = input.indexOf('/', start);\n" - " const type = input.slice(start, slash === -1 ? input.length : slash);\n" - " mimeValidateToken(type, 'type', input);\n" - " if (slash === -1) mimeError('type', input, -1);\n" - " const semicolon = input.indexOf(';', slash + 1);\n" - " const subtype = input.slice(slash + 1, semicolon === -1 ? input.length : semicolon).replace(mimeTrailingWhitespace, '');\n" - " mimeValidateToken(subtype, 'subtype', input);\n" - " this.#type = mimeLower(type);\n" - " this.#subtype = mimeLower(subtype);\n" - " this.#params = mimeParamsFromSource(semicolon === -1 ? '' : input.slice(semicolon + 1));\n" - " }\n" - " get type() { return this.#type; }\n" - " set type(value) {\n" - " value = `${value}`;\n" - " mimeValidateToken(value, 'type');\n" - " this.#type = mimeLower(value);\n" - " }\n" - " get subtype() { return this.#subtype; }\n" - " set subtype(value) {\n" - " value = `${value}`;\n" - " mimeValidateToken(value, 'subtype');\n" - " this.#subtype = mimeLower(value);\n" - " }\n" - " get essence() { return this.#type + '/' + this.#subtype; }\n" - " get params() { return this.#params; }\n" - " toString() {\n" - " // Capture the serializer so user overrides cannot change MIME serialization.\n" - " const params = mimeParamsStringify.call(this.#params);\n" - " return this.#type + '/' + this.#subtype + (params.length ? ';' + params : '');\n" - " }\n" - " }\n" - " Object.defineProperty(MIMEType.prototype, 'toJSON', {\n" - " value: MIMEType.prototype.toString, writable: true, configurable: true,\n" - " });\n" - " const util = {\n" - " getSystemErrorMap: () => new Map(host.systemErrorEntries()),\n" - " getSystemErrorName: (err) => {\n" - " if (typeof err !== 'number') envArgumentError('err', 'of type number', err);\n" - " return host.systemErrorInfo(err, false);\n" - " },\n" - " getSystemErrorMessage: (err) => {\n" - " if (typeof err !== 'number') envArgumentError('err', 'of type number', err);\n" - " return host.systemErrorInfo(err, true);\n" - " },\n" - " format, formatWithOptions, inspect, inherits, promisify, callbackify,\n" - " deprecate, debuglog, debug: debuglog, types, isDeepStrictEqual,\n" - " stripVTControlCharacters, styleText, parseArgs, toUSVString, _extend, MIMEType, MIMEParams,\n" - " parseEnv: (content) => {\n" - " if (typeof content !== 'string') envArgumentError('content', 'of type string', content);\n" - " return host.parseEnv(toUSVString(content));\n" - " },\n" - " TextEncoder: globalThis.TextEncoder, TextDecoder: globalThis.TextDecoder,\n" - " isArray: (v) => Array.isArray(v),\n" - " };\n" - " return util;\n" - "}\n" - " const util = makeUtil({\n" - " typeProbe: host.typeProbe,\n" - " promiseState: (p) => host.promiseState(p),\n" - " writeErr: (s) => host.write(2, s),\n" - " env: builtins.process().env,\n" - " pid: host.pid(),\n" - " argv: builtins.process().argv,\n" - " stdout: builtins.process().stdout,\n" - " });\n" - " util.default = util;\n" - " return util;\n" - " });\n" - /* node:util/types IS util.types (Node aliases the module to the - * same object; require('util/types') === require('util').types). */ - " builtins['util/types'] = memo(() => {\n" - " const t = builtins.util().types;\n" - " return t;\n" - " });\n" - " builtins.child_process = memo(() => {\n" - " const die = (name) => () => {\n" - " throw new Error('child_process.' + name + ' is not available in the scriptc island');\n" - " };\n" - " const cp = {};\n" - " for (const n of ['spawn', 'spawnSync', 'exec', 'execSync', 'execFile', 'execFileSync', 'fork']) cp[n] = die(n);\n" - " cp.default = cp;\n" - " return cp;\n" - " });\n" - /* node:async_hooks — the two classes CLIs actually construct - * (AsyncLocalStorage, AsyncResource) with SYNC-FRAME semantics: - * run() scopes the store for the synchronous call (plus anything - * it calls); the store does NOT survive across engine awaits the - * way Node's continuation tracking preserves it (documented - * divergence — the island has no promise-hook machinery). The - * hook/id surface is inert: createHook returns a disabled hook, - * ids are constants. */ - " builtins.async_hooks = memo(() => {\n" - " class AsyncLocalStorage {\n" - " constructor() { this._stack = []; this._entered = undefined; }\n" - " run(store, fn, ...args) {\n" - " this._stack.push(store);\n" - " try { return fn(...args); }\n" - " finally { this._stack.pop(); }\n" - " }\n" - " exit(fn, ...args) { return this.run(undefined, fn, ...args); }\n" - " getStore() {\n" - " if (this._stack.length > 0) return this._stack[this._stack.length - 1];\n" - " return this._entered;\n" - " }\n" - " enterWith(store) { this._entered = store; }\n" - " disable() { this._stack = []; this._entered = undefined; }\n" - " static bind(fn) { return fn; }\n" - " static snapshot() { return (cb, ...args) => cb(...args); }\n" - " }\n" - " class AsyncResource {\n" - " constructor(type, opts) { this.type = String(type); void opts; }\n" - " runInAsyncScope(fn, thisArg, ...args) { return fn.apply(thisArg, args); }\n" - " bind(fn, thisArg) {\n" - " const res = this;\n" - " return function bound(...args) { return res.runInAsyncScope(fn, thisArg === undefined ? this : thisArg, ...args); };\n" - " }\n" - " static bind(fn, type, thisArg) { return new AsyncResource(type || 'bound-anonymous-fn').bind(fn, thisArg); }\n" - " emitDestroy() { return this; }\n" - " asyncId() { return 1; }\n" - " triggerAsyncId() { return 0; }\n" - " }\n" - " const ah = {\n" - " AsyncLocalStorage, AsyncResource,\n" - " executionAsyncId: () => 1,\n" - " triggerAsyncId: () => 0,\n" - " executionAsyncResource: () => ({}),\n" - " createHook: () => ({ enable() { return this; }, disable() { return this; } }),\n" - " };\n" - " ah.default = ah;\n" - " return ah;\n" - " });\n" - /* node:domain — the deprecated legacy module, shimmed because - * @sentry/node (inside a real CLI's graph) REQUIRES it at load - * on every path (async/domain.js's top level) while only DRIVING it - * on Node < 14, which never happens here. The shim keeps the module - * loadable with the real synchronous surface: create()/Domain, - * enter/exit maintaining the active stack, run/bind/intercept - * catching sync throws into 'error' listeners (re-thrown when nobody - * listens, Node's fatal path). Async error TRAPPING does not - * propagate (no async_hooks machinery) — the documented limit of the - * island's domain, same family as the async_hooks shim above. */ - " builtins.domain = memo(() => {\n" - " const EventEmitter = builtins.events();\n" - " const stack = [];\n" - " const d = { _stack: stack, active: null };\n" - " class Domain extends EventEmitter {\n" - " constructor() { super(); this.members = []; }\n" - " enter() { stack.push(this); d.active = this; }\n" - " exit() {\n" - " const i = stack.lastIndexOf(this);\n" - " if (i === -1) return;\n" - " stack.splice(i);\n" - " d.active = stack.length > 0 ? stack[stack.length - 1] : null;\n" - " }\n" - /* run/bind do NOT catch: Node's sync throws propagate to the caller - * (the domain traps only errors that reach the fatal/async layers — - * machinery the island does not carry). And they exit the domain only - * on the NON-throw path — Node's own bind runs enter → cb → exit with - * no finally, so a throw leaves the domain ENTERED (oracle-pinned: - * domain.active stays the domain after a throwing run). intercept's - * error arm is the one documented emit path: decorate and emit - * 'error' (an unhandled 'error' throws through the EventEmitter - * contract, like Node). */ - " run(fn, ...args) {\n" - " this.enter();\n" - " const ret = fn.apply(this, args);\n" - " this.exit();\n" - " return ret;\n" - " }\n" - " add(ee) { if (this.members.indexOf(ee) === -1) this.members.push(ee); if (ee) ee.domain = this; }\n" - " remove(ee) { const i = this.members.indexOf(ee); if (i !== -1) this.members.splice(i, 1); if (ee && ee.domain === this) ee.domain = undefined; }\n" - " bind(cb) {\n" - " const self = this;\n" - " function bound(...args) {\n" - " self.enter();\n" - " const ret = cb.apply(this, args);\n" - " self.exit();\n" - " return ret;\n" - " }\n" - " bound.domain = this;\n" - " return bound;\n" - " }\n" - " intercept(cb) {\n" - " const self = this;\n" - " return this.bind(function intercepted(err, ...rest) {\n" - " if (err) {\n" - " if (typeof err === 'object' && err !== null) { err.domain = self; err.domainThrown = false; }\n" - " self.emit('error', err);\n" - " return undefined;\n" - " }\n" - " return cb.apply(this, rest);\n" - " });\n" - " }\n" - " dispose() { this.exit(); this.removeAllListeners(); return this; }\n" - " }\n" - " const create = () => new Domain();\n" - " d.Domain = Domain;\n" - " d.create = create;\n" - " d.createDomain = create;\n" - " d.default = d;\n" - " return d;\n" - " });\n" - /* node:worker_threads — the MAIN-THREAD surface, loadable because - * undici (proxy-agent's dispatcher, in a real CLI's graph when - * proxy env vars exist) requires it UNGUARDED at load: fetch/ - * constants.js destructures MessageChannel/receiveMessageOnPort for - * its structuredClone fallback, websocket/events.js MessagePort. - * Ports are a REAL in-process pair (postMessage queues on the peer, - * receiveMessageOnPort drains) with one documented divergence: - * messages pass by REFERENCE, not structured clone — the island has - * no serializer, and the only in-graph consumer clones-and-reads - * immediately. Worker itself fences loudly at construction: there is - * no worker runtime. */ - " builtins.worker_threads = memo(() => {\n" - " /* The pair IS the web prelude's global classes (Node exposes the\n" - " * same identities as globals and module members), so instanceof\n" - " * agrees across both spellings; postMessage delivers\n" - " * structuredClone copies through the prelude's serializer. */\n" - " const MessagePort = globalThis.MessagePort;\n" - " const MessageChannel = globalThis.MessageChannel;\n" - " const receiveMessageOnPort = (port) => (port._queue.length > 0 ? port._queue.shift() : undefined);\n" - " class Worker {\n" - " constructor() { throw new Error(\"node:worker_threads 'Worker' is not supported in the scriptc island (the embedded engine has no worker runtime)\"); }\n" - " }\n" - " const wt = {\n" - " isMainThread: true, parentPort: null, threadId: 0, workerData: null, resourceLimits: {},\n" - " MessageChannel, MessagePort, Worker, receiveMessageOnPort,\n" - " markAsUntransferable: () => {}, isMarkedAsUntransferable: () => false,\n" - " getEnvironmentData: () => undefined, setEnvironmentData: () => {},\n" - " SHARE_ENV: Symbol.for('nodejs.worker_threads.SHARE_ENV'),\n" - " };\n" - " wt.default = wt;\n" - " return wt;\n" - " });\n" - /* node:perf_hooks — performance with a real monotonic-ish clock - * (Date.now against the module's load origin; the island has no - * hrtime source) and inert mark/measure bookkeeping. undici's - * fetch/util.js destructures { performance } UNGUARDED at load. */ - " builtins.perf_hooks = memo(() => {\n" - " const timeOrigin = Date.now();\n" - " const performance = {\n" - " timeOrigin,\n" - " now: () => Date.now() - timeOrigin,\n" - " mark: () => ({}),\n" - " measure: () => ({}),\n" - " clearMarks: () => {},\n" - " clearMeasures: () => {},\n" - " getEntries: () => [],\n" - " getEntriesByName: () => [],\n" - " getEntriesByType: () => [],\n" - " eventLoopUtilization: () => ({ idle: 0, active: 0, utilization: 0 }),\n" - " };\n" - " class PerformanceObserver {\n" - " constructor() {}\n" - " observe() {}\n" - " disconnect() {}\n" - " takeRecords() { return []; }\n" - " }\n" - " PerformanceObserver.supportedEntryTypes = [];\n" - " const ph = {\n" - " performance, PerformanceObserver,\n" - " monitorEventLoopDelay: () => ({ enable: () => {}, disable: () => {}, reset: () => {}, min: 0, max: 0, mean: 0, stddev: 0, percentile: () => 0 }),\n" - " constants: {},\n" - " };\n" - " ph.default = ph;\n" - " return ph;\n" - " });\n" - /* node:v8 — LOADABLE with Node's surface shape. Prettier's bundled - * error helpers call startupSnapshot.isBuildingSnapshot() (inside a - * try/catch) on every CLI start, so the module must import cleanly - * and that one question must answer for real: the island is never a - * snapshot build, so false — and the snapshot mutators throw Node's - * ERR_NOT_BUILDING_SNAPSHOT exactly as a regular Node process does. - * Heap statistics follow the os-shim's inert-half rule (all of - * Node's keys, zero values — the embedded engine has no V8 heap to - * report), flag/coverage entries are Node's own no-op paths, and the - * V8-specific serialization wire format (serialize/deserialize and - * the (De)Serializer classes) fences loudly at the call — the - * embedded engine cannot produce or consume V8 serialization data. */ - " builtins.v8 = memo(() => {\n" - " const fence = (what) => () => { throw new Error(\"node:v8 '\" + what + \"' is not supported in the scriptc island (the embedded engine has no V8 heap or serialization format)\"); };\n" - " const notBuilding = () => {\n" - " const e = new Error('Operation cannot be invoked when not building startup snapshot');\n" - " e.code = 'ERR_NOT_BUILDING_SNAPSHOT';\n" - " throw e;\n" - " };\n" - " const startupSnapshot = {\n" - " isBuildingSnapshot: () => false,\n" - " addSerializeCallback: notBuilding,\n" - " addDeserializeCallback: notBuilding,\n" - " setDeserializeMainFunction: notBuilding,\n" - " };\n" - " class FencedClass { constructor() { fence(new.target.name)(); } }\n" - " class Serializer extends FencedClass {}\n" - " class Deserializer extends FencedClass {}\n" - " class DefaultSerializer extends FencedClass {}\n" - " class DefaultDeserializer extends FencedClass {}\n" - " class GCProfiler extends FencedClass {}\n" - " const v8 = {\n" - " startupSnapshot,\n" - " cachedDataVersionTag: () => 0,\n" - " getHeapStatistics: () => ({ total_heap_size: 0, total_heap_size_executable: 0, total_physical_size: 0, total_available_size: 0, used_heap_size: 0, heap_size_limit: 0, malloced_memory: 0, peak_malloced_memory: 0, does_zap_garbage: 0, number_of_native_contexts: 0, number_of_detached_contexts: 0, total_global_handles_size: 0, used_global_handles_size: 0, external_memory: 0 }),\n" - " getHeapSpaceStatistics: () => [],\n" - " getHeapCodeStatistics: () => ({ code_and_metadata_size: 0, bytecode_and_metadata_size: 0, external_script_source_size: 0, cpu_profiler_metadata_size: 0 }),\n" - " getCppHeapStatistics: () => ({}),\n" - " setFlagsFromString: () => undefined,\n" - " takeCoverage: () => undefined,\n" - " stopCoverage: () => undefined,\n" - " setHeapSnapshotNearHeapLimit: () => undefined,\n" - " serialize: fence('serialize'),\n" - " deserialize: fence('deserialize'),\n" - " writeHeapSnapshot: fence('writeHeapSnapshot'),\n" - " getHeapSnapshot: fence('getHeapSnapshot'),\n" - " queryObjects: fence('queryObjects'),\n" - " startCpuProfile: fence('startCpuProfile'),\n" - " isStringOneByteRepresentation: fence('isStringOneByteRepresentation'),\n" - " promiseHooks: { onInit: fence('promiseHooks.onInit'), onSettled: fence('promiseHooks.onSettled'), onBefore: fence('promiseHooks.onBefore'), onAfter: fence('promiseHooks.onAfter'), createHook: fence('promiseHooks.createHook') },\n" - " Serializer, Deserializer, DefaultSerializer, DefaultDeserializer, GCProfiler,\n" - " };\n" - " v8.default = v8;\n" - " return v8;\n" - " });\n" - /* node:dns and node:dns/promises load before callers perform a lookup. - * Network queries fence through the callback or promise error channel - * at the call. The island has no DNS client. */ - " builtins.dns = memo(() => {\n" - " const fenceErr = (what) => {\n" - " const e = new Error(\"node:dns '\" + what + \"' is not supported in the scriptc island yet\");\n" - " e.code = 'ENOTFOUND';\n" - " e.syscall = what;\n" - " return e;\n" - " };\n" - " const cbFence = (what) => (...args) => {\n" - " const cb = args[args.length - 1];\n" - " if (typeof cb === 'function') { queueMicrotask(() => cb(fenceErr(what))); return; }\n" - " throw fenceErr(what);\n" - " };\n" - " const pFence = (what) => (...args) => Promise.reject(fenceErr(what));\n" - " let defaultResultOrder = 'verbatim';\n" - " const getDefaultResultOrder = () => defaultResultOrder;\n" - " const setDefaultResultOrder = (order) => {\n" - " if (!['verbatim', 'ipv4first', 'ipv6first'].includes(order)) throw new TypeError('Invalid DNS result order: ' + order);\n" - " defaultResultOrder = order;\n" - " };\n" - " const getServers = () => [];\n" - " const setServers = () => {};\n" - " const queryMethods = ['resolve', 'resolve4', 'resolve6', 'resolveAny', 'resolveCaa', 'resolveCname', 'resolveMx', 'resolveNaptr', 'resolveNs', 'resolvePtr', 'resolveSoa', 'resolveSrv', 'resolveTlsa', 'resolveTxt', 'reverse'];\n" - " const promises = {\n" - " lookup: pFence('lookup'), lookupService: pFence('lookupService'),\n" - " getServers, setServers, getDefaultResultOrder, setDefaultResultOrder,\n" - " };\n" - " class Resolver {\n" - " constructor() {}\n" - " getServers() { return getServers(); }\n" - " setServers(servers) { return setServers(servers); }\n" - " cancel() {}\n" - " }\n" - " const PromiseResolver = class Resolver {\n" - " getServers() { return getServers(); }\n" - " setServers(servers) { return setServers(servers); }\n" - " cancel() {}\n" - " };\n" - " promises.Resolver = PromiseResolver;\n" - " const d = {\n" - " lookup: cbFence('lookup'), lookupService: cbFence('lookupService'),\n" - " getServers, setServers, getDefaultResultOrder, setDefaultResultOrder,\n" - " Resolver, promises, ADDRCONFIG: 1024, V4MAPPED: 2048, ALL: 256,\n" - " };\n" - " for (const m of queryMethods) {\n" - " Resolver.prototype[m] = cbFence(m);\n" - " PromiseResolver.prototype[m] = pFence(m);\n" - " d[m] = cbFence(m);\n" - " promises[m] = pFence(m);\n" - " }\n" - " for (const name of ['NODATA', 'FORMERR', 'SERVFAIL', 'NOTFOUND', 'NOTIMP', 'REFUSED', 'BADQUERY', 'BADNAME', 'BADFAMILY', 'BADRESP', 'CONNREFUSED', 'TIMEOUT', 'EOF', 'FILE', 'NOMEM', 'DESTRUCTION', 'BADSTR', 'BADFLAGS', 'NONAME', 'BADHINTS', 'NOTINITIALIZED', 'LOADIPHLPAPI', 'ADDRGETNETWORKPARAMS', 'CANCELLED']) {\n" - " const value = name === 'EOF' ? name : 'E' + name;\n" - " d[name] = value;\n" - " promises[name] = value;\n" - " }\n" - " d.default = d;\n" - " return d;\n" - " });\n" - " builtins['dns/promises'] = memo(() => builtins.dns().promises);\n" - /* node:readline — createInterface over any Readable-ish input - * (data-event line splitting, question/line/close, async - * iteration) and the cursor-control writers (the ANSI sequences - * Node writes). Terminal echo/keypress machinery is inert. */ - " builtins.readline = memo(() => {\n" - " const EventEmitter = builtins.events();\n" - " class Interface extends EventEmitter {\n" - " constructor(input, output, completer, terminal) {\n" - " super();\n" - " let opts = input;\n" - " if (!opts || typeof opts.on === 'function') opts = { input, output, completer, terminal };\n" - " this.input = opts.input;\n" - " this.output = opts.output;\n" - " this.terminal = opts.terminal !== undefined ? !!opts.terminal : !!(this.output && this.output.isTTY);\n" - " this._prompt = opts.prompt !== undefined ? opts.prompt : '> ';\n" - " this._buf = '';\n" - " this.closed = false;\n" - " this.line = '';\n" - " this.cursor = 0;\n" - " this._onData = (chunk) => {\n" - " this._buf += typeof chunk === 'string' ? chunk : chunk.toString('utf8');\n" - " let i;\n" - " while ((i = this._buf.indexOf('\\n')) >= 0) {\n" - " let line = this._buf.slice(0, i);\n" - " if (line.endsWith('\\r')) line = line.slice(0, -1);\n" - " this._buf = this._buf.slice(i + 1);\n" - /* a pending question consumes the line — Node's Interface answers - * the question without emitting 'line' for that row */ - " const q = this._questions && this._questions.shift();\n" - " if (q !== undefined) q(line);\n" - " else this.emit('line', line);\n" - " }\n" - " };\n" - " this._onEnd = () => this.close();\n" - " if (this.input && typeof this.input.on === 'function') {\n" - " this.input.on('data', this._onData);\n" - " this.input.on('end', this._onEnd);\n" - " }\n" - " }\n" - " question(query, optionsOrCb, maybeCb) {\n" - " const cb = typeof optionsOrCb === 'function' ? optionsOrCb : maybeCb;\n" - " if (this.output && typeof this.output.write === 'function') this.output.write(String(query));\n" - " if (typeof cb === 'function') {\n" - " if (this._questions === undefined) this._questions = [];\n" - " this._questions.push(cb);\n" - " }\n" - " }\n" - " setPrompt(p) { this._prompt = String(p); }\n" - " getPrompt() { return this._prompt; }\n" - " prompt() {\n" - " if (this.output && typeof this.output.write === 'function') this.output.write(this._prompt);\n" - " }\n" - " write(data) {\n" - " if (data !== undefined && data !== null && this.output && typeof this.output.write === 'function') this.output.write(String(data));\n" - " }\n" - " pause() { if (this.input && this.input.pause) this.input.pause(); return this; }\n" - " resume() { if (this.input && this.input.resume) this.input.resume(); return this; }\n" - " close() {\n" - " if (this.closed) return;\n" - " this.closed = true;\n" - " if (this.input && typeof this.input.removeListener === 'function') {\n" - " this.input.removeListener('data', this._onData);\n" - " this.input.removeListener('end', this._onEnd);\n" - " }\n" - " this.emit('close');\n" - " }\n" - " [Symbol.asyncIterator]() {\n" - " const lines = [];\n" - " let notify = null;\n" - " let done = false;\n" - " this.on('line', (l) => { lines.push(l); if (notify) { const n = notify; notify = null; n(); } });\n" - " this.on('close', () => { done = true; if (notify) { const n = notify; notify = null; n(); } });\n" - " return {\n" - " next: async () => {\n" - " while (lines.length === 0 && !done) await new Promise((res) => { notify = res; });\n" - " if (lines.length > 0) return { value: lines.shift(), done: false };\n" - " return { value: undefined, done: true };\n" - " },\n" - " [Symbol.asyncIterator]() { return this; },\n" - " };\n" - " }\n" - " }\n" - " const wr = (stream, s, cb) => {\n" - " if (stream && typeof stream.write === 'function') stream.write(s);\n" - " if (typeof cb === 'function') queueMicrotask(cb);\n" - " return true;\n" - " };\n" - " const rl = {\n" - " Interface,\n" - " createInterface: (input, output, completer, terminal) => new Interface(input, output, completer, terminal),\n" - " clearLine: (stream, dir, cb) => wr(stream, dir < 0 ? '\\u001b[1K' : dir > 0 ? '\\u001b[0K' : '\\u001b[2K', cb),\n" - " clearScreenDown: (stream, cb) => wr(stream, '\\u001b[0J', cb),\n" - " cursorTo: (stream, x, y, cb) => {\n" - " if (typeof y === 'function') { cb = y; y = undefined; }\n" - " return wr(stream, y === undefined ? '\\u001b[' + (x + 1) + 'G' : '\\u001b[' + (y + 1) + ';' + (x + 1) + 'H', cb);\n" - " },\n" - " moveCursor: (stream, dx, dy, cb) => {\n" - " let s = '';\n" - " if (dx < 0) s += '\\u001b[' + (-dx) + 'D'; else if (dx > 0) s += '\\u001b[' + dx + 'C';\n" - " if (dy < 0) s += '\\u001b[' + (-dy) + 'A'; else if (dy > 0) s += '\\u001b[' + dy + 'B';\n" - " return wr(stream, s, cb);\n" - " },\n" - " emitKeypressEvents: () => {},\n" - " };\n" - " rl.default = rl;\n" - " return rl;\n" - " });\n" - /* node:punycode — Node's vendored userland punycode (RFC 3492), - * ported and differentially tested (tr46/whatwg-url require it). */ - " builtins.punycode = memo(() => {\n" - "function makePunycode() {\n" - " const maxInt = 2147483647;\n" - " const base = 36;\n" - " const tMin = 1;\n" - " const tMax = 26;\n" - " const skew = 38;\n" - " const damp = 700;\n" - " const initialBias = 72;\n" - " const initialN = 128;\n" - " const delimiter = \"-\";\n" - " const regexNonASCII = /[^\\0-\\x7F]/;\n" - " const regexSeparators = /[\\x2E。.。]/g;\n" - " const error = (type) => {\n" - " const messages = {\n" - " \"overflow\": \"Overflow: input needs wider integers to process\",\n" - " \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n" - " \"invalid-input\": \"Invalid input\",\n" - " };\n" - " throw new RangeError(messages[type]);\n" - " };\n" - " const ucs2decode = (string) => {\n" - " const output = [];\n" - " let counter = 0;\n" - " const length = string.length;\n" - " while (counter < length) {\n" - " const value = string.charCodeAt(counter++);\n" - " if (value >= 0xd800 && value <= 0xdbff && counter < length) {\n" - " const extra = string.charCodeAt(counter++);\n" - " if ((extra & 0xfc00) === 0xdc00) {\n" - " output.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n" - " } else {\n" - " output.push(value);\n" - " counter--;\n" - " }\n" - " } else {\n" - " output.push(value);\n" - " }\n" - " }\n" - " return output;\n" - " };\n" - " const ucs2encode = (codePoints) => String.fromCodePoint(...codePoints);\n" - " const basicToDigit = (codePoint) => {\n" - " if (codePoint >= 0x30 && codePoint < 0x3a) return 26 + (codePoint - 0x30);\n" - " if (codePoint >= 0x41 && codePoint < 0x5b) return codePoint - 0x41;\n" - " if (codePoint >= 0x61 && codePoint < 0x7b) return codePoint - 0x61;\n" - " return base;\n" - " };\n" - " const digitToBasic = (digit, flag) => digit + 22 + 75 * (digit < 26) - ((flag !== 0) << 5);\n" - " const adapt = (delta, numPoints, firstTime) => {\n" - " let k = 0;\n" - " delta = firstTime ? Math.floor(delta / damp) : delta >> 1;\n" - " delta += Math.floor(delta / numPoints);\n" - " for (; delta > ((base - tMin) * tMax) >> 1; k += base) {\n" - " delta = Math.floor(delta / (base - tMin));\n" - " }\n" - " return Math.floor(k + ((base - tMin + 1) * delta) / (delta + skew));\n" - " };\n" - " const decode = (input) => {\n" - " const output = [];\n" - " const inputLength = input.length;\n" - " let i = 0;\n" - " let n = initialN;\n" - " let bias = initialBias;\n" - " let basic = input.lastIndexOf(delimiter);\n" - " if (basic < 0) basic = 0;\n" - " for (let j = 0; j < basic; ++j) {\n" - " if (input.charCodeAt(j) >= 0x80) error(\"not-basic\");\n" - " output.push(input.charCodeAt(j));\n" - " }\n" - " for (let index = basic > 0 ? basic + 1 : 0; index < inputLength;) {\n" - " const oldi = i;\n" - " for (let w = 1, k = base; ; k += base) {\n" - " if (index >= inputLength) error(\"invalid-input\");\n" - " const digit = basicToDigit(input.charCodeAt(index++));\n" - " if (digit >= base) error(\"invalid-input\");\n" - " if (digit > Math.floor((maxInt - i) / w)) error(\"overflow\");\n" - " i += digit * w;\n" - " const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n" - " if (digit < t) break;\n" - " const baseMinusT = base - t;\n" - " if (w > Math.floor(maxInt / baseMinusT)) error(\"overflow\");\n" - " w *= baseMinusT;\n" - " }\n" - " const out = output.length + 1;\n" - " bias = adapt(i - oldi, out, oldi === 0);\n" - " if (Math.floor(i / out) > maxInt - n) error(\"overflow\");\n" - " n += Math.floor(i / out);\n" - " i %= out;\n" - " output.splice(i++, 0, n);\n" - " }\n" - " return String.fromCodePoint(...output);\n" - " };\n" - " const encode = (input) => {\n" - " const output = [];\n" - " const decoded = ucs2decode(String(input));\n" - " const inputLength = decoded.length;\n" - " let n = initialN;\n" - " let delta = 0;\n" - " let bias = initialBias;\n" - " for (const currentValue of decoded) {\n" - " if (currentValue < 0x80) output.push(String.fromCharCode(currentValue));\n" - " }\n" - " const basicLength = output.length;\n" - " let handledCPCount = basicLength;\n" - " if (basicLength) output.push(delimiter);\n" - " while (handledCPCount < inputLength) {\n" - " let m = maxInt;\n" - " for (const currentValue of decoded) {\n" - " if (currentValue >= n && currentValue < m) m = currentValue;\n" - " }\n" - " const handledCPCountPlusOne = handledCPCount + 1;\n" - " if (m - n > Math.floor((maxInt - delta) / handledCPCountPlusOne)) error(\"overflow\");\n" - " delta += (m - n) * handledCPCountPlusOne;\n" - " n = m;\n" - " for (const currentValue of decoded) {\n" - " if (currentValue < n && ++delta > maxInt) error(\"overflow\");\n" - " if (currentValue === n) {\n" - " let q = delta;\n" - " for (let k = base; ; k += base) {\n" - " const t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n" - " if (q < t) break;\n" - " const qMinusT = q - t;\n" - " const baseMinusT = base - t;\n" - " output.push(String.fromCharCode(digitToBasic(t + (qMinusT % baseMinusT), 0)));\n" - " q = Math.floor(qMinusT / baseMinusT);\n" - " }\n" - " output.push(String.fromCharCode(digitToBasic(q, 0)));\n" - " bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n" - " delta = 0;\n" - " ++handledCPCount;\n" - " }\n" - " }\n" - " ++delta;\n" - " ++n;\n" - " }\n" - " return output.join(\"\");\n" - " };\n" - " const mapDomain = (domain, callback) => {\n" - " const parts = String(domain).split(\"@\");\n" - " let result = \"\";\n" - " if (parts.length > 1) {\n" - " result = parts[0] + \"@\";\n" - " domain = parts[1];\n" - " }\n" - " domain = domain.replace(regexSeparators, \"\\x2E\");\n" - " const labels = domain.split(\".\");\n" - " const encoded = labels.map(callback).join(\".\");\n" - " return result + encoded;\n" - " };\n" - " const toUnicode = (input) => mapDomain(input, (string) =>\n" - " /^xn--/.test(string) ? decode(string.slice(4).toLowerCase()) : string);\n" - " const toASCII = (input) => mapDomain(input, (string) =>\n" - " regexNonASCII.test(string) ? \"xn--\" + encode(string) : string);\n" - " return {\n" - " version: \"2.1.0\",\n" - " ucs2: { decode: ucs2decode, encode: ucs2encode },\n" - " decode,\n" - " encode,\n" - " toASCII,\n" - " toUnicode,\n" - " };\n" - "}\n" - " const p = makePunycode();\n" - " p.default = p;\n" - " return p;\n" - " });\n" - /* node:querystring — Node's parse/stringify semantics ('+' is a - * space on parse, %20 on stringify, arrays expand, null-proto - * results), differentially tested. */ - " builtins.querystring = memo(() => {\n" - "function makeQuerystring() {\n" - " const unescapeBuffer = (s) => {\n" - " try {\n" - " return decodeURIComponent(s);\n" - " } catch (e) {\n" - " const bytes = [];\n" - " for (let i = 0; i < s.length; i++) {\n" - " if (s[i] === \"%\" && /^[0-9a-fA-F]{2}$/.test(s.slice(i + 1, i + 3))) {\n" - " bytes.push(parseInt(s.slice(i + 1, i + 3), 16));\n" - " i += 2;\n" - " } else {\n" - " const enc = new TextEncoder().encode(s[i]);\n" - " for (const b of enc) bytes.push(b);\n" - " }\n" - " }\n" - " return new TextDecoder().decode(new Uint8Array(bytes));\n" - " }\n" - " };\n" - " const qsUnescape = (s) => unescapeBuffer(String(s));\n" - " const hexTable = [];\n" - " for (let i = 0; i < 256; i++) hexTable[i] = \"%\" + i.toString(16).toUpperCase().padStart(2, \"0\");\n" - " const noEscape = new Set(\n" - " \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._!'()*~\".split(\"\"),\n" - " );\n" - " const qsEscape = (str) => {\n" - " const s = String(str);\n" - " let out = \"\";\n" - " for (const ch of s) {\n" - " if (noEscape.has(ch)) {\n" - " out += ch;\n" - " continue;\n" - " }\n" - " const cp = ch.codePointAt(0);\n" - " if (cp < 0x80) {\n" - " out += hexTable[cp];\n" - " } else if (cp < 0x800) {\n" - " out += hexTable[0xc0 | (cp >> 6)] + hexTable[0x80 | (cp & 0x3f)];\n" - " } else if (cp < 0x10000) {\n" - " out += hexTable[0xe0 | (cp >> 12)] + hexTable[0x80 | ((cp >> 6) & 0x3f)] + hexTable[0x80 | (cp & 0x3f)];\n" - " } else {\n" - " out += hexTable[0xf0 | (cp >> 18)] + hexTable[0x80 | ((cp >> 12) & 0x3f)] + hexTable[0x80 | ((cp >> 6) & 0x3f)] + hexTable[0x80 | (cp & 0x3f)];\n" - " }\n" - " }\n" - " return out;\n" - " };\n" - " const stringifyPrimitive = (v) => {\n" - " if (typeof v === \"string\") return v;\n" - " if (typeof v === \"number\" && Number.isFinite(v)) return String(v);\n" - " if (typeof v === \"bigint\") return String(v);\n" - " if (typeof v === \"boolean\") return v ? \"true\" : \"false\";\n" - " return \"\";\n" - " };\n" - " const stringify = (obj, sep, eq, options) => {\n" - " sep = sep || \"&\";\n" - " eq = eq || \"=\";\n" - " let escape = qsEscape;\n" - " if (options !== undefined && options !== null && typeof options.encodeURIComponent === \"function\") {\n" - " escape = options.encodeURIComponent;\n" - " }\n" - " if (obj === null || typeof obj !== \"object\") return \"\";\n" - " const parts = [];\n" - " for (const k of Object.keys(obj)) {\n" - " const v = obj[k];\n" - " const ek = escape(stringifyPrimitive(k));\n" - " if (Array.isArray(v)) {\n" - " for (const item of v) parts.push(ek + eq + escape(stringifyPrimitive(item)));\n" - " } else {\n" - " parts.push(ek + eq + escape(stringifyPrimitive(v)));\n" - " }\n" - " }\n" - " return parts.join(sep);\n" - " };\n" - " const parse = (qs, sep, eq, options) => {\n" - " sep = sep || \"&\";\n" - " eq = eq || \"=\";\n" - " const obj = Object.create(null);\n" - " if (typeof qs !== \"string\" || qs.length === 0) return obj;\n" - " let decode = qsUnescape;\n" - " let maxKeys = 1000;\n" - " if (options !== undefined && options !== null) {\n" - " if (typeof options.decodeURIComponent === \"function\") decode = options.decodeURIComponent;\n" - " if (typeof options.maxKeys === \"number\") maxKeys = options.maxKeys;\n" - " }\n" - " let pairs = qs.split(sep);\n" - " if (maxKeys > 0) pairs = pairs.slice(0, maxKeys);\n" - " for (const pair of pairs) {\n" - " if (pair.length === 0) continue;\n" - " const eqAt = pair.indexOf(eq);\n" - " let k;\n" - " let v;\n" - " if (eqAt < 0) {\n" - " k = decode(pair.split(\"+\").join(\" \"));\n" - " v = \"\";\n" - " } else {\n" - " k = decode(pair.slice(0, eqAt).split(\"+\").join(\" \"));\n" - " v = decode(pair.slice(eqAt + eq.length).split(\"+\").join(\" \"));\n" - " }\n" - " if (k in obj) {\n" - " if (Array.isArray(obj[k])) obj[k].push(v);\n" - " else obj[k] = [obj[k], v];\n" - " } else {\n" - " obj[k] = v;\n" - " }\n" - " }\n" - " return obj;\n" - " };\n" - " return {\n" - " parse,\n" - " stringify,\n" - " decode: parse,\n" - " encode: stringify,\n" - " escape: qsEscape,\n" - " unescape: qsUnescape,\n" - " unescapeBuffer,\n" - " };\n" - "}\n" - " const q = makeQuerystring();\n" - " q.default = q;\n" - " return q;\n" - " });\n" - /* node:constants — the deprecated flat merge (os signals + fs - * flags + the crypto slice), same numbers the platform hooks - * answer everywhere else. */ - " builtins.constants = memo(() => {\n" - " const c = { ...host.signals(), ...host.fsConstants(), ...builtins.crypto().constants };\n" - " c.default = c;\n" - " return c;\n" - " });\n" - /* node:console — the Console class over any write streams plus - * the global console (which the bootstrap upgrades below to - * Node's format semantics for npm builds). */ - " builtins.console = memo(() => {\n" - " const format = (...a) => builtins.util().formatWithOptions({}, ...a);\n" - " class Console {\n" - " constructor(stdout, stderr) {\n" - " const opts = stdout !== null && typeof stdout === 'object' && stdout.stdout !== undefined ? stdout : { stdout, stderr };\n" - " this._out = opts.stdout;\n" - " this._err = opts.stderr || opts.stdout;\n" - " this._counts = new Map();\n" - " this._times = new Map();\n" - " for (const m of ['log', 'info', 'debug']) this[m] = (...a) => { this._out.write(format(...a) + '\\n'); };\n" - " for (const m of ['error', 'warn', 'trace']) this[m] = (...a) => { this._err.write((m === 'trace' ? 'Trace: ' : '') + format(...a) + '\\n'); };\n" - " this.dir = (obj, o) => { this._out.write(builtins.util().inspect(obj, { customInspect: false, ...o }) + '\\n'); };\n" - " this.assert = (v, ...a) => { if (!v) this.error('Assertion failed' + (a.length ? ': ' + format(...a) : '')); };\n" - " this.count = (label) => { const l = label === undefined ? 'default' : String(label); const n = (this._counts.get(l) || 0) + 1; this._counts.set(l, n); this._out.write(l + ': ' + n + '\\n'); };\n" - " this.countReset = (label) => { this._counts.delete(label === undefined ? 'default' : String(label)); };\n" - " this.time = (label) => { this._times.set(label === undefined ? 'default' : String(label), Date.now()); };\n" - " this.timeEnd = (label) => { const l = label === undefined ? 'default' : String(label); const t = this._times.get(l); if (t !== undefined) { this._times.delete(l); this._out.write(l + ': ' + (Date.now() - t) + 'ms\\n'); } };\n" - " this.group = (...a) => { if (a.length) this.log(...a); };\n" - " this.groupEnd = () => {};\n" - " this.table = (data) => { this.log(data); };\n" - " this.clear = () => {};\n" - " }\n" - " }\n" - " const c = globalThis.console;\n" - " c.Console = Console;\n" - " c.default = c;\n" - " return c;\n" - " });\n" - /* node:timers and timers/promises share the native timer heap and - * immediate queue through the web prelude's handle objects. */ - " builtins.timers = memo(() => {\n" - " const t = {\n" - " setTimeout: globalThis.setTimeout,\n" - " clearTimeout: globalThis.clearTimeout,\n" - " setInterval: globalThis.setInterval,\n" - " clearInterval: globalThis.clearInterval,\n" - " setImmediate: globalThis.setImmediate,\n" - " clearImmediate: globalThis.clearImmediate,\n" - " };\n" - " t.default = t;\n" - " return t;\n" - " });\n" - " builtins['timers/promises'] = memo(() => {\n" - " const resistant = Symbol.for('scriptc.events.resistStopPropagation');\n" - " const checkDelay = (delay) => {\n" - " if (delay !== undefined && typeof delay !== 'number') envArgumentError('delay', 'of type number', delay);\n" - " };\n" - " const checkOptions = (options) => {\n" - " if (options === null || typeof options !== 'object' || Array.isArray(options)) envArgumentError('options', 'of type object', options);\n" - " if (options.signal !== undefined) {\n" - " const signal = options.signal;\n" - " if (signal === null || typeof signal !== 'object' || !('aborted' in signal)) envArgumentError('options.signal', 'an instance of AbortSignal', signal);\n" - " }\n" - " if (options.ref !== undefined) {\n" - " const ref = options.ref;\n" - " if (typeof ref !== 'boolean') envArgumentError('options.ref', 'of type boolean', ref);\n" - " }\n" - " const { signal, ref = true } = options;\n" - " return { signal, ref };\n" - " };\n" - " const abortError = (signal) => {\n" - " const error = new Error('The operation was aborted', { cause: signal.reason });\n" - " error.name = 'AbortError'; error.code = 'ABORT_ERR';\n" - " return error;\n" - " };\n" - " const wait = (immediate, delay, value, options) => {\n" - " let signal, ref;\n" - " try {\n" - " if (!immediate) checkDelay(delay);\n" - " ({ signal, ref } = checkOptions(options));\n" - " } catch (error) { return Promise.reject(error); }\n" - " if (signal && signal.aborted) return Promise.reject(abortError(signal));\n" - " let timer, onCancel;\n" - " const promise = new Promise((resolve, reject) => {\n" - " timer = immediate ? globalThis.setImmediate(resolve, value) : globalThis.setTimeout(resolve, delay, value);\n" - " if (!ref) timer.unref();\n" - " if (signal) {\n" - " onCancel = () => {\n" - " if (!timer._destroyed) {\n" - " if (immediate) globalThis.clearImmediate(timer); else globalThis.clearTimeout(timer);\n" - " reject(abortError(signal));\n" - " }\n" - " };\n" - " signal.addEventListener('abort', onCancel, { __proto__: null, [resistant]: true });\n" - " }\n" - " });\n" - " return onCancel ? promise.finally(() => signal.removeEventListener('abort', onCancel)) : promise;\n" - " };\n" - " function setTimeout(delay, value, options = {}) { return wait(false, delay, value, options); }\n" - " function setImmediate(value, options = {}) { return wait(true, undefined, value, options); }\n" - " async function* setInterval(delay, value, options = {}) {\n" - " checkDelay(delay);\n" - " const { signal, ref } = checkOptions(options);\n" - " if (signal && signal.aborted) throw abortError(signal);\n" - " let timer, onCancel;\n" - " try {\n" - " let notYielded = 0, callback;\n" - " timer = globalThis.setInterval(() => {\n" - " notYielded++;\n" - " if (callback) { callback(); callback = undefined; }\n" - " }, delay);\n" - " if (!ref) timer.unref();\n" - " if (signal) {\n" - " onCancel = () => {\n" - " globalThis.clearInterval(timer);\n" - " if (callback) { callback(Promise.reject(abortError(signal))); callback = undefined; }\n" - " };\n" - " signal.addEventListener('abort', onCancel, { __proto__: null, once: true, [resistant]: true });\n" - " }\n" - " while (!(signal && signal.aborted)) {\n" - " if (notYielded === 0) await new Promise(resolve => callback = resolve);\n" - " for (; notYielded > 0; notYielded--) yield value;\n" - " }\n" - " throw abortError(signal);\n" - " } finally {\n" - " globalThis.clearInterval(timer);\n" - " if (signal) signal.removeEventListener('abort', onCancel);\n" - " }\n" - " }\n" - " const schedulerBrand = Symbol('kScheduler');\n" - " const checkScheduler = (receiver) => {\n" - " if (!receiver[schedulerBrand]) { const error = new TypeError('Value of \"this\" must be of type Scheduler'); error.code = 'ERR_INVALID_THIS'; throw error; }\n" - " };\n" - " class Scheduler {\n" - " constructor() { const error = new TypeError('Illegal constructor'); error.code = 'ERR_ILLEGAL_CONSTRUCTOR'; throw error; }\n" - " yield() { checkScheduler(this); return setImmediate(); }\n" - " wait(delay, options) { checkScheduler(this); return setTimeout(delay, undefined, options); }\n" - " }\n" - " const scheduler = Object.create(Scheduler.prototype); scheduler[schedulerBrand] = true;\n" - " const tp = {\n" - " setTimeout, setImmediate, setInterval, scheduler,\n" - " };\n" - " tp.default = tp;\n" - " return tp;\n" - " });\n" - /* node:zlib — one-shot sync/callback codecs over the zlib bridge - * (zlib/raw/gzip modes; inflate auto-detects for unzip), plus - * BUFFERING stream classes: a Transform that collects its input - * and converts at flush (no incremental output — documented - * divergence). Brotli is not carried; its names exist and throw - * at the call. */ - " builtins.zlib = memo(() => {\n" - " const Buffer = builtins.buffer().Buffer;\n" - " const Transform = builtins.stream().Transform;\n" - " const toU8 = (data) => {\n" - " if (typeof data === 'string') return Buffer.from(data, 'utf8');\n" - " if (data instanceof Uint8Array) return data;\n" - " if (ArrayBuffer.isView(data)) return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n" - " if (data instanceof ArrayBuffer) return new Uint8Array(data);\n" - " const e = new TypeError('The \"buffer\" argument must be of type string or an instance of Buffer, TypedArray, DataView, or ArrayBuffer. Received ' + (data === null ? 'null' : typeof data === 'object' ? 'an instance of ' + ((data.constructor && data.constructor.name) || 'Object') : 'type ' + typeof data));\n" - " e.code = 'ERR_INVALID_ARG_TYPE';\n" - " throw e;\n" - " };\n" - " const codec = (deflating, mode) => (data, options) => {\n" - " const level = options !== undefined && options !== null && options.level !== undefined ? options.level : -1;\n" - " const raw = host.zlib(deflating ? 1 : 0, toU8(data), mode, level);\n" - " return Buffer.from(raw.buffer, raw.byteOffset, raw.length);\n" - " };\n" - " const asyncify = (syncFn) => (data, optionsOrCb, maybeCb) => {\n" - " const cb = typeof optionsOrCb === 'function' ? optionsOrCb : maybeCb;\n" - " const options = typeof optionsOrCb === 'function' ? undefined : optionsOrCb;\n" - " if (typeof cb !== 'function') {\n" - " const e = new TypeError('The \"callback\" argument must be of type function');\n" - " e.code = 'ERR_INVALID_ARG_TYPE';\n" - " throw e;\n" - " }\n" - " let out;\n" - " try { out = syncFn(data, options); }\n" - " catch (err) { queueMicrotask(() => cb(err)); return; }\n" - " queueMicrotask(() => cb(null, out));\n" - " };\n" - " const mkStreamClass = (name, syncFn) => {\n" - " const cls = class extends Transform {\n" - " constructor(options) {\n" - " super({});\n" - " this._zopts = options;\n" - " this._zchunks = [];\n" - " this.bytesWritten = 0;\n" - " }\n" - " _transform(chunk, enc, cb) {\n" - " this._zchunks.push(toU8(chunk));\n" - " this.bytesWritten += chunk.length;\n" - " cb();\n" - " }\n" - " _flush(cb) {\n" - " try {\n" - " cb(null, syncFn(Buffer.concat(this._zchunks), this._zopts));\n" - " } catch (err) {\n" - " cb(err);\n" - " }\n" - " }\n" - " close(cb) { if (typeof cb === 'function') queueMicrotask(cb); }\n" - " reset() { this._zchunks = []; }\n" - " flush(k, cb) { const f = typeof k === 'function' ? k : cb; if (typeof f === 'function') queueMicrotask(f); }\n" - " };\n" - " Object.defineProperty(cls, 'name', { value: name, configurable: true });\n" - " return cls;\n" - " };\n" - " const die = (name) => class { constructor() { throw new Error('zlib.' + name + ' is not available in the scriptc island (brotli/zstd are not linked)'); } };\n" - " const deflateSync = codec(true, 0), inflateSync = codec(false, 0);\n" - " const deflateRawSync = codec(true, 1), inflateRawSync = codec(false, 1);\n" - " const gzipSync = codec(true, 2), gunzipSync = codec(false, 2);\n" - " const unzipSync = codec(false, 3);\n" - " const Deflate = mkStreamClass('Deflate', deflateSync), Inflate = mkStreamClass('Inflate', inflateSync);\n" - " const DeflateRaw = mkStreamClass('DeflateRaw', deflateRawSync), InflateRaw = mkStreamClass('InflateRaw', inflateRawSync);\n" - " const Gzip = mkStreamClass('Gzip', gzipSync), Gunzip = mkStreamClass('Gunzip', gunzipSync);\n" - " const Unzip = mkStreamClass('Unzip', unzipSync);\n" - " const BrotliCompress = die('BrotliCompress'), BrotliDecompress = die('BrotliDecompress');\n" - " const constants = {\n" - " Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6,\n" - " Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, Z_MEM_ERROR: -4, Z_BUF_ERROR: -5, Z_VERSION_ERROR: -6,\n" - " Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1,\n" - " Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0,\n" - " Z_DEFAULT_WINDOWBITS: 15, Z_MIN_WINDOWBITS: 8, Z_MAX_WINDOWBITS: 15,\n" - " Z_MIN_CHUNK: 64, Z_MAX_CHUNK: Infinity, Z_DEFAULT_CHUNK: 16384,\n" - " Z_MIN_MEMLEVEL: 1, Z_MAX_MEMLEVEL: 9, Z_DEFAULT_MEMLEVEL: 8,\n" - " Z_MIN_LEVEL: -1, Z_MAX_LEVEL: 9, Z_DEFAULT_LEVEL: -1,\n" - " ZLIB_VERNUM: 4865,\n" - " BROTLI_OPERATION_PROCESS: 0, BROTLI_OPERATION_FLUSH: 1, BROTLI_OPERATION_FINISH: 2,\n" - " BROTLI_PARAM_MODE: 0, BROTLI_PARAM_QUALITY: 1, BROTLI_PARAM_SIZE_HINT: 3,\n" - " BROTLI_MAX_QUALITY: 11, BROTLI_MIN_QUALITY: 0, BROTLI_DEFAULT_QUALITY: 11,\n" - " };\n" - " const z = {\n" - " deflateSync, inflateSync, deflateRawSync, inflateRawSync, gzipSync, gunzipSync, unzipSync,\n" - " deflate: asyncify(deflateSync), inflate: asyncify(inflateSync),\n" - " deflateRaw: asyncify(deflateRawSync), inflateRaw: asyncify(inflateRawSync),\n" - " gzip: asyncify(gzipSync), gunzip: asyncify(gunzipSync), unzip: asyncify(unzipSync),\n" - " Deflate, Inflate, DeflateRaw, InflateRaw, Gzip, Gunzip, Unzip, BrotliCompress, BrotliDecompress,\n" - " createDeflate: (o) => new Deflate(o), createInflate: (o) => new Inflate(o),\n" - " createDeflateRaw: (o) => new DeflateRaw(o), createInflateRaw: (o) => new InflateRaw(o),\n" - " createGzip: (o) => new Gzip(o), createGunzip: (o) => new Gunzip(o), createUnzip: (o) => new Unzip(o),\n" - " createBrotliCompress: () => new BrotliCompress(), createBrotliDecompress: () => new BrotliDecompress(),\n" - " brotliCompressSync: () => { throw new Error('zlib.brotliCompressSync is not available in the scriptc island'); },\n" - " brotliDecompressSync: () => { throw new Error('zlib.brotliDecompressSync is not available in the scriptc island'); },\n" - " constants,\n" - " };\n" - " z.default = z;\n" - " return z;\n" - " });\n" - /* node:http/node:https — the CLIENT slice over the socket units - * (scr_net_island.c's host functions; registered only when that - * bridge is linked, so bridge-less builds keep the does-not-provide - * refusal). request/get drive real sockets: scr_net + scr_tls + - * scr_http's client parser — node:http semantics (no redirects, no - * decompression, Node's error messages off the net layer). The - * exchange starts LAZILY at first write/end/flushHeaders so - * setHeader-after-construction works (divergence: Node dials at - * construction; same events, later dial). Servers and raw sockets - * are loud fences — node:net/node:tls below load (eval-time requires - * succeed, Node's shape) and fence at the call. */ - " if (host.httpStart) {\n" - " const makeHttpMod = (secure) => {\n" - " const { EventEmitter } = builtins.events();\n" - " const { Buffer } = builtins.buffer();\n" - " const toU8 = (chunk, enc) => {\n" - " if (typeof chunk === 'string') return Buffer.from(chunk, enc || 'utf8');\n" - " if (chunk instanceof Uint8Array) return chunk;\n" - " const e = new TypeError('The \"chunk\" argument must be of type string or an instance of Buffer or Uint8Array');\n" - " e.code = 'ERR_INVALID_ARG_TYPE';\n" - " throw e;\n" - " };\n" - /* Node's IncomingMessage header fold: set-cookie collects an array, - * repeats of everything else join ', ' (approximation of Node's - * singleton-discard list — divergence noted in the lane report). */ - " const foldHeaders = (raw) => {\n" - " const h = {};\n" - " for (let i = 0; i + 1 < raw.length; i += 2) {\n" - " const k = raw[i].toLowerCase();\n" - " const v = raw[i + 1];\n" - " if (k === 'set-cookie') { if (h[k] === undefined) h[k] = []; h[k].push(v); }\n" - " else if (h[k] === undefined) h[k] = v;\n" - " else h[k] += ', ' + v;\n" - " }\n" - " return h;\n" - " };\n" - " class Agent { constructor(options) { this.options = options || {}; } destroy() {} }\n" - " class IncomingMessage extends EventEmitter {\n" - " constructor(req, status, statusText, raw) {\n" - " super();\n" - " this.req = req;\n" - " this.statusCode = status;\n" - " this.statusMessage = statusText;\n" - " this.rawHeaders = raw;\n" - " this.headers = foldHeaders(raw);\n" - " this.httpVersion = '1.1';\n" - " this.httpVersionMajor = 1;\n" - " this.httpVersionMinor = 1;\n" - " this.complete = false;\n" - " this.aborted = false;\n" - " this._enc = null;\n" - " }\n" - " setEncoding(enc) { this._enc = enc; return this; }\n" - " resume() { return this; }\n" - " pause() { return this; }\n" - " destroy() { this.req.destroy(); return this; }\n" - " }\n" - " class ClientRequest extends EventEmitter {\n" - " constructor(options, cb) {\n" - " super();\n" - " if (cb) this.once('response', cb);\n" - " this._o = options;\n" - " this._headers = Object.create(null);\n" - " this._id = 0;\n" - " this._started = false;\n" - " this._timeoutMs = options.timeout !== undefined ? Number(options.timeout) : 0;\n" - " this.destroyed = false;\n" - " this.writableEnded = false;\n" - " this.res = null;\n" - " const h = options.headers || {};\n" - " for (const k of Object.keys(h)) { if (h[k] !== undefined) this.setHeader(k, h[k]); }\n" - " }\n" - " setHeader(name, value) { this._headers[String(name).toLowerCase()] = { name: String(name), value }; return this; }\n" - " getHeader(name) { const e = this._headers[String(name).toLowerCase()]; return e === undefined ? undefined : e.value; }\n" - " removeHeader(name) { delete this._headers[String(name).toLowerCase()]; }\n" - " setTimeout(ms, cb) {\n" - " if (cb) this.once('timeout', cb);\n" - " this._timeoutMs = Number(ms) || 0;\n" - " if (this._started && this._id) host.httpSetTimeout(this._id, this._timeoutMs);\n" - " return this;\n" - " }\n" - " _start() {\n" - " if (this._started || this.destroyed) return;\n" - " this._started = true;\n" - " const o = this._o;\n" - " const self = this;\n" - " const flat = [];\n" - " for (const k of Object.keys(this._headers)) {\n" - " const e = this._headers[k];\n" - " if (Array.isArray(e.value)) { for (const v of e.value) flat.push(e.name, String(v)); }\n" - " else flat.push(e.name, String(e.value));\n" - " }\n" - " let hostn = o.hostname !== undefined && o.hostname !== null && o.hostname !== '' ? o.hostname : (o.host || 'localhost');\n" - " hostn = String(hostn);\n" - " let port = o.port !== undefined && o.port !== null && o.port !== '' ? Number(o.port) : (secure ? 443 : 80);\n" - " if ((o.hostname === undefined || o.hostname === null || o.hostname === '') && hostn.lastIndexOf(':') > hostn.lastIndexOf(']')) {\n" - " const i = hostn.lastIndexOf(':');\n" - " if (o.port === undefined || o.port === null || o.port === '') port = Number(hostn.slice(i + 1)) || port;\n" - " hostn = hostn.slice(0, i);\n" - " }\n" - " if (hostn.startsWith('[') && hostn.endsWith(']')) hostn = hostn.slice(1, -1);\n" - " this._id = host.httpStart(secure, hostn, port, String(o.path || '/'), String(o.method || 'GET').toUpperCase(), this._timeoutMs, flat, {\n" - " onResponse(status, statusText, raw) {\n" - " const res = new IncomingMessage(self, status, statusText, raw);\n" - " self.res = res;\n" - " self.emit('response', res);\n" - " },\n" - " onData(u8) {\n" - " const res = self.res;\n" - " if (res === null) return;\n" - " const buf = Buffer.from(u8.buffer, u8.byteOffset, u8.length);\n" - " res.emit('data', res._enc ? buf.toString(res._enc) : buf);\n" - " },\n" - " onEnd() { const res = self.res; if (res !== null) { res.complete = true; res.emit('end'); } },\n" - " onError(msg) {\n" - " const e = new Error(msg);\n" - " const m = /^(connect|getaddrinfo) (E[A-Z]+)/.exec(msg);\n" - " if (m) { e.code = m[2]; e.syscall = m[1]; }\n" - " else if (msg === 'socket hang up') e.code = 'ECONNRESET';\n" - " self.emit('error', e);\n" - " },\n" - " onResError(msg) {\n" - " const res = self.res;\n" - " if (res !== null) { res.aborted = true; res.emit('error', new Error(msg)); }\n" - " },\n" - " onTimeout() { self.emit('timeout'); },\n" - " onClose() { self.emit('close'); if (self.res !== null) self.res.emit('close'); },\n" - " });\n" - " }\n" - " flushHeaders() { this._start(); }\n" - " write(chunk, enc, cb) {\n" - " if (typeof enc === 'function') { cb = enc; enc = undefined; }\n" - " this._start();\n" - " if (this._id && !this.writableEnded) host.httpWrite(this._id, toU8(chunk, enc));\n" - " if (cb) queueMicrotask(cb);\n" - " return true;\n" - " }\n" - " end(chunk, enc, cb) {\n" - " if (typeof chunk === 'function') { cb = chunk; chunk = undefined; enc = undefined; }\n" - " else if (typeof enc === 'function') { cb = enc; enc = undefined; }\n" - " this._start();\n" - " if (this._id && !this.writableEnded) {\n" - " this.writableEnded = true;\n" - " host.httpEnd(this._id, chunk === undefined || chunk === null ? undefined : toU8(chunk, enc));\n" - " }\n" - " if (cb) queueMicrotask(cb);\n" - " return this;\n" - " }\n" - /* Node's destroy() mid-flight lets the socket teardown speak: 'socket - * hang up' then 'close' (the natural premature path — oracle-pinned); - * a request destroyed before it ever started just closes. */ - " destroy(_err) {\n" - " if (this.destroyed) return this;\n" - " this.destroyed = true;\n" - " if (this._started && this._id) { host.httpDestroy(this._id); }\n" - " else { const self = this; queueMicrotask(() => self.emit('close')); }\n" - " return this;\n" - " }\n" - " abort() { this.destroy(); }\n" - " }\n" - /* request(url|options[, options][, cb]) — Node's overloads: URL - * fields merge under an options bag's explicit keys. */ - " const normalize = (input, options, cb) => {\n" - " if (typeof options === 'function') { cb = options; options = undefined; }\n" - " let o = {};\n" - " if (typeof input === 'string' || (input !== null && typeof input === 'object' && typeof input.href === 'string')) {\n" - " const u = typeof input === 'string' ? new globalThis.URL(input) : input;\n" - " if (secure && u.protocol === 'http:') throw new TypeError('Protocol \"http:\" not supported. Expected \"https:\"');\n" - " if (!secure && u.protocol === 'https:') throw new TypeError('Protocol \"https:\" not supported. Expected \"http:\"');\n" - " o.hostname = u.hostname;\n" - " if (u.port) o.port = u.port;\n" - " o.path = (u.pathname || '/') + (u.search || '');\n" - " } else if (input !== null && typeof input === 'object') {\n" - " o = Object.assign(o, input);\n" - " }\n" - " if (options !== undefined && options !== null) o = Object.assign(o, options);\n" - " return [o, cb];\n" - " };\n" - " const request = (input, options, cb) => {\n" - " const [o, cb2] = normalize(input, options, cb);\n" - " return new ClientRequest(o, cb2);\n" - " };\n" - " const get = (input, options, cb) => { const r = request(input, options, cb); r.end(); return r; };\n" - " const die = (what) => () => {\n" - " throw new Error(\"node:http\" + (secure ? 's' : '') + \" '\" + what + \"' is not supported in the scriptc island yet (the client — request/get — is)\");\n" - " };\n" - " const STATUS_CODES = { 100: 'Continue', 101: 'Switching Protocols', 102: 'Processing', 103: 'Early Hints', 200: 'OK', 201: 'Created', 202: 'Accepted', 203: 'Non-Authoritative Information', 204: 'No Content', 205: 'Reset Content', 206: 'Partial Content', 207: 'Multi-Status', 208: 'Already Reported', 226: 'IM Used', 300: 'Multiple Choices', 301: 'Moved Permanently', 302: 'Found', 303: 'See Other', 304: 'Not Modified', 305: 'Use Proxy', 307: 'Temporary Redirect', 308: 'Permanent Redirect', 400: 'Bad Request', 401: 'Unauthorized', 402: 'Payment Required', 403: 'Forbidden', 404: 'Not Found', 405: 'Method Not Allowed', 406: 'Not Acceptable', 407: 'Proxy Authentication Required', 408: 'Request Timeout', 409: 'Conflict', 410: 'Gone', 411: 'Length Required', 412: 'Precondition Failed', 413: 'Payload Too Large', 414: 'URI Too Long', 415: 'Unsupported Media Type', 416: 'Range Not Satisfiable', 417: 'Expectation Failed', 418: \"I'm a Teapot\", 421: 'Misdirected Request', 422: 'Unprocessable Entity', 423: 'Locked', 424: 'Failed Dependency', 425: 'Too Early', 426: 'Upgrade Required', 428: 'Precondition Required', 429: 'Too Many Requests', 431: 'Request Header Fields Too Large', 451: 'Unavailable For Legal Reasons', 500: 'Internal Server Error', 501: 'Not Implemented', 502: 'Bad Gateway', 503: 'Service Unavailable', 504: 'Gateway Timeout', 505: 'HTTP Version Not Supported', 506: 'Variant Also Negotiates', 507: 'Insufficient Storage', 508: 'Loop Detected', 509: 'Bandwidth Limit Exceeded', 510: 'Not Extended', 511: 'Network Authentication Required' };\n" - " const METHODS = ['ACL', 'BIND', 'CHECKOUT', 'CONNECT', 'COPY', 'DELETE', 'GET', 'HEAD', 'LINK', 'LOCK', 'M-SEARCH', 'MERGE', 'MKACTIVITY', 'MKCALENDAR', 'MKCOL', 'MOVE', 'NOTIFY', 'OPTIONS', 'PATCH', 'POST', 'PROPFIND', 'PROPPATCH', 'PURGE', 'PUT', 'QUERY', 'REBIND', 'REPORT', 'SEARCH', 'SOURCE', 'SUBSCRIBE', 'TRACE', 'UNBIND', 'UNLINK', 'UNLOCK', 'UNSUBSCRIBE'];\n" - " const mod = {\n" - " request, get, Agent, globalAgent: new Agent({ keepAlive: true }),\n" - " ClientRequest, IncomingMessage, STATUS_CODES, METHODS,\n" - " createServer: die('createServer'), Server: class Server { constructor() { die('new Server')(); } },\n" - " };\n" - " mod.default = mod;\n" - " return mod;\n" - " };\n" - " builtins.http = memo(() => makeHttpMod(false));\n" - " builtins.https = memo(() => makeHttpMod(true));\n" - /* node:net/node:tls — enough to LOAD (eval-time requires succeed, - * Node's shape); the socket surfaces fence loudly at the call. isIP - * and friends are real (address validation is common eval-adjacent - * work). */ - " builtins.net = memo(() => {\n" - " const isIPv4 = (s) => {\n" - " if (typeof s !== 'string') return false;\n" - " const parts = s.split('.');\n" - " if (parts.length !== 4) return false;\n" - " for (const p of parts) {\n" - " if (!/^\\d{1,3}$/.test(p)) return false;\n" - " if (p.length > 1 && p[0] === '0') return false;\n" - " if (Number(p) > 255) return false;\n" - " }\n" - " return true;\n" - " };\n" - " const isIPv6 = (s) => {\n" - " if (typeof s !== 'string' || s.indexOf(':') < 0) return false;\n" - " let body = s;\n" - " let v4tail = false;\n" - " const lastColon = s.lastIndexOf(':');\n" - " if (s.indexOf('.') >= 0) {\n" - " if (!isIPv4(s.slice(lastColon + 1))) return false;\n" - " v4tail = true;\n" - " body = s.slice(0, lastColon + 1) + '0:0';\n" - " }\n" - " const dbl = body.indexOf('::');\n" - " if (dbl >= 0 && body.indexOf('::', dbl + 1) >= 0) return false;\n" - " const groups = body.split(':');\n" - " if (dbl < 0 && groups.length !== 8) return false;\n" - " if (dbl >= 0 && groups.length > 8) return false;\n" - " for (const g of groups) {\n" - " if (g === '') continue;\n" - " if (!/^[0-9a-fA-F]{1,4}$/.test(g)) return false;\n" - " }\n" - " return true;\n" - " };\n" - " const isIP = (s) => (isIPv4(s) ? 4 : isIPv6(s) ? 6 : 0);\n" - " const die = (what) => () => {\n" - " throw new Error(\"node:net '\" + what + \"' is not supported in the scriptc island yet (the http/https client is)\");\n" - " };\n" - " const mod = {\n" - " isIP, isIPv4, isIPv6,\n" - " connect: die('connect'), createConnection: die('createConnection'), createServer: die('createServer'),\n" - " Socket: class Socket { constructor() { die('new Socket')(); } },\n" - " Server: class Server { constructor() { die('new Server')(); } },\n" - " };\n" - " mod.default = mod;\n" - " return mod;\n" - " });\n" - " builtins.tls = memo(() => {\n" - " const die = (what) => () => {\n" - " throw new Error(\"node:tls '\" + what + \"' is not supported in the scriptc island yet (the https client is)\");\n" - " };\n" - " const mod = {\n" - " connect: die('connect'), createServer: die('createServer'), createSecureContext: die('createSecureContext'),\n" - " TLSSocket: class TLSSocket { constructor() { die('new TLSSocket')(); } },\n" - " rootCertificates: [],\n" - " };\n" - " mod.default = mod;\n" - " return mod;\n" - " });\n" - " }\n" - " builtins.process = memo(() => {\n" - " const argv = host.argv();\n" - " const stream = (fd) => {\n" - " const s = { fd, write: (str) => host.write(fd, String(str)) };\n" - " if (host.isatty(fd)) {\n" - " s.isTTY = true;\n" - " const c = host.columns(fd);\n" - " if (c > 0) s.columns = c;\n" - " }\n" - /* listener surface, accepted-and-inert (the epipebomb shape: - * stream.on('error', ...) + stream.listeners('error') at module - * evaluation) — island stdio writes are synchronous host writes, so - * these events never fire; registration must still succeed. */ - " s.on = () => s;\n" - " s.once = () => s;\n" - " s.addListener = () => s;\n" - " s.off = () => s;\n" - " s.removeListener = () => s;\n" - " s.removeAllListeners = () => s;\n" - " s.listeners = () => [];\n" - " s.listenerCount = () => 0;\n" - " s.emit = () => false;\n" - " return s;\n" - " };\n" - " const envPrototype = Object.create(Object.prototype);\n" - " Object.defineProperty(envPrototype, 'constructor', { value: Object, writable: true, configurable: true });\n" - " const envTarget = Object.create(envPrototype);\n" - " const env = new Proxy(envTarget, {\n" - " get: (target, key, receiver) => {\n" - " if (typeof key === 'symbol') return Reflect.get(target, key, receiver);\n" - " const value = host.envGet(key);\n" - " return value === undefined ? Reflect.get(target, key, receiver) : value;\n" - " },\n" - " set: (_, key, value) => {\n" - " if (typeof key === 'symbol' || typeof value === 'symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n" - " return host.envSet(key, String(value));\n" - " },\n" - " deleteProperty: (_, key) => {\n" - " if (typeof key === 'symbol') return true;\n" - " return host.envDelete(key);\n" - " },\n" - " has: (target, key) => typeof key !== 'symbol' && host.envGet(key) !== undefined || Reflect.has(target, key),\n" - " ownKeys: () => Reflect.ownKeys(host.env()),\n" - " getOwnPropertyDescriptor: (_, key) => {\n" - " if (typeof key === 'symbol') return undefined;\n" - " const value = host.envGet(key);\n" - " return value === undefined ? undefined : { value, writable: true, enumerable: true, configurable: true };\n" - " },\n" - " defineProperty: (_, key, descriptor) => {\n" - " if (!descriptor.configurable || !descriptor.writable || !descriptor.enumerable || !('value' in descriptor) || 'get' in descriptor || 'set' in descriptor) {\n" - " const error = new TypeError(\"'process.env' only accepts a configurable, writable, and enumerable data descriptor\");\n" - " error.code = 'ERR_INVALID_OBJECT_DEFINE_PROPERTY';\n" - " throw error;\n" - " }\n" - " if (typeof key === 'symbol' || typeof descriptor.value === 'symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n" - " return host.envSet(key, String(descriptor.value));\n" - " },\n" - " preventExtensions: () => { throw new TypeError('Cannot prevent extensions'); },\n" - " });\n" - " const loadEnvFile = (path) => {\n" - " if (path instanceof globalThis.URL) path = host.urlToPath(path.href);\n" - " const bytes = path instanceof Uint8Array;\n" - " if (path != null && typeof path !== 'string' && !bytes) envArgumentError('path', 'of type string or an instance of Buffer or URL', path);\n" - " return host.loadEnvFile(path, bytes, bytes && builtins.buffer().Buffer.isBuffer(path));\n" - " };\n" - " const p = {\n" - " argv,\n" - " env, loadEnvFile,\n" - " chdir: (directory) => {\n" - " if (typeof directory !== 'string') envArgumentError('directory', 'of type string', directory);\n" - " return host.chdir(directory);\n" - " },\n" - " platform: host.platform(),\n" - " execPath: argv[0],\n" - " execArgv: [],\n" - /* the compat target's versions, same answers as the static world's - * process.versions (scr_lib.c) */ - " version: 'v' + host.versions()[0],\n" - " versions: { node: host.versions()[0], openssl: host.versions()[1] },\n" - " pid: host.pid(),\n" - " ppid: 0,\n" - " title: 'scriptc',\n" - " argv0: 'scriptc',\n" - " release: { name: 'node' },\n" - " config: { variables: {} },\n" - " allowedNodeEnvironmentFlags: new Set(),\n" - " exitCode: undefined,\n" - " stdout: stream(1),\n" - " stderr: stream(2),\n" - /* stdin: a REAL Readable over a whole-input host read (the formatter idiom's - * get-stdin async-iterates it when no file arguments arrive). The - * host read happens lazily on the first pull — a program that only - * probes isTTY or registers listeners never blocks on a silent pipe, - * and get-stdin's isTTY early-return keeps interactive terminals - * away from the read entirely. One chunk, then EOF: the island's - * stdio is whole-value like its fs (no partial-read backpressure to - * report). setRawMode stays accepted-and-inert — there is no raw - * TTY bridge. */ - " stdin: (() => {\n" - " const { Readable } = builtins.stream();\n" - " const Buffer = builtins.buffer().Buffer;\n" - " let pulled = false;\n" - " const s = new Readable({\n" - " read() {\n" - " if (pulled) return;\n" - " pulled = true;\n" - " const data = host.readStdin();\n" - " if (data.byteLength > 0) this.push(Buffer.from(data));\n" - " this.push(null);\n" - " },\n" - " });\n" - " s.fd = 0;\n" - /* Node's process.stdin is a tty.ReadStream only when fd 0 IS a tty - * — pipes get a socket with NO setRawMode, and packages probe with - * `process.stdin.setRawMode?.()`. Mirror the shape, not a stub. */ - " if (host.isatty(0)) { s.isTTY = true; s.setRawMode = () => s; }\n" - " s.unref = () => s;\n" - " s.ref = () => s;\n" - " return s;\n" - " })(),\n" - " cwd: () => host.cwd(),\n" - " exit: (code) => {\n" - " host.exit(code === undefined || code === null ? Number(p.exitCode ?? 0) : Number(code));\n" - " },\n" - /* Node's nextTick rides the island's microtask queue — ordering - * against promise jobs is the engine's, not Node's dedicated - * nextTick queue (divergence: documented in the shim report). */ - " nextTick: (fn, ...args) => { queueMicrotask(() => fn(...args)); },\n" - " hrtime: Object.assign(\n" - " (prev) => {\n" - " const now = host.hrtime();\n" - " if (prev === undefined) return now;\n" - " let sec = now[0] - prev[0];\n" - " let ns = now[1] - prev[1];\n" - " if (ns < 0) { sec -= 1; ns += 1e9; }\n" - " return [sec, ns];\n" - " },\n" - " { bigint: () => { const t = host.hrtime(); return BigInt(t[0]) * 1000000000n + BigInt(t[1]); } },\n" - " ),\n" - " uptime: () => host.hrtime()[0],\n" - /* umask(): the read form only (Node's no-arg getter — make-dir and - * friends call it at module evaluation for their mode defaults); the - * setter form is a loud fence, not a silent lie. */ - " umask: (mask) => {\n" - " if (mask !== undefined) throw new Error('process.umask(mask) is not supported in the scriptc island (the read-only form works)');\n" - " return host.umask();\n" - " },\n" - " memoryUsage: Object.assign(() => ({ rss: 0, heapTotal: 0, heapUsed: 0, external: 0, arrayBuffers: 0 }), { rss: () => 0 }),\n" - " emitWarning: (warning, type) => {\n" - " const name = typeof type === 'string' ? type : 'Warning';\n" - " const msg = warning instanceof Error ? warning.message : String(warning);\n" - " host.write(2, '(node:' + host.pid() + ') ' + name + ': ' + msg + '\\n');\n" - " },\n" - " on: () => p,\n" - " once: () => p,\n" - " off: () => p,\n" - " removeListener: () => p,\n" - " emit: () => false,\n" - " };\n" - /* process.exitCode is Node's IMPLICIT exit status: a program that - * sets it and returns normally exits with it. The setter mirrors the - * value into the C side (isl_exit_code), which the emitted main - * returns after the loop drains — delete p.exitCode first so the - * accessor pair replaces the literal's plain `undefined` slot. */ - " delete p.exitCode;\n" - " let exitCodeSlot;\n" - " Object.defineProperty(p, 'exitCode', {\n" - " enumerable: true,\n" - " get: () => exitCodeSlot,\n" - " set: (v) => {\n" - " exitCodeSlot = v;\n" - " const n = v === undefined || v === null ? 0 : Number(v);\n" - " host.setExitCode(Number.isFinite(n) ? n : 0);\n" - " },\n" - " });\n" - " p.default = p;\n" - " return p;\n" - " });\n" - " globalThis.process = builtins.process();\n" - /* Node's Buffer global (and `global` itself) — embedded CJS - * reaches both without requiring anything. */ - " globalThis.Buffer = builtins.buffer().Buffer;\n" - /* The global console upgraded to Node's util.format semantics for - * npm builds (the web prelude's String() console stays for - * non-npm islands). */ - " {\n" - " const fmt = (...a) => builtins.util().formatWithOptions({}, ...a);\n" - " const to = (fd, prefix) => (...a) => { host.write(fd, (prefix || '') + fmt(...a) + '\\n'); };\n" - " const c = globalThis.console;\n" - " c.log = to(1);\n" - " c.info = to(1);\n" - " c.debug = to(1);\n" - " c.warn = to(2);\n" - " c.error = to(2);\n" - " c.trace = to(2, 'Trace: ');\n" - " }\n" - " if (globalThis.global === undefined) globalThis.global = globalThis;\n" - " globalThis.__scr_require = requireKey;\n" - " globalThis.__scr_import_meta_resolve = (from, raw) => {\n" - " const spec = String(raw);\n" - " const bare = spec.startsWith('node:') ? spec.slice(5) : spec;\n" - " if (builtinModules.includes(bare) && (spec.startsWith('node:') || bare !== 'test')) return 'node:' + bare;\n" - " const filePath = (s) => s.startsWith('/') || /^[A-Za-z]:[\\\\/]/.test(s) || s.startsWith('\\\\\\\\');\n" - " const base = filePath(from) ? host.urlFromPath(from) : from;\n" - " if (/^[A-Za-z][A-Za-z0-9+.-]*:/.test(spec) || spec.startsWith('./') || spec.startsWith('../') || spec.startsWith('/')) {\n" - " return new URL(spec, base).href;\n" - " }\n" - " const to = host.resolve(from, spec, true);\n" - " if (to === undefined) {\n" - " const err = new Error(\"Cannot find package '\" + spec + \"' imported from \" + from);\n" - " err.code = 'ERR_MODULE_NOT_FOUND';\n" - " throw err;\n" - " }\n" - " return filePath(to) ? host.urlFromPath(to) : to;\n" - " };\n" - " return (key, name) => {\n" - " const exports = requireKey(key);\n" - " if (name === 'default') return exports;\n" - " if (name === '*') {\n" - " const ns = { default: exports };\n" - " for (const k in exports) {\n" - " if (Object.prototype.hasOwnProperty.call(exports, k)) ns[k] = exports[k];\n" - " }\n" - " return ns;\n" - " }\n" - " return exports[name];\n" - " };\n" - "}\n"; - -/* Boots the module system: evaluates the bootstrap with the host bridge - * and pins the CJS import helper. Called from isl_init when embedded - * tables are registered — before any user code can import. */ -/* Defined with the URL machinery below; embedded loaders construct URLs - * (`new URL("x.wasm", import.meta.url)`) without any URL ever marshaling. */ -static void isl_install_url_class(void); - -static void isl_modules_boot(void) { - isl_install_url_class(); - JSValue fn = JS_Eval(isl_ctx, isl_modules_bootstrap, sizeof isl_modules_bootstrap - 1, - "", JS_EVAL_TYPE_GLOBAL); - if (JS_IsException(fn)) { - fprintf(stderr, "scriptc: island module bootstrap failed to evaluate\n"); - abort(); - } - JSValue host = JS_NewObject(isl_ctx); - JS_SetPropertyStr(isl_ctx, host, "typeProbe", JS_NewCFunction(isl_ctx, isl_host_type_probe, "typeProbe", 2)); - /* JS_SetPropertyStr consumes the function values. */ - JS_SetPropertyStr(isl_ctx, host, "source", JS_NewCFunction(isl_ctx, isl_host_source, "source", 1)); - JS_SetPropertyStr(isl_ctx, host, "resolve", JS_NewCFunction(isl_ctx, isl_host_resolve, "resolve", 2)); - JS_SetPropertyStr(isl_ctx, host, "argv", JS_NewCFunction(isl_ctx, isl_host_argv, "argv", 0)); - JS_SetPropertyStr(isl_ctx, host, "env", JS_NewCFunction(isl_ctx, isl_host_env, "env", 0)); - JS_SetPropertyStr(isl_ctx, host, "chdir", JS_NewCFunction(isl_ctx, isl_host_chdir, "chdir", 1)); - JS_SetPropertyStr(isl_ctx, host, "envGet", JS_NewCFunction(isl_ctx, isl_host_env_get, "envGet", 1)); - JS_SetPropertyStr(isl_ctx, host, "envSet", JS_NewCFunction(isl_ctx, isl_host_env_set, "envSet", 2)); - JS_SetPropertyStr(isl_ctx, host, "envDelete", JS_NewCFunction(isl_ctx, isl_host_env_delete, "envDelete", 1)); - JS_SetPropertyStr(isl_ctx, host, "parseEnv", JS_NewCFunction(isl_ctx, isl_host_parse_env, "parseEnv", 1)); - JS_SetPropertyStr(isl_ctx, host, "systemErrorEntries", JS_NewCFunction(isl_ctx, isl_host_system_error_entries, "systemErrorEntries", 0)); - JS_SetPropertyStr(isl_ctx, host, "systemErrorInfo", JS_NewCFunction(isl_ctx, isl_host_system_error_info, "systemErrorInfo", 2)); - JS_SetPropertyStr(isl_ctx, host, "transcode", JS_NewCFunction(isl_ctx, isl_host_transcode, "transcode", 3)); - JS_SetPropertyStr(isl_ctx, host, "loadEnvFile", JS_NewCFunction(isl_ctx, isl_host_load_env_file, "loadEnvFile", 2)); - JS_SetPropertyStr(isl_ctx, host, "write", JS_NewCFunction(isl_ctx, isl_host_write, "write", 2)); - JS_SetPropertyStr(isl_ctx, host, "readStdin", - JS_NewCFunction(isl_ctx, isl_host_read_stdin, "readStdin", 0)); - JS_SetPropertyStr(isl_ctx, host, "exit", JS_NewCFunction(isl_ctx, isl_host_exit, "exit", 1)); - JS_SetPropertyStr(isl_ctx, host, "setExitCode", - JS_NewCFunction(isl_ctx, isl_host_set_exit_code, "setExitCode", 1)); - JS_SetPropertyStr(isl_ctx, host, "isatty", JS_NewCFunction(isl_ctx, isl_host_isatty, "isatty", 1)); - JS_SetPropertyStr(isl_ctx, host, "columns", JS_NewCFunction(isl_ctx, isl_host_columns, "columns", 1)); - JS_SetPropertyStr(isl_ctx, host, "cwd", JS_NewCFunction(isl_ctx, isl_host_cwd, "cwd", 0)); - JS_SetPropertyStr(isl_ctx, host, "platform", JS_NewCFunction(isl_ctx, isl_host_platform, "platform", 0)); - JS_SetPropertyStr(isl_ctx, host, "homedir", JS_NewCFunction(isl_ctx, isl_host_homedir, "homedir", 0)); - JS_SetPropertyStr(isl_ctx, host, "tmpdir", JS_NewCFunction(isl_ctx, isl_host_tmpdir, "tmpdir", 0)); - JS_SetPropertyStr(isl_ctx, host, "arch", JS_NewCFunction(isl_ctx, isl_host_arch, "arch", 0)); - JS_SetPropertyStr(isl_ctx, host, "hostname", JS_NewCFunction(isl_ctx, isl_host_hostname, "hostname", 0)); - JS_SetPropertyStr(isl_ctx, host, "pid", JS_NewCFunction(isl_ctx, isl_host_pid, "pid", 0)); - JS_SetPropertyStr(isl_ctx, host, "promiseState", JS_NewCFunction(isl_ctx, isl_host_promise_state, "promiseState", 1)); - JS_SetPropertyStr(isl_ctx, host, "digest", JS_NewCFunction(isl_ctx, isl_host_digest, "digest", 2)); - JS_SetPropertyStr(isl_ctx, host, "hmac", JS_NewCFunction(isl_ctx, isl_host_hmac, "hmac", 3)); - JS_SetPropertyStr(isl_ctx, host, "scrypt", JS_NewCFunction(isl_ctx, isl_host_scrypt, "scrypt", 7)); - JS_SetPropertyStr(isl_ctx, host, "fs", JS_NewCFunction(isl_ctx, isl_host_fs, "fs", 4)); - JS_SetPropertyStr(isl_ctx, host, "fsConstants", JS_NewCFunction(isl_ctx, isl_host_fs_constants, "fsConstants", 0)); - JS_SetPropertyStr(isl_ctx, host, "path", JS_NewCFunction(isl_ctx, isl_host_path, "path", 4)); - JS_SetPropertyStr(isl_ctx, host, "urlToPath", JS_NewCFunction(isl_ctx, isl_host_url_to_path, "urlToPath", 2)); - JS_SetPropertyStr(isl_ctx, host, "urlToPathBuffer", JS_NewCFunction(isl_ctx, isl_host_url_to_path_buffer, "urlToPathBuffer", 2)); - JS_SetPropertyStr(isl_ctx, host, "urlFromPath", JS_NewCFunction(isl_ctx, isl_host_url_from_path, "urlFromPath", 2)); - JS_SetPropertyStr(isl_ctx, host, "hrtime", JS_NewCFunction(isl_ctx, isl_host_hrtime, "hrtime", 0)); - JS_SetPropertyStr(isl_ctx, host, "versions", JS_NewCFunction(isl_ctx, isl_host_versions, "versions", 0)); - JS_SetPropertyStr(isl_ctx, host, "ids", JS_NewCFunction(isl_ctx, isl_host_ids, "ids", 0)); - JS_SetPropertyStr(isl_ctx, host, "signals", JS_NewCFunction(isl_ctx, isl_host_signals, "signals", 0)); - JS_SetPropertyStr(isl_ctx, host, "umask", JS_NewCFunction(isl_ctx, isl_host_umask, "umask", 0)); - JS_SetPropertyStr(isl_ctx, host, "zlib", JS_NewCFunction(isl_ctx, isl_host_zlib, "zlib", 4)); - /* The net bridge's host functions (scr_net_island.c, linked only when - * the socket units are): httpStart/httpWrite/httpEnd/httpDestroy/ - * httpSetTimeout. The bootstrap's http/https shims register exactly - * when host.httpStart exists — without the bridge the builtins table - * keeps the "does not provide" refusal. */ - if (isl_netmod_attach) isl_netmod_attach(isl_ctx, &host); - isl_cjs_import = JS_Call(isl_ctx, fn, JS_UNDEFINED, 1, &host); - JS_FreeValue(isl_ctx, host); - JS_FreeValue(isl_ctx, fn); - if (JS_IsException(isl_cjs_import)) { - fprintf(stderr, "scriptc: island module bootstrap failed to run\n"); - abort(); - } - isl_booted = true; -} - -static void isl_ensure_node_globals(void) { - if (!isl_booted) isl_modules_boot(); -} - -static void isl_install_module_loader(void) { - JS_SetModuleLoaderFunc(isl_rt, isl_module_normalize, isl_module_load, NULL); - if (isl_mods) isl_modules_boot(); -} - -static void isl_free_boot(void) { - if (!isl_booted) return; - JS_FreeValue(isl_ctx, isl_cjs_import); - isl_booted = false; -} - -/* The import boundary (libCall island.import). Borrows all args; +1 out. */ -ScrJsval *scr_jsval_import(const ScrStr *key, const ScrStr *name, const ScrStr *specifier) { - isl_entry(); - const ScrIslandModule *m = isl_mod_find(key->data); - if (!m || !isl_booted) { - char buf[512]; - int n = snprintf(buf, sizeof buf, "module '%s' is not embedded", key->data); - scr_throw_error_msg(SCR_ERR_ERROR, buf, (size_t)n); - return NULL; - } - if (m->format != 0) { - /* CJS/JSON entry: through the require shim — named exports come off - * module.exports directly (like Node's lexer-driven interop, but by - * property access), default IS module.exports. */ - JSValue args[2] = {JS_NewStringLen(isl_ctx, key->data, key->len), - JS_NewStringLen(isl_ctx, name->data, name->len)}; - JSValue r = JS_Call(isl_ctx, isl_cjs_import, JS_UNDEFINED, 2, args); - JS_FreeValue(isl_ctx, args[0]); - JS_FreeValue(isl_ctx, args[1]); - if (JS_IsException(r)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(r); - } - /* ESM entry: the engine loads the graph through the module loader; the - * promise resolves with the namespace. Commander-class packages have no - * top-level await, so draining the job queue settles it synchronously. */ - JSValue promise = JS_LoadModule(isl_ctx, ISL_IMPORT_BASE, key->data); - if (JS_IsException(promise)) { - isl_bridge_exception(); - return NULL; - } - JSContext *jctx; - while (JS_ExecutePendingJob(isl_rt, &jctx) > 0) { - } - JSPromiseStateEnum state = JS_PromiseState(isl_ctx, promise); - if (state == JS_PROMISE_REJECTED) { - JSValue err = JS_PromiseResult(isl_ctx, promise); - JS_FreeValue(isl_ctx, promise); - JS_Throw(isl_ctx, err); /* consumed */ - isl_bridge_exception(); - return NULL; - } - if (state != JS_PROMISE_FULFILLED) { - JS_FreeValue(isl_ctx, promise); - char buf[512]; - int n = snprintf(buf, sizeof buf, - "module '%s' did not finish evaluating " - "(top-level await is not supported in embedded packages)", - key->data); - scr_throw_error_msg(SCR_ERR_ERROR, buf, (size_t)n); - return NULL; - } - JSValue ns = JS_PromiseResult(isl_ctx, promise); - JS_FreeValue(isl_ctx, promise); - if (name->len == 1 && name->data[0] == '*') { - return isl_cell_new(ns); - } - /* Node validates named imports at LINK time: a name the module's - * namespace does not provide is a SyntaxError naming the specifier as - * written, and nothing runs. The namespace object holds exactly the - * module's export names (star re-exports included), so a presence - * check here IS Node's check — thrown after the graph evaluated - * (Node's link phase precedes evaluation; a package with top-level - * output would have printed first — the documented approximation), - * but with the exact message and the same nonzero exit. */ - JSAtom prop = JS_NewAtomLen(isl_ctx, name->data, name->len); - int has = JS_HasProperty(isl_ctx, ns, prop); - JS_FreeAtom(isl_ctx, prop); - if (has < 0) { - JS_FreeValue(isl_ctx, ns); - isl_bridge_exception(); - return NULL; - } - if (has == 0) { - JS_FreeValue(isl_ctx, ns); - char buf[512]; - int n = snprintf(buf, sizeof buf, - "The requested module '%s' does not provide an export named '%s'", - specifier->data, name->data); - scr_throw_error_msg(SCR_ERR_SYNTAX, buf, (size_t)(n < 0 ? 0 : (size_t)n < sizeof buf ? (size_t)n : sizeof buf - 1)); - return NULL; - } - JSValue v = JS_GetPropertyStr(isl_ctx, ns, name->data); - JS_FreeValue(isl_ctx, ns); - if (JS_IsException(v)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(v); -} - -/* Dynamic import() (libCall island.importDyn). Borrows the key; +1 out — - * ALWAYS an engine promise: JS_LoadModule's own for a loadable key, a - * REJECTED one for load/normalize/compile failures (Node rejects dynamic - * imports, it never throws synchronously) — the frontend's - * jsBridgePromise turns settlement into the static promise's. Boots the - * module system on demand: a program whose ONLY module use is a dynamic - * builtin import ("node:fs") registers no embedded tables, but the - * builtin wrappers require the bootstrap's __scr_require. */ -/* Drop ledger entries carrying `reason` — the INTERMEDIATE module - * promises QuickJS leaves rejected-and-unhandled when a dynamically - * imported module throws at evaluation (each module in the graph has its - * own promise; only the returned top one gets a handler). Node reports a - * handled import() rejection zero times; without this we would report - * the inner twin once. The RETURNED promise's own entry drops too — the - * bridge subscribes to it, and an unobserved STATIC promise is the - * static ledger's report (one voice, like everywhere else). */ -static void isl_rejections_drop_reason(JSValueConst reason) { - for (IslRejection **link = &isl_rejections; *link;) { - if (JS_IsSameValue(isl_ctx, (*link)->reason, reason)) { - IslRejection *r = *link; - *link = r->next; - isl_rejection_free(r); - } else { - link = &(*link)->next; - } - } - isl_rejections_tail = &isl_rejections; - while (*isl_rejections_tail) isl_rejections_tail = &(*isl_rejections_tail)->next; -} - -ScrJsval *scr_jsval_import_dyn(const ScrStr *key) { - isl_entry(); - isl_ensure_node_globals(); - JSValue promise = JS_LoadModule(isl_ctx, ISL_IMPORT_BASE, key->data); - if (!JS_IsException(promise)) { - /* Settlement flows through reaction jobs (each module's own promise - * feeds the returned one) — drain them so a rejection is visible NOW, - * then drop the intermediates' ledger twins. Embedded packages have - * no top-level await (island.import documents the same rule), so the - * drain either settles the promise or leaves genuinely-async work to - * the loop. */ - JSContext *jctx; - while (JS_ExecutePendingJob(isl_rt, &jctx) > 0) { - } - if (JS_PromiseState(isl_ctx, promise) == JS_PROMISE_REJECTED) { - JSValue reason = JS_PromiseResult(isl_ctx, promise); - isl_rejections_drop_reason(reason); - JS_FreeValue(isl_ctx, reason); - } - } - if (JS_IsException(promise)) { - /* Wrap the pending exception into a rejected promise — Node's shape - * for EVERY dynamic-import failure. */ - JSValue reason = JS_GetException(isl_ctx); - JSValue global = JS_GetGlobalObject(isl_ctx); - JSValue ctor = JS_GetPropertyStr(isl_ctx, global, "Promise"); - JSValue reject = JS_GetPropertyStr(isl_ctx, ctor, "reject"); - JSValue rejected = JS_Call(isl_ctx, reject, ctor, 1, &reason); - JS_FreeValue(isl_ctx, reject); - JS_FreeValue(isl_ctx, ctor); - JS_FreeValue(isl_ctx, global); - JS_FreeValue(isl_ctx, reason); - if (JS_IsException(rejected)) { /* engine-level surprise only */ - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(rejected); - } - return isl_cell_new(promise); -} - -/* ── marshal out (validated exits) ──────────────────────────────────── - * STRICT extraction, mirroring the dynCheck walkers' no-coercion rule: - * the failure is a real, catchable TypeError instance naming both types. */ - -/* The deferred boundary failure (libCall island.castFail): a checked cast - * of an island value to a type with no validated exit (a Promise of a - * function-carrying interface — the Node-typed async-API shape). The - * value was evaluated by the caller; the cast throws a catchable - * TypeError naming the target, exactly when the impossible conversion is - * attempted — typed-but-never-executed code (a wasm decode path behind a - * rejecting import) still compiles. */ -void scr_jsval_cast_fail(ScrJsval *v, const ScrStr *target) { - (void)v; - char buf[512]; - int n = snprintf(buf, sizeof buf, - "island value cannot be validated as '%s' (the type has no " - "island exit — functions and promises cannot cross the boundary)", - target->data); - scr_throw_error_msg(SCR_ERR_TYPE, buf, (size_t)(n < 0 ? 0 : (size_t)n < sizeof buf ? (size_t)n : sizeof buf - 1)); -} - -static void isl_exit_fail(const char *want, ScrJsval *v) { - ScrStr *got = scr_jsval_typeof(v); - char buf[128]; - int n = snprintf(buf, sizeof buf, "expected %s, got %s", want, - got ? got->data : "unknown"); - if (got) scr_str_release(got); - scr_throw_error_msg(SCR_ERR_TYPE, buf, (size_t)n); -} - -int scr_jsval_exit_f64(ScrJsval *v, double *out) { - isl_entry(); - if (!JS_IsNumber(v->v)) { - isl_exit_fail("number", v); - return 0; - } - return JS_ToFloat64(isl_ctx, out, v->v) == 0; -} - -int scr_jsval_exit_bool(ScrJsval *v, bool *out) { - isl_entry(); - if (!JS_IsBool(v->v)) { - isl_exit_fail("boolean", v); - return 0; - } - *out = JS_ToBool(isl_ctx, v->v) > 0; - return 1; -} - -ScrStr *scr_jsval_exit_str(ScrJsval *v) { - isl_entry(); - if (!JS_IsString(v->v)) { - isl_exit_fail("string", v); - return NULL; - } - return isl_js_to_str(v->v); -} - -/* Validated Uint8Array exit: the engine value must be a Uint8Array - * (engine Buffers are Uint8Array subclasses and pass — matching the - * static world, where Buffer IS bytes); the payload COPIES out as a - * fresh u8 bytes value, the boundary's aliasing stance. NULL = the - * boundary TypeError was thrown (lying declaration). */ -ScrBytes *scr_jsval_exit_bytes(ScrJsval *v) { - isl_entry(); - if (JS_GetTypedArrayType(v->v) != JS_TYPED_ARRAY_UINT8) { - isl_exit_fail("a Uint8Array", v); - return NULL; - } - size_t n = 0; - uint8_t *data = JS_GetUint8Array(isl_ctx, &n, v->v); - if (!data) { - if (JS_HasException(isl_ctx)) { /* detached buffer and friends */ - isl_bridge_exception(); - return NULL; - } - n = 0; /* an empty view */ - } - ScrBytes *b = scr_bytes_new(SCR_BYTES_U8, (double)n); - if (n > 0) memcpy(b->data, data, n); - return b; -} - -/* Validated exit of an engine value into an `any[]`-declared slot (the - * jsval-element-array spelling — withPlugins' `loadPlugins(plugins)` - * boundary): the engine's Array.isArray gates (a non-array refuses with - * the catchable boundary TypeError), then elements copy BY REFERENCE - * into a native array of engine cells — identity preserved, length a - * snapshot (the exit's aliasing stance: element IDENTITY crosses, the - * spine is a copy). +1, or NULL with the exception pending. */ -ScrArr *scr_jsval_exit_jsval_arr(ScrJsval *v) { - isl_entry(); - if (JS_IsArray(v->v) <= 0) { - isl_exit_fail("an array", v); - return NULL; - } - JSValue lv = JS_GetPropertyStr(isl_ctx, v->v, "length"); - int64_t len = 0; - JS_ToInt64(isl_ctx, &len, lv); - JS_FreeValue(isl_ctx, lv); - static const ScrArrOps jsval_ops = { &scr_jsval_retain_v, &scr_jsval_release_v, NULL }; - ScrArr *out = scr_arr_new_ops(&jsval_ops, len > 0 ? (size_t)len : 0); - for (int64_t i = 0; i < len; i++) { - JSValue e = JS_GetPropertyUint32(isl_ctx, v->v, (uint32_t)i); /* getters run */ - if (JS_IsException(e)) { - isl_bridge_exception(); - scr_arr_release(out); - return NULL; - } - scr_arr_push_ref(out, isl_cell_new(e)); /* ownership moves in */ - } - return out; -} - -/* Composite exit: engine JSON.stringify, feeding the existing - * json.parse + dynCheck walker pipeline on the static side. A value - * JSON cannot represent (function, undefined, symbol at the top) comes - * back undefined — refused here so the walker sees real JSON. */ -ScrStr *scr_jsval_to_json(ScrJsval *v) { - isl_entry(); - JSValue j = JS_JSONStringify(isl_ctx, v->v, JS_UNDEFINED, JS_UNDEFINED); - if (JS_IsException(j)) { /* cyclic value, throwing toJSON, ... */ - isl_bridge_exception(); - return NULL; - } - if (JS_IsUndefined(j)) { - isl_exit_fail("a JSON-representable value", v); - return NULL; - } - ScrStr *s = isl_js_to_str(j); - JS_FreeValue(isl_ctx, j); - return s; -} - -/* ── optional chains on island values ───────────────────────────────── - * `x?.y` on an 'any' receiver: the compiler emits the nullish test on the - * HANDLE and, on the unit path, the engine's own undefined. Both are - * infallible. */ - -bool scr_jsval_is_nullish(ScrJsval *v) { - isl_entry(); - return JS_IsUndefined(v->v) || JS_IsNull(v->v); -} - -ScrJsval *scr_jsval_undefined(void) { - isl_entry(); - return isl_cell_new(JS_UNDEFINED); -} - -ScrJsval *scr_jsval_null(void) { - isl_entry(); - return isl_cell_new(JS_NULL); -} - -/* ── typed arrays and URLs marshaling IN ────────────────────────────── - * The union lift's non-JSON arms (and bare bytes/URL values in 'any' - * slots): a typed array crosses as an engine typed array of the same - * element kind — a COPY, the boundary's copy-marshal stance — and a URL - * crosses as an engine URL instance built from its href. */ - -ScrJsval *scr_jsval_from_bytes(const ScrBytes *b) { - isl_entry(); - JSValue v = isl_from_bytes(b); - if (JS_IsException(v)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(v); -} - -/* The engine has no URL global of its own (QuickJS ships none; scr_web.c - * defines the streams/fetch subset only), so the first URL marshal - * installs a minimal class: construction re-parses through the SAME - * WHATWG parser the static URL uses (scr_url.c, via a host function), so - * a marshaled URL and `new URL(href)` in embedded code agree exactly. - * Component reads and writes share the native parser and setter - * state overrides. If a URL global already exists - * (a future web-prelude one, or embedded code's own), it wins — the - * marshal constructs through whatever globalThis.URL is. */ -static JSValue isl_url_components(JSContext *ctx, ScrUrl *u) { - ScrStr *href = scr_url_href(u); - ScrStr *protocol = scr_url_protocol(u); - ScrStr *pathname = scr_url_pathname(u); - ScrStr *host = scr_url_host(u); - ScrStr *hostname = scr_url_hostname(u); - ScrStr *search = scr_url_search(u); - ScrStr *origin = scr_url_origin(u); - ScrStr *username = scr_url_username(u); - ScrStr *password = scr_url_password(u); - ScrStr *hash = scr_url_hash(u); - ScrStr *port = scr_url_port(u); - scr_url_release(u); - JSValue arr = JS_NewArray(ctx); - JS_SetPropertyUint32(ctx, arr, 0, JS_NewStringLen(ctx, href->data, href->len)); - JS_SetPropertyUint32(ctx, arr, 1, JS_NewStringLen(ctx, protocol->data, protocol->len)); - JS_SetPropertyUint32(ctx, arr, 2, JS_NewStringLen(ctx, pathname->data, pathname->len)); - JS_SetPropertyUint32(ctx, arr, 3, JS_NewStringLen(ctx, host->data, host->len)); - JS_SetPropertyUint32(ctx, arr, 4, JS_NewStringLen(ctx, hostname->data, hostname->len)); - JS_SetPropertyUint32(ctx, arr, 5, JS_NewStringLen(ctx, search->data, search->len)); - JS_SetPropertyUint32(ctx, arr, 6, JS_NewStringLen(ctx, origin->data, origin->len)); - JS_SetPropertyUint32(ctx, arr, 7, JS_NewStringLen(ctx, username->data, username->len)); - JS_SetPropertyUint32(ctx, arr, 8, JS_NewStringLen(ctx, password->data, password->len)); - JS_SetPropertyUint32(ctx, arr, 9, JS_NewStringLen(ctx, hash->data, hash->len)); - JS_SetPropertyUint32(ctx, arr, 10, JS_NewStringLen(ctx, port->data, port->len)); - scr_str_release(href); - scr_str_release(protocol); - scr_str_release(pathname); - scr_str_release(host); - scr_str_release(hostname); - scr_str_release(search); - scr_str_release(origin); - scr_str_release(username); - scr_str_release(password); - scr_str_release(hash); - scr_str_release(port); - return arr; -} - -static JSValue isl_url_parse_host(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) { - (void)this_val; - if (argc < 1) return JS_ThrowTypeError(ctx, "Invalid URL"); - ScrStr *in = isl_arg_str(ctx, argv[0]); - if (!in) return JS_EXCEPTION; - ScrStr *base = argc > 1 && !JS_IsUndefined(argv[1]) ? isl_arg_str(ctx, argv[1]) : NULL; - if (argc > 1 && !JS_IsUndefined(argv[1]) && !base) { - scr_str_release(in); - return JS_EXCEPTION; - } - ScrUrl *u = base ? scr_url_new_base(in, base) : scr_url_new(in); - scr_str_release(in); - scr_str_release(base); - if (!u) { - if (argc > 2 && JS_ToBool(ctx, argv[2])) { - scr_exc_clear(); - return JS_NULL; - } - return isl_throw_pending(ctx); - } - return isl_url_components(ctx, u); -} - -static JSValue isl_url_set_host(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) { - (void)this_val; - if (argc < 3) return JS_ThrowTypeError(ctx, "Invalid URL"); - ScrStr *href = isl_arg_str(ctx, argv[0]); - if (!href) return JS_EXCEPTION; - ScrStr *field = isl_arg_str(ctx, argv[1]); - if (!field) { scr_str_release(href); return JS_EXCEPTION; } - ScrStr *value = isl_arg_str(ctx, argv[2]); - if (!value) { scr_str_release(href); scr_str_release(field); return JS_EXCEPTION; } - ScrUrl *u = scr_url_new(href); - scr_str_release(href); - bool applied = u && scr_url_set_component(u, field, value); - scr_str_release(field); - scr_str_release(value); - if (!u || scr_exc_pending()) { - scr_url_release(u); - return isl_throw_pending(ctx); - } - if (!applied) { scr_url_release(u); return JS_NULL; } - return isl_url_components(ctx, u); -} - -static const char isl_url_src[] = - "(function (parse, mutate) {\n" - " 'use strict';\n" - " const text = (v) => {\n" - " if (typeof v === 'symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n" - " return `${v}`;\n" - " };\n" - " const fields = ['href', 'protocol', 'pathname', 'host', 'hostname', 'search', 'origin', 'username', 'password', 'hash', 'port'];\n" - " class URL {\n" - " constructor(input, base) {\n" - " if (arguments.length === 0) throw URL._missing();\n" - " const s = text(input);\n" - " const b = base === undefined ? undefined : text(base);\n" - " this._init(parse(s, b));\n" - " }\n" - " static _missing() {\n" - " const error = new TypeError('The \"url\" argument must be specified');\n" - " error.code = 'ERR_MISSING_ARGS';\n" - " return error;\n" - " }\n" - " _init(c) {\n" - " Object.defineProperty(this, '_components', { value: c, writable: true });\n" - " for (let i = 0; i < fields.length; i++) {\n" - " const name = fields[i];\n" - " const descriptor = { enumerable: true, get: () => this._components[i] };\n" - " if (name !== 'origin') descriptor.set = (v) => this._set(name, v);\n" - " Object.defineProperty(this, name, descriptor);\n" - " }\n" - " }\n" - " _set(name, value) {\n" - " const href = this.href;\n" - " const ignored = name === 'pathname' && !href.slice(this.protocol.length).startsWith('/');\n" - " const converted = text(value);\n" - " if (ignored) return;\n" - " const components = mutate(name === 'href' ? this.href : href, name, converted);\n" - " if (components === null) return;\n" - " this._components = components;\n" - " if ((name === 'search' || name === 'href') && this._sp !== undefined) {\n" - " this._sp._pairs.length = 0;\n" - " for (const [k, v] of new globalThis.URLSearchParams(this.search)) this._sp._pairs.push([k, v]);\n" - " }\n" - " }\n" - " get searchParams() {\n" - " if (this._sp === undefined) {\n" - " const sp = new globalThis.URLSearchParams(this.search);\n" - " const sync = () => {\n" - " const q = sp.toString();\n" - " this._set('search', q === '' ? '' : '?' + q);\n" - " };\n" - " for (const m of ['append', 'set', 'delete', 'sort']) {\n" - " const orig = sp[m].bind(sp);\n" - " Object.defineProperty(sp, m, { value: (...args) => { const r = orig(...args); sync(); return r; } });\n" - " }\n" - " Object.defineProperty(this, '_sp', { value: sp });\n" - " }\n" - " return this._sp;\n" - " }\n" - " get href() { throw new TypeError('Receiver must be an instance of class URL'); }\n" - " toString() { return this.href; }\n" - " toJSON() { return this.href; }\n" - " static canParse(input, base) {\n" - " if (arguments.length === 0) throw URL._missing();\n" - " const s = text(input);\n" - " const b = base === undefined ? undefined : text(base);\n" - " return parse(s, b, true) !== null;\n" - " }\n" - " static parse(input, base) {\n" - " if (arguments.length === 0) throw URL._missing();\n" - " const s = text(input);\n" - " const b = base === undefined ? undefined : text(base);\n" - " const c = parse(s, b, true);\n" - " if (c === null) return null;\n" - " const result = Object.create(URL.prototype);\n" - " result._init(c);\n" - " return result;\n" - " }\n" - " }\n" - " globalThis.URL = URL;\n" - "})\n"; - -/* Install the minimal URL class if the global is still missing. Called on - * first URL marshal AND at module boot (embedded loaders do - * `new URL("x.wasm", import.meta.url)` without any URL ever crossing). */ -static void isl_install_url_class(void) { - JSValue g = JS_GetGlobalObject(isl_ctx); - JSValue ctor = JS_GetPropertyStr(isl_ctx, g, "URL"); - if (JS_IsUndefined(ctor)) { - JSValue installer = JS_Eval(isl_ctx, isl_url_src, sizeof isl_url_src - 1, - "", JS_EVAL_TYPE_GLOBAL); - if (JS_IsException(installer)) { - fprintf(stderr, "scriptc: island URL prelude failed to evaluate\n"); - abort(); /* fixed source; failing to parse is a build defect */ - } - JSValue parse = JS_NewCFunction(isl_ctx, isl_url_parse_host, "__scr_url_parse", 3); - JSValue mutate = JS_NewCFunction(isl_ctx, isl_url_set_host, "__scr_url_set", 3); - JSValue args[2] = {parse, mutate}; - JSValue r = JS_Call(isl_ctx, installer, JS_UNDEFINED, 2, args); - JS_FreeValue(isl_ctx, mutate); - JS_FreeValue(isl_ctx, parse); - JS_FreeValue(isl_ctx, installer); - if (JS_IsException(r)) { - fprintf(stderr, "scriptc: island URL prelude failed to install\n"); - abort(); - } - JS_FreeValue(isl_ctx, r); - } - JS_FreeValue(isl_ctx, ctor); - JS_FreeValue(isl_ctx, g); -} - -ScrJsval *scr_jsval_from_url(ScrUrl *u) { - isl_entry(); - isl_install_url_class(); - JSValue g = JS_GetGlobalObject(isl_ctx); - JSValue ctor = JS_GetPropertyStr(isl_ctx, g, "URL"); - JS_FreeValue(isl_ctx, g); - ScrStr *href = scr_url_href(u); - JSValue hrefv = JS_NewStringLen(isl_ctx, href->data, href->len); - scr_str_release(href); - JSValue v = JS_CallConstructor(isl_ctx, ctor, 1, &hrefv); - JS_FreeValue(isl_ctx, hrefv); - JS_FreeValue(isl_ctx, ctor); - if (JS_IsException(v)) { - isl_bridge_exception(); - return NULL; - } - return isl_cell_new(v); -} - -#endif /* SCR_DYNAMIC */ diff --git a/packages/runtime/src/scr_island_manifest.h b/packages/runtime/src/scr_island_manifest.h deleted file mode 100644 index 55f9d769e..000000000 --- a/packages/runtime/src/scr_island_manifest.h +++ /dev/null @@ -1,159 +0,0 @@ -/* Generated by @internal/compatibility from dynamic-support.json. - * Do not edit: the manifest is the implementation-owned builtin registry. */ -static const struct { - const char *name; - const char *exports; -} isl_builtins[] = { - {"node:events", - "EventEmitter,once,on,addAbortListener,listenerCount,getEventListeners,setMaxListeners,de" - "faultMaxListeners,errorMonitor,captureRejectionSymbol"}, - {"node:path", - "sep,delimiter,basename,dirname,extname,join,resolve,normalize,relative,isAbsolute,toName" - "spacedPath,parse,format,posix,win32"}, - {"node:path/posix", - "sep,delimiter,basename,dirname,extname,join,resolve,normalize,relative,isAbsolute,toName" - "spacedPath,parse,format,posix,win32"}, - {"node:path/win32", - "sep,delimiter,basename,dirname,extname,join,resolve,normalize,relative,isAbsolute,toName" - "spacedPath,parse,format,posix,win32"}, - {"node:process", - "chdir,loadEnvFile,argv,env,platform,execPath,execArgv,version,versions,stdout,stderr,std" - "in,cwd,exit,nextTick,hrtime,pid,ppid,title,argv0,release,config,allowedNodeEnvironmentFl" - "ags,emitWarning,uptime,memoryUsage,umask,exitCode,on,once,off,removeListener,emit"}, - {"node:fs", - "readFileSync,writeFileSync,appendFileSync,existsSync,realpathSync,mkdirSync,rmSync,rmdir" - "Sync,unlinkSync,readdirSync,statSync,lstatSync,accessSync,mkdtempSync,chmodSync,copyFile" - "Sync,renameSync,constants,Stats,Dirent,promises,readFile,writeFile,appendFile,exists,rea" - "lpath,mkdir,rm,rmdir,unlink,readdir,stat,lstat,access,mkdtemp,chmod,copyFile,rename,read" - "link,readlinkSync,createReadStream,createWriteStream,watch,watchFile,unwatchFile,openSyn" - "c,closeSync,readSync,read,open,writeSync,write,close,readvSync,writevSync,readv,writev,f" - "statSync,fstat,fchmodSync,fchmod,fsyncSync,fsync,fdatasyncSync,fdatasync,ftruncateSync,f" - "truncate"}, - {"node:fs/promises", - "readFile,writeFile,appendFile,realpath,mkdir,rm,rmdir,unlink,readdir,stat,lstat,access,m" - "kdtemp,chmod,copyFile,rename,readlink,constants,open"}, - {"node:child_process", - "spawn,spawnSync,exec,execSync,execFile,execFileSync,fork"}, - {"node:os", - "EOL,platform,arch,hostname,homedir,tmpdir,type,endianness,userInfo,release,version,machi" - "ne,cpus,availableParallelism,totalmem,freemem,loadavg,uptime,networkInterfaces,constants"}, - {"node:tty", - "isatty,ReadStream,WriteStream"}, - {"node:http", - "request,get,Agent,globalAgent,ClientRequest,IncomingMessage,STATUS_CODES,METHODS,createS" - "erver,Server"}, - {"node:https", - "request,get,Agent,globalAgent,ClientRequest,IncomingMessage,STATUS_CODES,METHODS,createS" - "erver,Server"}, - {"node:net", - "isIP,isIPv4,isIPv6,connect,createConnection,createServer,Socket,Server"}, - {"node:tls", - "connect,createServer,createSecureContext,TLSSocket,rootCertificates"}, - {"node:diagnostics_channel", - "channel,subscribe,unsubscribe,hasSubscribers,tracingChannel,Channel"}, - {"node:module", - "createRequire,builtinModules,isBuiltin,syncBuiltinESMExports,register,findSourceMap"}, - {"node:url", - "URL,URLSearchParams,fileURLToPath,fileURLToPathBuffer,pathToFileURL,parse,format,resolve" - ",domainToASCII,domainToUnicode,urlToHttpOptions"}, - {"node:buffer", - "Buffer,SlowBuffer,INSPECT_MAX_BYTES,kMaxLength,kStringMaxLength,constants,isAscii,isUtf8" - ",atob,btoa,Blob,File,transcode,resolveObjectURL"}, - {"node:string_decoder", - "StringDecoder"}, - {"node:assert", - "AssertionError,ok,fail,equal,notEqual,strictEqual,notStrictEqual,deepEqual,notDeepEqual," - "deepStrictEqual,notDeepStrictEqual,throws,doesNotThrow,rejects,doesNotReject,match,doesN" - "otMatch,ifError,strict"}, - {"node:assert/strict", - "AssertionError,ok,fail,equal,notEqual,strictEqual,notStrictEqual,deepEqual,notDeepEqual," - "deepStrictEqual,notDeepStrictEqual,throws,doesNotThrow,rejects,doesNotReject,match,doesN" - "otMatch,ifError,strict"}, - {"node:domain", - "create,createDomain,Domain,active"}, - {"node:worker_threads", - "isMainThread,parentPort,threadId,workerData,resourceLimits,MessageChannel,MessagePort,Wo" - "rker,receiveMessageOnPort,SHARE_ENV,markAsUntransferable,getEnvironmentData,setEnvironme" - "ntData"}, - {"node:perf_hooks", - "performance,PerformanceObserver,monitorEventLoopDelay,constants"}, - {"node:v8", - "startupSnapshot,cachedDataVersionTag,getHeapStatistics,getHeapSpaceStatistics,getHeapCod" - "eStatistics,getCppHeapStatistics,setFlagsFromString,takeCoverage,stopCoverage,setHeapSna" - "pshotNearHeapLimit,serialize,deserialize,writeHeapSnapshot,getHeapSnapshot,queryObjects," - "startCpuProfile,isStringOneByteRepresentation,promiseHooks,Serializer,Deserializer,Defau" - "ltSerializer,DefaultDeserializer,GCProfiler"}, - {"node:dns", - "lookup,lookupService,resolve,resolve4,resolve6,resolveAny,resolveCaa,resolveCname,resolv" - "eMx,resolveNaptr,resolveNs,resolvePtr,resolveSoa,resolveSrv,resolveTlsa,resolveTxt,rever" - "se,getServers,setServers,getDefaultResultOrder,setDefaultResultOrder,Resolver,promises,A" - "DDRCONFIG,V4MAPPED,ALL,NODATA,FORMERR,SERVFAIL,NOTFOUND,NOTIMP,REFUSED,BADQUERY,BADNAME," - "BADFAMILY,BADRESP,CONNREFUSED,TIMEOUT,EOF,FILE,NOMEM,DESTRUCTION,BADSTR,BADFLAGS,NONAME," - "BADHINTS,NOTINITIALIZED,LOADIPHLPAPI,ADDRGETNETWORKPARAMS,CANCELLED"}, - {"node:dns/promises", - "lookup,lookupService,resolve,resolve4,resolve6,resolveAny,resolveCaa,resolveCname,resolv" - "eMx,resolveNaptr,resolveNs,resolvePtr,resolveSoa,resolveSrv,resolveTlsa,resolveTxt,rever" - "se,getServers,setServers,getDefaultResultOrder,setDefaultResultOrder,Resolver,NODATA,FOR" - "MERR,SERVFAIL,NOTFOUND,NOTIMP,REFUSED,BADQUERY,BADNAME,BADFAMILY,BADRESP,CONNREFUSED,TIM" - "EOUT,EOF,FILE,NOMEM,DESTRUCTION,BADSTR,BADFLAGS,NONAME,BADHINTS,NOTINITIALIZED,LOADIPHLP" - "API,ADDRGETNETWORKPARAMS,CANCELLED"}, - {"node:async_hooks", - "AsyncLocalStorage,AsyncResource,executionAsyncId,triggerAsyncId,executionAsyncResource,c" - "reateHook"}, - {"node:punycode", - "version,ucs2,decode,encode,toASCII,toUnicode"}, - {"node:querystring", - "parse,stringify,decode,encode,escape,unescape,unescapeBuffer"}, - {"node:constants", - "F_OK,R_OK,W_OK,X_OK"}, - {"node:console", - "Console,log,info,debug,warn,error,trace,dir,assert,count,countReset,time,timeEnd,group,g" - "roupEnd,table,clear"}, - {"node:timers", - "setTimeout,clearTimeout,setInterval,clearInterval,setImmediate,clearImmediate"}, - {"node:timers/promises", - "setTimeout,setImmediate,setInterval,scheduler"}, - {"node:zlib", - "deflateSync,inflateSync,deflateRawSync,inflateRawSync,gzipSync,gunzipSync,unzipSync,defl" - "ate,inflate,deflateRaw,inflateRaw,gzip,gunzip,unzip,Deflate,Inflate,DeflateRaw,InflateRa" - "w,Gzip,Gunzip,Unzip,BrotliCompress,BrotliDecompress,createDeflate,createInflate,createDe" - "flateRaw,createInflateRaw,createGzip,createGunzip,createUnzip,createBrotliCompress,creat" - "eBrotliDecompress,brotliCompressSync,brotliDecompressSync,constants"}, - {"node:readline", - "Interface,createInterface,clearLine,clearScreenDown,cursorTo,moveCursor,emitKeypressEven" - "ts"}, - {"node:stream", - "Stream,Readable,Writable,Duplex,Transform,PassThrough,pipeline,finished,addAbortSignal,p" - "romises,isErrored,isDestroyed,isReadable,isWritable"}, - {"node:stream/promises", - "pipeline,finished"}, - {"node:stream/consumers", - "text,buffer,arrayBuffer,json,blob"}, - {"node:stream/web", - "ReadableStream,TransformStream,TextDecoderStream,WritableStream,WritableStreamDefaultWri" - "ter,WritableStreamDefaultController,CountQueuingStrategy,ByteLengthQueuingStrategy,Trans" - "formStreamDefaultController,TextEncoderStream,ReadableStreamDefaultReader,ReadableStream" - "DefaultController"}, - {"node:crypto", - "createHash,createHmac,hash,Hash,Hmac,randomBytes,randomFillSync,randomFill,randomInt,ran" - "domUUID,getRandomValues,timingSafeEqual,pbkdf2,pbkdf2Sync,getHashes,getCiphers,getCurves" - ",webcrypto,subtle,constants,KeyObject,createCipheriv,createDecipheriv,createSign,createV" - "erify,createDiffieHellman,createECDH,createPublicKey,createPrivateKey,createSecretKey,di" - "ffieHellman,generateKeyPair,generateKeyPairSync,generateKey,generateKeySync,sign,verify," - "publicEncrypt,publicDecrypt,privateEncrypt,privateDecrypt,scrypt,scryptSync,hkdf,hkdfSyn" - "c,X509Certificate,Certificate,checkPrime,checkPrimeSync,generatePrime,generatePrimeSync," - "secureHeapUsed,setEngine,setFips,getFips"}, - {"node:util", - "getSystemErrorName,getSystemErrorMessage,getSystemErrorMap,parseEnv,format,formatWithOpt" - "ions,inspect,inherits,promisify,callbackify,deprecate,debuglog,debug,types,isDeepStrictE" - "qual,stripVTControlCharacters,styleText,parseArgs,toUSVString,_extend,TextEncoder,TextDe" - "coder,MIMEType,MIMEParams,isArray"}, - {"node:util/types", - "isAnyArrayBuffer,isArrayBufferView,isArgumentsObject,isArrayBuffer,isAsyncFunction,isBig" - "Int64Array,isBigUint64Array,isBooleanObject,isBoxedPrimitive,isBigIntObject,isCryptoKey," - "isDataView,isDate,isExternal,isFloat16Array,isFloat32Array,isFloat64Array,isGeneratorFun" - "ction,isGeneratorObject,isInt8Array,isInt16Array,isInt32Array,isKeyObject,isMap,isMapIte" - "rator,isModuleNamespaceObject,isNativeError,isNumberObject,isPromise,isProxy,isRegExp,is" - "Set,isSetIterator,isSharedArrayBuffer,isStringObject,isSymbolObject,isTypedArray,isUint8" - "Array,isUint8ClampedArray,isUint16Array,isUint32Array,isWeakMap,isWeakSet"}, -}; diff --git a/packages/runtime/src/scr_json.c b/packages/runtime/src/scr_json.c index f5b96be25..c8fdf2c2e 100644 --- a/packages/runtime/src/scr_json.c +++ b/packages/runtime/src/scr_json.c @@ -73,7 +73,7 @@ static ScrDyn *scr_builtin_iterator_method(const ScrDyn *value); static bool scr_builtin_iterable(const ScrDyn *value) { return value->kind == SCR_DYN_ARR || value->kind == SCR_DYN_STR || value->kind == SCR_DYN_BYTES || (scr_dyn_generator(value) && value->v.typed_ref.type_key[0] != 'a') || - (value->kind == SCR_DYN_TYPED_REF && scr_dyn_isl_is_array(value)) || + (value->kind == SCR_DYN_TYPED_REF && scr_dyn_ref_is_array(value)) || (value->kind == SCR_DYN_HANDLE && (value->v.handle.tag == SCR_DYNH_ITERATOR || value->v.handle.tag == SCR_DYNH_MAP || value->v.handle.tag == SCR_DYNH_SET || scr_dyn_handle_ops_of(value)->iter_pack || scr_dyn_handle_ops_of(value)->iter_step)); } @@ -83,8 +83,7 @@ static bool scr_iterator_object(const ScrDyn *value) { case SCR_DYN_FUNC: case SCR_DYN_HANDLE: case SCR_DYN_PROMISE: case SCR_DYN_TYPED_REF: case SCR_DYN_PROXY: return true; - case SCR_DYN_JSVAL: - return scr_dyn_isl_typeof_is(value, "object") || scr_dyn_isl_typeof_is(value, "function"); + default: return false; } } @@ -864,11 +863,7 @@ static void scr_dyn_dispose(ScrDyn *d, bool collected) { * scr_json.c without the fiber machinery) never references it. */ scr_dyn_promise_release_fn(d->v.promise); break; - case SCR_DYN_JSVAL: - /* Installed by scr_dyn_alloc_jsval (the gated constructor is the - * only producer) — same story as the promise arm. */ - scr_dyn_jsval_ops()->release(d->v.jsval.cell); - break; + case SCR_DYN_TYPED_REF: scr_typed_ref_forget(d); if (!collected) scr_dyn_release(d->v.typed_ref.materialized); @@ -1152,20 +1147,7 @@ void scr_dyn_arr_push_spread(ScrDyn *arr, const ScrDyn *src, const char *what) { scr_throw_error(SCR_ERR_TYPE, scr_jb_finish(&b)); return; } - if (src->kind == SCR_DYN_JSVAL) { - /* A wrapped engine value spreads through the ENGINE's own iterator - * protocol (the routed iter_drain — Symbol.iterator implementations, - * generators, Maps step exactly as Node runs them); a non-iterable - * throws V8's spread-call text from the guard, an iterating throw - * bridges with the engine's message. */ - ScrDyn *pack = scr_dyn_jsval_ops()->iter_drain(src->v.jsval.cell, true, NULL); - if (!pack) return; /* pending */ - for (size_t i = 0; i < pack->v.arr.len; i++) { - scr_dyn_arr_push(arr, scr_dyn_retain(pack->v.arr.items[i])); - } - scr_dyn_release(pack); - return; - } + static const char msg[] = "Spread syntax requires ...iterable[Symbol.iterator] to be a function"; scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1); } @@ -1221,20 +1203,9 @@ ScrDyn *scr_dyn_iter_pack(const ScrDyn *src, const ScrStr *msg) { scr_dyn_arr_push_spread(out, src, ""); /* iterable kinds never consult `what` */ return out; } - /* A wrapped engine value packs through the ENGINE's own iterator - * protocol (the routed iter_drain): elements wrap back scalar- - * normalized; a non-iterable throws the destructuring kind wording - * from the engine-side guard, an iterating throw bridges with the - * engine's message. The compile-time spelling is not threaded through - * (the engine's wording names the value's own kind). */ - if (src->kind == SCR_DYN_JSVAL) { - return scr_dyn_jsval_ops()->iter_drain(src->v.jsval.cell, false, msg); - } - return scr_dyn_not_iterable(src, msg); -} -ScrDyn *scr_dyn_jsval_iter_n(const ScrDyn *src, double count) { - return scr_dyn_jsval_ops()->iter_n(src->v.jsval.cell, count); + + return scr_dyn_not_iterable(src, msg); } /* The for-of-over-dyn pack accessors: the emitted index loop drives them @@ -1245,13 +1216,13 @@ ScrDyn *scr_dyn_map_seed_entries(const ScrDyn *src) { if (src->kind == SCR_DYN_NULL || src->kind == SCR_DYN_UNDEF) return scr_dyn_new_arr(); if (src->kind == SCR_DYN_HANDLE && src->v.handle.tag == SCR_DYNH_MAP) return scr_native_map_pack(src->v.handle.ptr); - if (src->kind == SCR_DYN_TYPED_REF && scr_dyn_isl_is_array(src)) { + if (src->kind == SCR_DYN_TYPED_REF && scr_dyn_ref_is_array(src)) { ScrDyn *view = scr_dyn_typed_ref_materialize(src); if (!scr_exc_pending() && view->kind == SCR_DYN_ARR) return view; scr_dyn_release(view); if (scr_exc_pending()) return NULL; } - if (src->kind == SCR_DYN_HANDLE || src->kind == SCR_DYN_TYPED_REF || src->kind == SCR_DYN_JSVAL) { + if (src->kind == SCR_DYN_HANDLE || src->kind == SCR_DYN_TYPED_REF) { static const char message[] = "new Map(entries) over native non-array iterables has no lowering"; scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "SC2020"); return NULL; @@ -2343,7 +2314,7 @@ bool scr_dyn_typed_array_is(const ScrDyn *d, int elem) { /* Node util.types reads internal brands, never user properties or prototypes. */ bool scr_dyn_util_type_is(const ScrDyn *value, const ScrStr *probe) { if (!value) return false; - if (value->kind == SCR_DYN_JSVAL) return scr_dyn_jsval_ops()->type_probe(value->v.jsval.cell, probe); + #define PROBE(name) (probe->len == sizeof(name) - 1 && memcmp(probe->data, name, sizeof(name) - 1) == 0) if (PROBE("isAnyArrayBuffer")) return scr_buffer_storage_is(value); if (PROBE("isArrayBuffer")) return scr_array_buffer_is(value); @@ -2507,7 +2478,7 @@ bool scr_bytes_instanceof(const ScrDyn *value, const ScrDyn *callee) { return false; } if (scr_array_buffer_ctor && callee->v.fn.clo == scr_array_buffer_ctor->v.fn.clo) return scr_array_buffer_is(value); - if (scr_array_ctor && callee->v.fn.clo == scr_array_ctor->v.fn.clo) return value->kind == SCR_DYN_ARR || scr_dyn_isl_is_array(value); + if (scr_array_ctor && callee->v.fn.clo == scr_array_ctor->v.fn.clo) return value->kind == SCR_DYN_ARR || scr_dyn_ref_is_array(value); for (size_t i = 0; i < 9; i++) { if (scr_bytes_ctors[i] && callee->v.fn.clo == scr_bytes_ctors[i]->v.fn.clo) return scr_dyn_typed_array_is(value, (int)i); @@ -2692,15 +2663,7 @@ ScrDyn *scr_dyn_call(const ScrDyn *d, ScrDyn *const *args, size_t argc, const ch scr_dyn_release(receiver); return result; } - if (d->kind == SCR_DYN_JSVAL) { - /* An ENGINE callee: the call routes through scr_jsval_call with the - * uniform argument conversion (wrapped cells by reference, dyn data - * deep-copied, FUNC boxes through the host shim); a non-callable - * engine value throws the ENGINE's own TypeError, bridged catchably. - * `what` is unused — the engine's message names the failure. */ - (void)what; - return scr_dyn_jsval_ops()->call(d->v.jsval.cell, args, argc); - } + if (d->kind != SCR_DYN_FUNC) { ScrJsonBuf b; scr_jb_init(&b); @@ -2813,11 +2776,7 @@ const char *scr_dyn_specific_type(const ScrDyn *cb, char *detail, size_t cap) { snprintf(detail, cap, "an instance of %s", scr_dyn_handle_cls(cb)); break; case SCR_DYN_PROMISE: d = "an instance of Promise"; break; - case SCR_DYN_JSVAL: - /* Engine-held: only objects/arrays/functions survive wrap-time scalar - * normalization — pick by the engine's typeof. */ - d = scr_dyn_isl_typeof_is(cb, "function") ? "function" : "an instance of Object"; - break; + case SCR_DYN_TYPED_REF: { ScrDyn *materialized = scr_dyn_typed_ref_materialize(cb); const char *specific = scr_dyn_specific_type(materialized, detail, cap); @@ -3029,36 +2988,15 @@ ScrDyn *scr_dyn_alloc_promise(void (*release_fn)(ScrPromise *p)) { return scr_dyn_alloc(SCR_DYN_PROMISE); } -/* ── island values in the checked-dynamic tree (SCR_DYN_JSVAL) ───────────────────────── - * The gated constructor (scr_dyn_from_jsval, scr_island.c) builds through - * this allocator view and installs the engine-routing ops — the - * scr_dyn_alloc_promise story: a dynamic-free link never references - * engine symbols, and JSVAL nodes exist only after an install. */ -static SCR_TL const ScrDynJsvalOps *scr_dynjs_ops = NULL; - -ScrDyn *scr_dyn_alloc_jsval(ScrJsval *cell, const ScrDynJsvalOps *ops) { - scr_dynjs_ops = ops; - ScrDyn *d = scr_dyn_alloc(SCR_DYN_JSVAL); - d->v.jsval.cell = cell; /* ownership moves in */ - return d; -} - -const ScrDynJsvalOps *scr_dyn_jsval_ops(void) { - if (!scr_dynjs_ops) { - scr_trap("scriptc: internal error: dyn jsval ops not installed\n"); - } - return scr_dynjs_ops; -} - -bool scr_dyn_isl_typeof_is(const ScrDyn *d, const char *name) { +bool scr_dyn_ref_typeof_is(const ScrDyn *d, const char *name) { if (scr_dyn_generator(d)) return strcmp(name, "object") == 0; if (d->kind == SCR_DYN_TYPED_REF) { if (d->v.typed_ref.type_key_len >= 7 && memcmp(d->v.typed_ref.type_key, "object:", 7) == 0) return strcmp(name, "object") == 0; ScrDyn *materialized = scr_dyn_typed_ref_materialize(d); - bool out = scr_dyn_isl_typeof_is(materialized, name); - if (materialized->kind != SCR_DYN_JSVAL) { + bool out; + { bool object = materialized->kind == SCR_DYN_NULL || materialized->kind == SCR_DYN_OBJ || @@ -3073,15 +3011,10 @@ bool scr_dyn_isl_typeof_is(const ScrDyn *d, const char *name) { scr_dyn_release(materialized); return out; } - if (d->kind != SCR_DYN_JSVAL) return false; - ScrStr *t = scr_dyn_jsval_ops()->type_of(d->v.jsval.cell); - size_t n = strlen(name); - bool r = t->len == n && memcmp(t->data, name, n) == 0; - scr_str_release(t); - return r; + return false; } -bool scr_dyn_isl_is_array(const ScrDyn *d) { +bool scr_dyn_ref_is_array(const ScrDyn *d) { if (scr_dyn_generator(d)) return false; if (d->kind == SCR_DYN_TYPED_REF) { if (d->v.typed_ref.type_key_len >= 7 && @@ -3089,14 +3022,14 @@ bool scr_dyn_isl_is_array(const ScrDyn *d) { ScrDyn *materialized = scr_dyn_typed_ref_materialize(d); if (!materialized) return false; bool out = materialized->kind == SCR_DYN_ARR || - scr_dyn_isl_is_array(materialized); + scr_dyn_ref_is_array(materialized); scr_dyn_release(materialized); return out; } - return d->kind == SCR_DYN_JSVAL && scr_dyn_jsval_ops()->is_array(d->v.jsval.cell); + return false; } -bool scr_dyn_isl_is_error(const ScrDyn *d) { +bool scr_dyn_ref_is_error(const ScrDyn *d) { if (scr_dyn_generator(d)) return false; /* Registered native Error capsules retain their brand even when their * public property view omits the internal error marker. */ @@ -3110,45 +3043,18 @@ bool scr_dyn_isl_is_error(const ScrDyn *d) { bool out = (materialized->kind == SCR_DYN_OBJ && scr_dyn_obj_get(materialized, "%error", 6) != NULL) || - scr_dyn_isl_is_error(materialized); + scr_dyn_ref_is_error(materialized); scr_dyn_release(materialized); return out; } - return d->kind == SCR_DYN_JSVAL && scr_dyn_jsval_ops()->is_error(d->v.jsval.cell); -} - -bool scr_dyn_isl_fence(const ScrDyn *d, const char *what) { - if (d->kind != SCR_DYN_JSVAL) return false; - ScrJsonBuf b; - scr_jb_init(&b); - scr_jb_puts(&b, what); - scr_jb_puts(&b, " on an island value held in 'unknown' is not supported yet"); - scr_throw_error(SCR_ERR_ERROR, scr_jb_finish(&b)); return false; } -ScrDyn *scr_dyn_isl_key_get(const ScrDyn *d, const ScrStr *k) { - /* The emitted keyed read's JSVAL arm: o[k] runs in the ENGINE (getters - * included, their throws bridged) and the result wraps back scalar- - * normalized — the retired `.length -> fence` row (and before that, - * the fence box's silent `.length -> 0`). */ - return scr_dyn_jsval_ops()->key_get(d->v.jsval.cell, k); -} - bool scr_dyn_is_nullish(const ScrDyn *d) { if (d->kind == SCR_DYN_UNDEF || d->kind == SCR_DYN_NULL) return true; - /* JSVAL defensively routes to the engine's own test — the wrap - * constructor scalar-normalizes engine null/undefined away, so this - * arm answers false unless a producer bypassed it. */ - if (d->kind == SCR_DYN_JSVAL) return scr_dyn_jsval_ops()->is_nullish(d->v.jsval.cell); - return false; -} -void scr_dyn_isl_tostr_buf(ScrJsonBuf *b, const ScrDyn *d) { - ScrStr *s = scr_dyn_jsval_ops()->to_str(d->v.jsval.cell); - if (!s) return; /* bridged — the exception is pending, append nothing */ - for (size_t i = 0; i < s->len; i++) scr_jb_putc(b, s->data[i]); - scr_str_release(s); + + return false; } void *scr_dyn_handle_unbox(const ScrDyn *d, ScrDynHandleTag tag, const ScrDynPath *path, const char *want) { @@ -3415,7 +3321,7 @@ static ScrDyn *scr_dyn_symbol_receiver(const ScrDyn *value) { if (value->kind == SCR_DYN_FUNC) return scr_dyn_fn_properties(value); if (value->kind == SCR_DYN_OBJ || value->kind == SCR_DYN_ARR || value->kind == SCR_DYN_HANDLE) return scr_dyn_retain((ScrDyn *)value); - if (value->kind == SCR_DYN_PROXY || value->kind == SCR_DYN_JSVAL) { + if (value->kind == SCR_DYN_PROXY) { static const char message[] = "Symbol properties on this native value have no lowering"; scr_throw_error_msg_code(SCR_ERR_ERROR, message, sizeof message - 1, "SC2020"); } @@ -3712,7 +3618,7 @@ ScrDyn *scr_dyn_native_handle_iterator(ScrDyn *source, unsigned selection) { static ScrDyn *scr_builtin_iterator_checked(int kind) { ScrDyn *self = scr_dyn_this_get(); ScrDyn *result = NULL; - if (self->kind == kind || (kind == SCR_DYN_ARR && self->kind == SCR_DYN_TYPED_REF && scr_dyn_isl_is_array(self))) + if (self->kind == kind || (kind == SCR_DYN_ARR && self->kind == SCR_DYN_TYPED_REF && scr_dyn_ref_is_array(self))) result = scr_native_iterator_new(self); else { static const char message[] = "Borrowing this native iterator factory has no lowering"; @@ -3763,7 +3669,7 @@ ScrDyn *scr_dyn_array_values_function(void) { static ScrDyn *scr_builtin_iterator_method(const ScrDyn *value) { if (scr_dyn_generator(value)) return scr_iterator_function(4, &scr_iterator_self_call, "[Symbol.iterator]"); - if (value->kind == SCR_DYN_ARR || (value->kind == SCR_DYN_TYPED_REF && scr_dyn_isl_is_array(value))) return scr_dyn_array_values_function(); + if (value->kind == SCR_DYN_ARR || (value->kind == SCR_DYN_TYPED_REF && scr_dyn_ref_is_array(value))) return scr_dyn_array_values_function(); if (value->kind == SCR_DYN_BYTES) return scr_iterator_function(2, &scr_builtin_bytes_iterator_call, "values"); if (value->kind == SCR_DYN_STR) return scr_iterator_function(3, &scr_builtin_string_iterator_call, "[Symbol.iterator]"); if (value->kind == SCR_DYN_HANDLE && (value->v.handle.tag == SCR_DYNH_MAP || value->v.handle.tag == SCR_DYNH_SET || scr_dyn_handle_ops_of(value)->iter_pack || scr_dyn_handle_ops_of(value)->iter_step)) @@ -3807,11 +3713,11 @@ ScrDyn *scr_dyn_iterator_optional(const ScrDyn *source) { } ScrDyn *scr_dyn_iterator(const ScrDyn *source, const ScrStr *spell) { - if (source->kind == SCR_DYN_JSVAL) return scr_dyn_jsval_ops()->iterator(source->v.jsval.cell, spell, false); + if (source->kind == SCR_DYN_NULL || source->kind == SCR_DYN_UNDEF) return scr_dyn_not_iterable(source, spell); ScrDyn *method = scr_iterator_method(source); if (!method) return NULL; - if (method->kind != SCR_DYN_FUNC && !(method->kind == SCR_DYN_JSVAL && scr_dyn_isl_typeof_is(method, "function"))) { + if (method->kind != SCR_DYN_FUNC) { scr_dyn_release(method); return scr_dyn_not_iterable(source, spell); } @@ -3849,7 +3755,7 @@ static ScrDyn *scr_iterator_read(const ScrDyn *value, const char *key, size_t le } ScrDyn *scr_dyn_array_from_iterator(const ScrDyn *source) { - if (source->kind == SCR_DYN_JSVAL) return scr_dyn_jsval_ops()->iterator(source->v.jsval.cell, NULL, true); + ScrDyn *method = scr_iterator_method(source); if (!method) return NULL; bool iterable = method->kind != SCR_DYN_UNDEF && method->kind != SCR_DYN_NULL; @@ -4107,9 +4013,9 @@ ScrDyn *scr_dyn_define_property(ScrDyn *target, ScrDyn *key, ScrDyn *descriptor) scr_dyn_proxy_unsupported("Object.defineProperty"); return NULL; } - scr_dyn_isl_fence(target, "Object.defineProperty"); - if (!scr_exc_pending()) scr_dyn_isl_fence(key, "Object.defineProperty key"); - if (!scr_exc_pending()) scr_dyn_isl_fence(descriptor, "Object.defineProperty descriptor"); + + + if (scr_exc_pending()) return NULL; if (target->kind == SCR_DYN_FUNC) { if (scr_dyn_class_reflection_fence(target)) return NULL; @@ -4281,8 +4187,8 @@ ScrDyn *scr_dyn_get_own_property_descriptor(ScrDyn *target, ScrDyn *key) { scr_dyn_release(receiver); return out; } - scr_dyn_isl_fence(target, "Object.getOwnPropertyDescriptor"); - if (!scr_exc_pending()) scr_dyn_isl_fence(key, "Object.getOwnPropertyDescriptor key"); + + if (scr_exc_pending()) return NULL; if (target->kind == SCR_DYN_NULL || target->kind == SCR_DYN_UNDEF) { static const char msg[] = "Cannot convert undefined or null to object"; @@ -4320,10 +4226,7 @@ bool scr_dyn_truthy(const ScrDyn *d) { case SCR_DYN_PROMISE: case SCR_DYN_TYPED_REF: return true; case SCR_DYN_PROXY: return true; - case SCR_DYN_JSVAL: - /* Route to the engine's ToBoolean: objects/arrays/functions are - * true, but the symbol/bigint edge (0n is falsy) needs the engine. */ - return scr_dyn_jsval_ops()->truthy(d->v.jsval.cell); + default: return false; /* undefined, null */ } } @@ -4342,10 +4245,8 @@ ScrStr *scr_dyn_typeof(const ScrDyn *d) { scr_dyn_release(materialized); return out; } - /* An island value answers the ENGINE's typeof — "object" for the - * wrapped objects/arrays, "function" for engine functions (row 1 of - * the jsval→dyn op table; scalars normalized away at wrap time). */ - if (d->kind == SCR_DYN_JSVAL) return scr_dyn_jsval_ops()->type_of(d->v.jsval.cell); + + switch (d->kind) { case SCR_DYN_UNDEF: s = "undefined"; break; case SCR_DYN_NULL: @@ -4369,7 +4270,7 @@ ScrStr *scr_dyn_typeof(const ScrDyn *d) { bool scr_dyn_is_callable(const ScrDyn *value) { while (value->kind == SCR_DYN_PROXY) value = value->v.proxy.target; - return value->kind == SCR_DYN_FUNC || scr_dyn_isl_typeof_is(value, "function"); + return value->kind == SCR_DYN_FUNC || scr_dyn_ref_typeof_is(value, "function"); } int scr_dyn_function_kind(const ScrDyn *value) { @@ -4409,16 +4310,13 @@ ScrStr *scr_dyn_object_tag(const ScrDyn *d) { return NULL; } if (d->kind == SCR_DYN_TYPED_REF) { - if (scr_dyn_isl_is_error(d)) return scr_str_new("[object Error]", 14); + if (scr_dyn_ref_is_error(d)) return scr_str_new("[object Error]", 14); ScrDyn *materialized = scr_dyn_typed_ref_materialize(d); ScrStr *out = scr_dyn_object_tag(materialized); scr_dyn_release(materialized); return out; } - if (d->kind == SCR_DYN_JSVAL) { - scr_dyn_isl_fence(d, "Object.prototype.toString.call"); - return NULL; - } + const char *tag; switch (d->kind) { case SCR_DYN_UNDEF: tag = "[object Undefined]"; break; @@ -4562,17 +4460,7 @@ static bool scr_dyn_json_write(ScrJsonBuf *b, const ScrDyn *d) { /* No own enumerable properties — Node stringifies a promise as {}. */ scr_jb_puts(b, "{}"); return true; - case SCR_DYN_JSVAL: { - /* The ENGINE's own JSON.stringify text splices in (toJSON protocols, - * cycle TypeErrors — the engine's, bridged catchably). An engine - * FUNCTION is absent under stringify, like the checked-dynamic tree's FUNC kind. */ - if (scr_dyn_isl_typeof_is(d, "function")) return false; - ScrStr *j = scr_dyn_jsval_ops()->to_json(d->v.jsval.cell); - if (!j) return true; /* pending exception; caller checks */ - scr_jb_write(b, j->data, j->len); - scr_str_release(j); - return true; - } + case SCR_DYN_TYPED_REF: { ScrDyn *materialized = scr_dyn_typed_ref_materialize(d); bool present = scr_dyn_json_write(b, materialized); @@ -4972,14 +4860,7 @@ ScrStr *scr_dyn_to_string(const ScrDyn *d, const ScrStr *enc) { static const char f[] = "function () { [native code] }"; return scr_str_new(f, sizeof f - 1); } - case SCR_DYN_JSVAL: { - /* The engine's own ToString (row 2 of the jsval→dyn op table): the - * real prototype chain runs — user toString included, its throw - * bridging. A bridged failure follows this function's existing - * throw shape (pending exception + the empty-string dummy). */ - ScrStr *s = scr_dyn_jsval_ops()->to_str(d->v.jsval.cell); - return s ? s : scr_str_new("", 0); - } + case SCR_DYN_TYPED_REF: { ScrDyn *materialized = scr_dyn_typed_ref_materialize(d); ScrStr *s = scr_dyn_to_string(materialized, enc); @@ -5075,13 +4956,7 @@ static bool scr_dyn_to_primitive_result_is_object(const ScrDyn *d) { case SCR_DYN_TYPED_REF: case SCR_DYN_PROXY: return true; - case SCR_DYN_JSVAL: - /* Engine scalars normally normalize into their native dyn kinds on - * ingress, but preserve the correct answer for any producer that keeps - * a wrapped object/function (or a defensively wrapped null). */ - return !scr_dyn_is_nullish(d) && - (scr_dyn_isl_typeof_is(d, "object") || - scr_dyn_isl_typeof_is(d, "function")); + default: return false; } @@ -5369,10 +5244,7 @@ static ScrDyn *scr_dyn_add_primitive(const ScrDyn *d) { scr_dyn_release(view); return out; } - if (d->kind == SCR_DYN_JSVAL) { - scr_dyn_isl_fence(d, "native addition"); - return NULL; - } + if (d->kind == SCR_DYN_OBJ) { static const char *const methods[] = { "valueOf", "toString" }; for (size_t i = 0; i < 2; i++) { @@ -5593,7 +5465,7 @@ bool scr_dyn_has_key(const ScrDyn *v, const ScrStr *key) { } if (scr_dyn_class_reflection_fence(v)) return false; if (v->kind == SCR_DYN_PROXY) return scr_dyn_proxy_has(v, key); - if (v->kind == SCR_DYN_JSVAL) return scr_dyn_isl_fence(v, "'in'"); + if (v->kind == SCR_DYN_TYPED_REF) { if (scr_typed_ref_array_has_own(v, key)) return true; ScrDyn *materialized = scr_dyn_typed_ref_materialize(v); @@ -5820,13 +5692,7 @@ void scr_dyn_key_set(ScrDyn *recv, ScrStr *key, ScrDyn *value) { return; } } - if (recv->kind == SCR_DYN_JSVAL) { - /* The write lands on the REAL engine object (aliasing preserved — - * island-side readers see it); the value crosses through the uniform - * from_dyn conversion, and engine refusals bridge catchably. */ - scr_dyn_jsval_ops()->key_set(recv->v.jsval.cell, key, value); - return; - } + ScrJsonBuf b; scr_jb_init(&b); if (recv->kind == SCR_DYN_UNDEF || recv->kind == SCR_DYN_NULL) { @@ -5945,21 +5811,7 @@ void scr_jb_put_dyn(ScrJsonBuf *b, const ScrDyn *d) { scr_jb_puts(b, "null"); /* the buffer never surfaces: the pending throw wins */ return; } - case SCR_DYN_JSVAL: { - /* The ENGINE's own JSON.stringify text splices in (toJSON protocols, - * cycle TypeErrors — all the engine's, bridged catchably). An engine - * FUNCTION serializes like the checked-dynamic tree's FUNC kind (dropped from objects - * by the member loop below; null defensively elsewhere). */ - if (scr_dyn_isl_typeof_is(d, "function")) { - scr_jb_puts(b, "null"); - return; - } - ScrStr *j = scr_dyn_jsval_ops()->to_json(d->v.jsval.cell); - if (!j) return; /* bridged — the pending throw wins */ - for (size_t i = 0; i < j->len; i++) scr_jb_putc(b, j->data[i]); - scr_str_release(j); - return; - } + case SCR_DYN_TYPED_REF: { ScrDyn *materialized = scr_dyn_typed_ref_materialize(d); scr_jb_put_dyn(b, materialized); @@ -5973,7 +5825,7 @@ void scr_jb_put_dyn(ScrJsonBuf *b, const ScrDyn *d) { const ScrDynEntry *e = &d->v.obj.entries[i]; if (!e->enumerable) continue; if (e->value->kind == SCR_DYN_UNDEF || e->value->kind == SCR_DYN_FUNC || e->value->kind == SCR_DYN_SYMBOL) continue; /* dropped, like Node */ - if (e->value->kind == SCR_DYN_JSVAL && scr_dyn_isl_typeof_is(e->value, "function")) continue; /* engine functions drop too */ + /* engine functions drop too */ if (!first) scr_jb_putc(b, ','); first = false; scr_jb_put_json_span(b, e->key, e->key_len); @@ -6021,9 +5873,7 @@ static const char *scr_dyn_kind_name(const ScrDyn *d) { case SCR_DYN_FUNC: return "function"; case SCR_DYN_HANDLE: return scr_dyn_handle_cls(d); /* "got IncomingMessage" */ case SCR_DYN_PROMISE: return "Promise"; /* "got Promise" */ - case SCR_DYN_JSVAL: return "an island value"; /* "got an island value" — validated - * extraction of engine-held values has no armed route yet (lane - * dom-jsval-long-tail); the failure names the world honestly. */ + case SCR_DYN_TYPED_REF: case SCR_DYN_PROXY: return "object"; } @@ -7154,14 +7004,8 @@ static bool scr_json_replaced_write(ScrJsonBuf *buffer, const ScrDyn *value, if (!view && replacer->kind == SCR_DYN_UNDEF && scr_json_plain_container(value)) return scr_json_plain_write(buffer, value, gap, depth); if (observed->kind != SCR_DYN_OBJ && observed->kind != SCR_DYN_ARR && observed->kind != SCR_DYN_BYTES) { - /* Engine objects need an engine callback bridge, not an opaque JSON - * splice: that would silently skip all their children. */ - if (observed->kind == SCR_DYN_JSVAL && replacer->kind != SCR_DYN_UNDEF) { - const char *message = "JSON replacers over engine-held values are not supported yet"; - scr_throw_error_msg(SCR_ERR_ERROR, message, strlen(message)); - scr_dyn_release(view); - return false; - } + + scr_dyn_json_write(buffer, observed); scr_dyn_release(view); return !scr_exc_pending(); @@ -7295,12 +7139,7 @@ bool scr_dyn_strict_eq(const ScrDyn *a, const ScrDyn *b) { case SCR_DYN_PROMISE: /* And the PROMISE: one promise crossing twice is one JS value. */ return a->v.promise == b->v.promise || (scr_dyn_promise_identity_fn && scr_dyn_promise_identity_fn(a->v.promise, b->v.promise)); - case SCR_DYN_JSVAL: - /* Identity is the ENGINE VALUE, not the box or even the cell: two - * wraps of one engine value compare ===-equal (the engine's own - * strict equality answers). Mixed kinds already answered false above - * — a dyn copy is a different object, which is Node's answer too. */ - return a == b || scr_dyn_jsval_ops()->strict_eq(a->v.jsval.cell, b->v.jsval.cell); + case SCR_DYN_TYPED_REF: /* A base-class view and a derived view still name the same object. * The compiler's type key governs checked extraction, not identity. */ @@ -7440,12 +7279,8 @@ void scr_sc_validate_options(const ScrDyn *options) { scr_dyn_release(view); return; } - /* An engine-held options bag IS a dictionary to Node — the "cannot be - * converted" TypeError would be a wrong claim. Loud fence. */ - if (options->kind == SCR_DYN_JSVAL) { - scr_dyn_isl_fence(options, "structuredClone options"); - return; - } + + if (options->kind != SCR_DYN_OBJ) { static const char msg[] = "Failed to execute 'structuredClone': Options cannot be converted to a dictionary"; @@ -7551,12 +7386,7 @@ static ScrDyn *scr_sc_clone(const ScrDyn *v, const ScrScParent *up) { } return out; } - case SCR_DYN_JSVAL: - /* Node CLONES a plain engine object — the DataCloneError default - * below would be a wrong claim, and fabricating a shape would be a - * silent wrong answer. Loud fence (lane dom-jsval-long-tail). */ - scr_dyn_isl_fence(v, "structuredClone"); - return NULL; + case SCR_DYN_TYPED_REF: { ScrDyn *materialized = scr_dyn_typed_ref_materialize(v); ScrDyn *out = scr_sc_clone(materialized, up); @@ -7607,11 +7437,7 @@ ScrDyn *scr_structured_clone_missing(void) { } bool scr_dyn_err_instanceof(const ScrDyn *d, double kind) { - /* A JSVAL node never came from a runtime ScrError, so the cache miss - * below answers false — the documented contract ("a dyn value that - * never came from an error answers false"). An ENGINE TypeError held - * in 'unknown' thus answers false where Node answers true: covered by - * lane dom-jsval-long-tail (needs the engine's class instanceof). */ + for (size_t i = 0; i < scr_errdyn_n; i++) { if (scr_errdyn_cache[i].dyn == d) { const ScrVt *vt = scr_errdyn_cache[i].err->vt; @@ -8046,8 +7872,7 @@ ScrDyn *scr_dyn_get_own_property_descriptors(ScrDyn *object) { scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1); return NULL; } - if (object->kind == SCR_DYN_PROXY || - object->kind == SCR_DYN_JSVAL || object->kind == SCR_DYN_HANDLE) { + if (object->kind == SCR_DYN_PROXY || object->kind == SCR_DYN_HANDLE) { static const char message[] = "Object.getOwnPropertyDescriptors on this value is not supported yet"; scr_throw_error_msg(SCR_ERR_ERROR, message, sizeof message - 1); return NULL; @@ -8145,7 +7970,7 @@ static ScrDyn *scr_dyn_objwalk(const ScrDyn *v, ScrObjWalk mode) { scr_dyn_release(names); } if (!raw) return NULL; - if (raw->kind == SCR_DYN_TYPED_REF && scr_dyn_isl_is_array(raw)) { + if (raw->kind == SCR_DYN_TYPED_REF && scr_dyn_ref_is_array(raw)) { ScrDyn *view = scr_dyn_typed_ref_materialize(raw); scr_dyn_release(raw); raw = view; @@ -8216,12 +8041,7 @@ static ScrDyn *scr_dyn_objwalk(const ScrDyn *v, ScrObjWalk mode) { scr_throw_error_msg(SCR_ERR_TYPE, msg, sizeof msg - 1); return NULL; } - if (v->kind == SCR_DYN_JSVAL) { - /* The ENGINE walks its own object (own-key order, getters running, - * Object.entries' pairs) and the results come back as a NATIVE dyn - * array — keys are dyn strings, values wrap per element. */ - return scr_dyn_jsval_ops()->obj_walk(v->v.jsval.cell, (int)mode); - } + ScrDyn *out = scr_dyn_new_arr(); if (v->kind == SCR_DYN_OBJ || v->kind == SCR_DYN_FUNC) { ScrDyn *table = v->kind == SCR_DYN_FUNC ? scr_dyn_fn_properties(v) : scr_dyn_retain((ScrDyn *)v); @@ -8307,7 +8127,7 @@ ScrDyn *scr_dyn_obj_keys(const ScrDyn *v) { return scr_dyn_objwalk(v, SCR_OBJWAL * Non-enumerable own names shadow names farther up the chain. */ ScrDyn *scr_dyn_for_in_keys(const ScrDyn *v) { if (scr_dyn_class_reflection_fence(v)) return NULL; - if (v->kind == SCR_DYN_TYPED_REF && (scr_dyn_isl_is_array(v) || + if (v->kind == SCR_DYN_TYPED_REF && (scr_dyn_ref_is_array(v) || !strncmp(v->v.typed_ref.type_key, "record:", 7))) { ScrDyn *view = scr_dyn_typed_ref_materialize(v); ScrDyn *keys = scr_exc_pending() ? NULL : scr_dyn_for_in_keys(view); @@ -8472,14 +8292,7 @@ ScrDyn *scr_dyn_assign(ScrDyn *target, const ScrDyn *src) { scr_throw_error_msg(SCR_ERR_TYPE, m, strlen(m)); return NULL; } - if (target->kind == SCR_DYN_JSVAL) { - /* An ENGINE target: the copy runs in the engine (Object.assign's own - * semantics — setters fire, own-enumerable order); the source enters - * per the uniform conversion (a wrapped source spreads by reference, - * dyn data as the usual member deep copy). */ - if (!scr_dyn_jsval_ops()->assign(target->v.jsval.cell, src)) return NULL; - return scr_dyn_retain(target); - } + if (target->kind == SCR_DYN_TYPED_REF) { ScrDyn *materialized = scr_dyn_typed_ref_materialize(target); ScrDyn *assigned = scr_dyn_assign(materialized, src); @@ -8488,23 +8301,7 @@ ScrDyn *scr_dyn_assign(ScrDyn *target, const ScrDyn *src) { scr_dyn_release(materialized); return scr_exc_pending() ? NULL : scr_dyn_retain(target); } - if (src->kind == SCR_DYN_JSVAL) { - /* A wrapped SOURCE onto a dyn target: the engine lists its own - * [key, value] pairs (getters running) and each lands as a dyn - * member — values wrap per element, scalars normalized. */ - if (target->kind == SCR_DYN_OBJ) { - ScrDyn *entries = scr_dyn_jsval_ops()->obj_walk(src->v.jsval.cell, 2); - if (!entries) return NULL; - for (size_t i = 0; i < entries->v.arr.len; i++) { - const ScrDyn *pair = entries->v.arr.items[i]; - const ScrDyn *k = pair->v.arr.items[0]; - scr_dyn_key_set(target, k->v.str, pair->v.arr.items[1]); - if (scr_exc_pending()) break; - } - scr_dyn_release(entries); - } - return scr_exc_pending() ? NULL : scr_dyn_retain(target); - } + scr_dyn_assign_from(target, src, false); return scr_exc_pending() ? NULL : scr_dyn_retain(target); } @@ -8513,13 +8310,7 @@ ScrDyn *scr_dyn_assign(ScrDyn *target, const ScrDyn *src) { * setters and replacing configurable accessors on the fresh literal. */ ScrDyn *scr_dyn_copy_data_properties(ScrDyn *target, const ScrDyn *src) { if (target->kind != SCR_DYN_OBJ) return NULL; /* compiler-owned literal */ - if (src->kind == SCR_DYN_JSVAL) { - ScrDyn *copy = scr_dyn_new_obj(); - ScrDyn *assigned = scr_dyn_assign(copy, src); - if (assigned) scr_dyn_assign_from(target, assigned, true); - scr_dyn_release(assigned); - scr_dyn_release(copy); - } else scr_dyn_assign_from(target, src, true); + scr_dyn_assign_from(target, src, true); return scr_exc_pending() ? NULL : scr_dyn_retain(target); } @@ -8624,18 +8415,7 @@ void scr_dyn_pack_push_spread_iter(ScrDyn *pack, const ScrDyn *src) { scr_dyn_arr_push_spread(pack, src, ""); /* iterable kinds never throw */ return; } - if (src->kind == SCR_DYN_JSVAL) { - /* A wrapped engine value on the ITERATED path: the engine's own - * protocol drains (the kind wording on a non-iterable — the - * iterated path's value-describing texts, engine-side). */ - ScrDyn *drained = scr_dyn_jsval_ops()->iter_drain(src->v.jsval.cell, false, NULL); - if (!drained) return; /* pending */ - for (size_t i = 0; i < drained->v.arr.len; i++) { - scr_dyn_arr_push(pack, scr_dyn_retain(drained->v.arr.items[i])); - } - scr_dyn_release(drained); - return; - } + ScrJsonBuf b; scr_jb_init(&b); switch (src->kind) { @@ -8760,12 +8540,8 @@ bool scr_dyn_has_own(const ScrDyn *v, const ScrStr *key) { scr_throw_error_msg(SCR_ERR_TYPE, m, strlen(m)); return false; } - /* Engine-held: the ENGINE's own Object.hasOwn answers (a bridged - * surprise leaves the exception pending and answers false — callers - * check pending like every fallible dyn op). */ - if (v->kind == SCR_DYN_JSVAL) { - return scr_dyn_jsval_ops()->has_own(v->v.jsval.cell, key) == 1; - } + + if (v->kind == SCR_DYN_OBJ) { return scr_dyn_obj_get(v, key->data, key->len) != NULL; } @@ -8915,7 +8691,6 @@ void scr_error_define_cause(ScrError *e, ScrDyn *value) { scr_error_set_cause(e, value); } - void scr_error_delete_cause(ScrError *e) { for (size_t i = 0; i < scr_errdyn_n; i++) { if (scr_errdyn_cache[i].err != e) continue; @@ -9669,8 +9444,7 @@ static int scr_weak_key(const ScrDyn *key, void **ptr, unsigned *kind) { *ptr = key->v.typed_ref.ptr; *kind = 32; return 1; case SCR_DYN_PROMISE: *ptr = key->v.promise; *kind = 33; return 1; - case SCR_DYN_JSVAL: - return -1; + default: return 0; } } @@ -9782,7 +9556,7 @@ static ScrDyn *scr_dyn_entry_read(const ScrDyn *entry, unsigned index) { case SCR_DYN_BYTES: result = scr_dyn_bytes_key_get(entry, key); break; case SCR_DYN_HANDLE: result = scr_dyn_handle_key_get(entry, key); break; case SCR_DYN_FUNC: result = scr_dyn_fn_get(entry, &name, 1); break; - case SCR_DYN_JSVAL: result = scr_dyn_isl_key_get(entry, key); break; + default: break; } scr_str_release(key); @@ -10009,8 +9783,7 @@ static ScrDyn *scr_native_set_invoke(void *ptr, ScrDyn *self, const char *method if (strcmp(method, "values") == 0 || strcmp(method, "keys") == 0) return scr_native_collection_iterator(self, 0); if (strcmp(method, "entries") == 0) return scr_native_collection_iterator(self, 2); if (strcmp(method, "forEach") == 0) { - if (value->kind != SCR_DYN_FUNC && - !(value->kind == SCR_DYN_JSVAL && scr_dyn_isl_typeof_is(value, "function"))) { + if (value->kind != SCR_DYN_FUNC) { ScrJsonBuf message; scr_jb_init(&message); switch (value->kind) { @@ -10125,7 +9898,7 @@ static ScrDyn *scr_native_map_invoke(void *ptr, ScrDyn *self, const char *method if (strcmp(method, "keys") == 0) return scr_native_collection_iterator(self, 1); if (strcmp(method, "entries") == 0) return scr_native_collection_iterator(self, 2); if (strcmp(method, "forEach") == 0) { - if (key->kind != SCR_DYN_FUNC && !(key->kind == SCR_DYN_JSVAL && scr_dyn_isl_typeof_is(key, "function"))) { + if (key->kind != SCR_DYN_FUNC) { /* Validate even when there are no entries to visit. */ ScrDyn *result = scr_dyn_call(key, NULL, 0, "callback"); scr_dyn_release(result); diff --git a/packages/runtime/src/scr_lib.c b/packages/runtime/src/scr_lib.c index 0e4ce71ce..5a2df7e91 100644 --- a/packages/runtime/src/scr_lib.c +++ b/packages/runtime/src/scr_lib.c @@ -527,9 +527,6 @@ ScrArr *scr_module_cache_keys(void) { return keys; } -/* Raw argv accessors for the island's process shim (scr_island.c): the - * island's process.argv must match the static world's ["scriptc", - * argv[0], ...] shape exactly, so both build from the same stash. */ int scr_lib_arg_count(void) { #if defined(_WIN32) && !defined(SCR_LIB) scr_lib_prepare_utf8_argv(); @@ -1425,7 +1422,7 @@ ScrStr *scr_os_user_homedir(void) { return scr_os_homedir(); } ScrStr *scr_os_release(void) { return scr_str_new("", 0); } ScrStr *scr_os_type(void) { return scr_str_new("WASI", 4); } double scr_os_totalmem(void) { return 0; } -/* One thread of execution, as the dynamic island's os answers. */ +/* WASI modules run on one thread of execution. */ double scr_os_available_parallelism(void) { return 1; } /* The guest temp namespace is stable across hosts. `scriptc run` preopens * the host's /tmp at this path; other WASI hosts can provide the same @@ -2689,7 +2686,6 @@ ScrStr *scr_fs_read_file(ScrStr *path) { return scr_fs_read_file_core(path, false); } - static ScrStr *scr_fs_realpath_common(ScrStr *path, const char *op) { #ifdef _WIN32 WCHAR *wide = scr_fs_win_wide(path); @@ -5259,12 +5255,6 @@ ScrStr *scr_crypto_random_string(double n, ScrStr *enc) { return out; } -/* ── incremental MD5/SHA-1/SHA-2 and HMAC ────────────────────────── - * The first-class Hash/Hmac handles, fused one-shot paths, island bridge, - * and PBKDF2 all share these contexts. Hash.copy() is a context snapshot; - * update never buffers the full input. Differential tests pin every - * algorithm against Node's implementation. */ - static const uint32_t scr_sha256_k[64] = { 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, @@ -5849,9 +5839,6 @@ static size_t scr_hmac_final(const ScrDigestCtx *inner, const ScrDigestCtx *oute return n; } -/* One-shot digest/HMAC by algorithm name — the island bridge and static - * helpers both use the incremental core. Returns zero for an unknown - * algorithm, preserving the island's unsupported-digest probe. */ size_t scr_crypto_digest_raw(const char *alg, const unsigned char *data, size_t len, unsigned char out[64]) { ScrDigestAlg kind; diff --git a/packages/runtime/src/scr_map.c b/packages/runtime/src/scr_map.c index 84adf177f..e85393b57 100644 --- a/packages/runtime/src/scr_map.c +++ b/packages/runtime/src/scr_map.c @@ -143,9 +143,8 @@ static uint64_t scr_map_hash_dyn(const ScrDyn *d) { // must also agree when a key crosses the boundary in either form. kind = SCR_DYN_OBJ; break; - /* The optional island bridge exposes equality but no hash. A shared - * bucket still preserves correctness without adding an engine dependency. */ - case SCR_DYN_JSVAL: value = 0; break; + + default: value = scr_map_slot_from_ptr((void *)d); break; } return scr_map_hash_word(value) ^ kind; diff --git a/packages/runtime/src/scr_net.c b/packages/runtime/src/scr_net.c index 0ca12248d..743c36c6d 100644 --- a/packages/runtime/src/scr_net.c +++ b/packages/runtime/src/scr_net.c @@ -1,93 +1,4 @@ -/* node:net — the inbound-networking slice: TCP servers and sockets over - * the event loop's readiness poller, the first LISTENING capability of - * the runtime. The poller is the scr_platform.h contract — kqueue on - * macOS/BSD (scr_loop_kqueue.c, a stateless spelling of the syscall - * sequences this file inlined historically), epoll+timerfd on Linux - * (scr_loop_epoll.c). Two Linux-only obligations shape this file's use - * of the seam: a watched fd is scrp_forget-ed BEFORE close(2) (epoll - * registrations can outlive a close; the kqueue backend's forget is a - * no-op so macOS behavior is untouched), and socket sends go through - * scr_net_send (MSG_NOSIGNAL where it exists) because Linux has no - * SO_NOSIGPIPE — a write to a closed peer must surface as an 'error' - * event, never a process-killing SIGPIPE. - * - * ── Design note (the server core) ──────────────────────────────────── - * - * Object model. Two refcounted handle kinds, both LEAN allocations (no - * cycle header — the child precedent): ScrNetServer (a listener: fd, - * bound port, connection/error/close listener lists) and ScrNetSocket (a - * connection: fd, a state machine over the read/write halves, a growable - * write buffer, data/end/close/error/connect listener lists, an optional - * pipe destination, and — for accepted sockets — a +1 backref to the - * owning server so its connection count can gate the server's 'close'). - * Listeners MOVE in (+1) and are released when the handle settles (a - * socket's 'close' fired, a server's 'close' fired, or the listen/connect - * failure delivered) — so a listener capturing its own handle cannot - * cycle past settlement, exactly the ScrChild ownership story. Handles a - * program abandons at exit are released by the unit's atexit cleanup, so - * the RC audit never mistakes a process-lifetime server for a leak. - * - * Event dispatch. One poller owned by this unit (lazily created), fds all - * non-blocking. The loop (scr_async.c) calls scr_net_dispatch() at every - * turn top — the scr_events.c hook shape — which alternates two phases - * until neither has work: (1) a SWEEP delivering deferred emits - * ('listening' callbacks, listen/connect failures, socket 'close', then - * server 'close' — socket-before-server order is what lets a drained - * server observe its last connection die in the same pass), and (2) a - * zero-timeout poller drain (accepts, reads, connect completions, write - * flushes) whose callbacks fire directly, macrotask-style on the main - * stack. The alternation stops early when a callback enqueued microtasks - * (scr_loop_has_ready) so promise jobs interleave between event batches, - * or when a callback threw (the loop surfaces the uncaught exception). - * Between turns the loop's idle poll(2) watches this unit's poller FD — - * kqueue and epoll fds both poll readable while events are pending — so socket - * readiness ends the sleep immediately; while curl's io poll owns the - * sleep instead (a --dynamic fetch in flight), net latency is capped at - * the signal-poll granularity, like signals. - * - * Read model. Sockets are CONSUMER-DRIVEN like the stdin slice: the read - * filter is armed only while a consumer exists (a 'data' listener or a - * pipe destination), one read(2) per arrived chunk, delivered borrowed to - * the listener snapshot (Node's emit-over-a-copy semantics; `once` - * entries leave the live list before running) and appended to the pipe - * destination. EOF fires 'end', then — allowHalfOpen is always false, the - * Node default — ends the write half; when both halves are done the fd - * closes and 'close' fires on the next sweep. - * - * Write model. write() attempts the syscall immediately when nothing is - * buffered (the common case: small responses go out in one call) and - * buffers the remainder with the write filter armed; end() marks the - * write half ENDING so the FIN (shutdown) goes out when the buffer - * drains. Backpressure is not modeled — Node's write() returns false and - * keeps buffering; this write() is void and buffers without bound. - * - * Loop liveness. A handle keeps the process alive from listen()/connect() - * until its 'close' delivers (scr_net_pending — the loop's exhaustion - * test): a listening server is a live interval, server.close() releases - * once every accepted connection drains, and an open socket holds the - * loop like Node's active TCP handle. A server that never listened and a - * socket already closed hold nothing. - * - * Close semantics, Node-matched: server.close() stops accepting NOW - * (the listening fd closes) and fires close callbacks + 'close' when the - * connection count reaches zero; socket 'end' precedes 'close'; - * connect/listen failures fire 'error' then 'close' ('error' with no - * listener prints the error and exits 1 — the unhandled-'error' - * EventEmitter behavior, the child precedent); listeners registered - * after settlement release immediately and never fire; 'listening' (the - * listen callback) is deferred to the next dispatch pass, Node's - * next-tick emit. - * - * The differential harness pattern (tests/harness/server.test.ts): a - * LISTENING program cannot be compared by stdout alone — something must - * talk to it. Each fixture binds port 0, reports the real port over - * stderr (`PORT \n` — stderr is never compared), and a per-case Node - * driver script issues the same requests against both lanes; the SERVER - * program's stdout/exit code and the DRIVER's stdout must each match - * byte-for-byte between the Node lane and the compiled lane. Ephemeral - * ports never appear in compared output. This is the template TLS/http2 - * lanes inherit. - */ + #include "scr_platform.h" #include "scr_runtime.h" @@ -1886,14 +1797,7 @@ static void scr_net_server_accept(ScrNetServer *srv) { * 127.0.0.1 — the documented divergence from Node's family autoselect). * The connect callback registers as once('connect'). Never throws: every * failure is the async 'error' event, like Node. */ -/* Blocking first-answer hostname resolution for the CLIENT bridges (the - * native fetch, the island's http/https client) — the dns.lookup - * precedent (scr_dgram.c): getaddrinfo runs AT CALL TIME, first answer - * wins. Returns +1: the resolved IP string, or a RETAIN of `host` when it - * is already an IP literal or localhost (scr_net_connect's own arms) or - * unresolvable — the dial's deferred "getaddrinfo ENOTFOUND host" error - * is then Node's exact cause shape. node:net's own connect surface stays - * resolver-less on purpose (Node's async lookup semantics are not this). */ + ScrStr *scr_net_blocking_lookup(ScrStr *host /*borrowed*/) { if (host->len == 9 && memcmp(host->data, "localhost", 9) == 0) return scr_str_retain(host); struct in_addr a4; diff --git a/packages/runtime/src/scr_net_island.c b/packages/runtime/src/scr_net_island.c deleted file mode 100644 index 74c9278b9..000000000 --- a/packages/runtime/src/scr_net_island.c +++ /dev/null @@ -1,458 +0,0 @@ -/* The island's node:http/node:https CLIENT ↔ the socket units — the one - * translation unit referencing BOTH scr_http/scr_tls and the engine (the - * scr_zlib_island.c precedent): native-toolchain.ts compiles it exactly when a - * --dynamic build links the socket units, and the emitted main calls - * scr_net_island_install before any island entry. Builds without it keep - * the island's "does not provide the 'node:http' builtin" refusal. - * - * The shape is the native fetch bridge's, one level lower: the island's - * http/https shims (scr_island.c's bootstrap) call host.httpStart with a - * request description and a callbacks object; this unit runs ONE - * ScrHttpClientReq per exchange over scr_net (+ the scr_tls client - * transport for https, SNI/verify against the request hostname while the - * socket dials the blocking-lookup answer), and minted runtime closures - * feed status/headers/body/error events back into the engine from the - * net dispatch station. No redirects, no decompression, no default - * accept-* headers — node:http's client semantics, not fetch's; the wire - * head is the static lane's (scr_http_client_send_head: user headers, - * Host, Connection: keep-alive, the framing header), with the Host - * header pre-filled here from the HOSTNAME because the dial target may - * be a resolved IP. - * - * Ownership mirrors scr_fetch.c exactly: each exchange is refcounted — - * the live registry holds +1 and every minted listener closure's box - * holds +1; settling releases the engine callbacks object and the client - * handle, and teardown (registered with the island) frees whatever is - * still live before the engine goes down, so the island audit stays - * zero. */ -#ifdef SCR_DYNAMIC - -#include "scr_runtime.h" - -#include -#include -#include - -#include "quickjs.h" - -static void ni_oom(void) { - fputs("scriptc: out of memory\n", stderr); - abort(); -} - -/* ── exchanges ───────────────────────────────────────────────────────── */ - -typedef struct NiReq { - size_t rc; /* the live registry's +1 plus one per minted listener box */ - int id; - JSContext *ctx; - JSValue cbs; /* { onResponse, onData, onEnd, onError, onResError, - * onTimeout, onClose } — owned while live */ - bool cbs_live; - ScrHttpClientReq *client; /* +1 */ - bool responded; - bool done; /* settled: no callback ever fires again */ - struct NiReq *next; -} NiReq; - -static NiReq *ni_live = NULL; /* registry: +1 each */ -static int ni_next_id = 1; - -static NiReq *ni_retain(NiReq *t) { - t->rc++; - return t; -} - -static void ni_release(NiReq *t) { - if (--t->rc > 0) return; - if (t->client) scr_http_client_release(t->client); - if (t->cbs_live) JS_FreeValue(t->ctx, t->cbs); - free(t); -} - -static void *ni_retain_v(void *p) { return ni_retain((NiReq *)p); } -static void ni_release_v(void *p) { ni_release((NiReq *)p); } - -/* Settle: drop the client, free the engine callbacks, leave the registry. - * Idempotent. */ -static void ni_settle(NiReq *t) { - if (t->done) return; - t->done = true; - if (t->client) { - scr_http_client_release(t->client); - t->client = NULL; - } - if (t->cbs_live) { - JS_FreeValue(t->ctx, t->cbs); - t->cbs = JS_UNDEFINED; - t->cbs_live = false; - } - for (NiReq **link = &ni_live; *link; link = &(*link)->next) { - if (*link == t) { - *link = t->next; - ni_release(t); /* the registry's +1 */ - return; - } - } -} - -static NiReq *ni_find(int id) { - for (NiReq *t = ni_live; t; t = t->next) { - if (t->id == id) return t; - } - return NULL; -} - -/* Entered from the net dispatch station: re-anchor, call, swallow (but - * report) engine exceptions — the callbacks are our own shim glue. */ -static void ni_call(NiReq *t, const char *name, int argc, JSValueConst *argv) { - if (!t->cbs_live) return; - scr_island_host_enter(); - JSContext *ctx = t->ctx; - JSValue fn = JS_GetPropertyStr(ctx, t->cbs, name); - JSValue r = JS_Call(ctx, fn, JS_UNDEFINED, argc, argv); - JS_FreeValue(ctx, fn); - if (JS_IsException(r)) { - JSValue e = JS_GetException(ctx); - const char *msg = JS_ToCString(ctx, e); - fprintf(stderr, "scriptc: island http callback '%s' threw: %s\n", name, msg ? msg : "?"); - if (msg) JS_FreeCString(ctx, msg); - JS_FreeValue(ctx, e); - return; - } - JS_FreeValue(ctx, r); -} - -/* ── minted listener closures (caps[0] boxes the exchange) ───────────── */ - -static ScrClosure *ni_closure(NiReq *t, void *fn) { - ScrClosure *cb = scr_closure_new(fn, 1); - ScrBox *box = scr_box_new_obj(&ni_retain_v, &ni_release_v, NULL); - scr_box_set_ref(box, ni_retain(t)); - cb->caps[0] = box; - return cb; -} - -static NiReq *ni_from(ScrClosure *cb) { return (NiReq *)scr_box_get_ref(cb->caps[0]); } - -/* ── listener callbacks ──────────────────────────────────────────────── */ - -static void ni_on_data(ScrClosure *cb, ScrBytes *chunk /*borrowed*/) { - NiReq *t = ni_from(cb); - if (t == NULL) return; - if (!t->done && chunk->len > 0) { - JSValue u8 = JS_NewUint8ArrayCopy(t->ctx, chunk->data, chunk->len); - ni_call(t, "onData", 1, (JSValueConst *)&u8); - JS_FreeValue(t->ctx, u8); - } - ni_release(t); -} - -static void ni_on_end(ScrClosure *cb) { - NiReq *t = ni_from(cb); - if (t == NULL) return; - if (!t->done) ni_call(t, "onEnd", 0, NULL); - ni_release(t); -} - -/* Mid-body death: 'aborted' on the RESPONSE (Node's shape — the shim - * emits it on the res). */ -static void ni_on_res_error(ScrClosure *cb, ScrStr *msg /*borrowed*/) { - NiReq *t = ni_from(cb); - if (t == NULL) return; - if (!t->done) { - JSValue m = JS_NewStringLen(t->ctx, msg->data, msg->len); - ni_call(t, "onResError", 1, (JSValueConst *)&m); - JS_FreeValue(t->ctx, m); - } - ni_release(t); -} - -static void ni_on_response(ScrClosure *cb, ScrHttpReq *res /*+1*/) { - NiReq *t = ni_from(cb); - if (t == NULL) { - scr_http_req_release(res); - return; - } - if (t->done) { - scr_http_req_release(res); - ni_release(t); - return; - } - t->responded = true; - JSContext *ctx = t->ctx; - ScrArr *raw = scr_http_req_raw_headers(res); - size_t nraw = (size_t)scr_arr_len(raw); - JSValue hdrs = JS_NewArray(ctx); - for (size_t i = 0; i < nraw; i++) { - ScrStr *s = (ScrStr *)scr_arr_get_ref(raw, (double)i); - JS_SetPropertyUint32(ctx, hdrs, (uint32_t)i, JS_NewStringLen(ctx, s->data, s->len)); - scr_str_release(s); - } - scr_arr_release(raw); - ScrStr *stext = scr_http_req_status_message(res); - JSValue argv[3] = { - JS_NewInt32(ctx, (int)scr_http_req_status(res)), - JS_NewStringLen(ctx, stext ? stext->data : "", stext ? stext->len : 0), - hdrs, - }; - if (stext) scr_str_release(stext); - ni_call(t, "onResponse", 3, argv); - for (int i = 0; i < 3; i++) JS_FreeValue(ctx, argv[i]); - /* body listeners, registered inside the 'response' emit (the parser - * delivers body bytes only after this returns) */ - scr_http_req_on_data(res, ni_closure(t, (void *)&ni_on_data), &ni_on_data, false); - scr_http_req_on_end(res, ni_closure(t, (void *)&ni_on_end), false); - scr_http_req_on_error(res, ni_closure(t, (void *)&ni_on_res_error), &ni_on_res_error, false); - scr_http_req_release(res); - ni_release(t); -} - -static void ni_on_client_error(ScrClosure *cb, ScrStr *msg /*borrowed*/) { - NiReq *t = ni_from(cb); - if (t == NULL) return; - if (!t->done && !t->responded) { - /* the net layer's message IS Node's ('connect ECONNREFUSED ip:port', - * 'getaddrinfo ENOTFOUND host', 'socket hang up') — the shim shapes - * the Error and derives the code. The exchange settles at the close - * that always follows, so 'error' precedes 'close' like Node. */ - JSValue m = JS_NewStringLen(t->ctx, msg->data, msg->len); - ni_call(t, "onError", 1, (JSValueConst *)&m); - JS_FreeValue(t->ctx, m); - } - ni_release(t); -} - -static void ni_on_timeout(ScrClosure *cb) { - NiReq *t = ni_from(cb); - if (t == NULL) return; - if (!t->done) ni_call(t, "onTimeout", 0, NULL); - ni_release(t); -} - -/* The exchange's 'close' (deferred through the http emit queue — Node's - * later-than-the-handler ordering: res 'end', req 'close', res 'close'). */ -static void ni_on_close(ScrClosure *cb) { - NiReq *t = ni_from(cb); - if (t == NULL) return; - ni_call(t, "onClose", 0, NULL); /* no-op once settled */ - ni_settle(t); - ni_release(t); -} - -/* ── host functions (called by the http shim, inside the engine) ─────── */ - -/* host.httpStart(secure, host, port, path, method, timeoutMs, - * headersFlat, cbs) → id. The request head buffers until write/end - * pushes bytes; the shim starts the exchange lazily at first write/end/ - * flushHeaders so setHeader-after-construction keeps working. */ -static JSValue ni_host_start(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - if (argc < 8) return JS_ThrowTypeError(ctx, "httpStart: bad arity"); - bool secure = JS_ToBool(ctx, argv[0]) > 0; - const char *host = JS_ToCString(ctx, argv[1]); - if (!host) return JS_EXCEPTION; - int32_t port = 0; - JS_ToInt32(ctx, &port, argv[2]); - const char *path = JS_ToCString(ctx, argv[3]); - const char *method = JS_ToCString(ctx, argv[4]); - double timeout_ms = 0; - JS_ToFloat64(ctx, &timeout_ms, argv[5]); - if (!path || !method) { - JS_FreeCString(ctx, host); - if (path) JS_FreeCString(ctx, path); - if (method) JS_FreeCString(ctx, method); - return JS_EXCEPTION; - } - - ScrStr *hostname = scr_str_new(host, strlen(host)); - ScrStr *pathstr = scr_str_new(path, strlen(path)); - ScrStr *methodstr = scr_str_new(method, strlen(method)); - JS_FreeCString(ctx, host); - JS_FreeCString(ctx, path); - JS_FreeCString(ctx, method); - - /* user headers, plus Host from the HOSTNAME (the dial target below may - * be a resolved IP; Node's rule — the default port stays off) */ - JSValue lenv = JS_GetPropertyStr(ctx, argv[6], "length"); - uint32_t hn = 0; - JS_ToUint32(ctx, &hn, lenv); - JS_FreeValue(ctx, lenv); - ScrArr *pairs = scr_arr_new(SCR_ELEM_STR, hn + 2); - bool has_host = false; - for (uint32_t i = 0; i + 1 < hn; i += 2) { - JSValue nv = JS_GetPropertyUint32(ctx, argv[6], i); - JSValue vv = JS_GetPropertyUint32(ctx, argv[6], i + 1); - size_t nlen = 0, vlen = 0; - const char *hname = JS_ToCStringLen(ctx, &nlen, nv); - const char *hvalue = JS_ToCStringLen(ctx, &vlen, vv); - if (hname && hvalue) { - if (nlen == 4) { - char l[4]; - for (int k = 0; k < 4; k++) l[k] = (char)(hname[k] | 0x20); - if (memcmp(l, "host", 4) == 0) has_host = true; - } - scr_arr_push_ref(pairs, scr_str_new(hname, nlen)); - scr_arr_push_ref(pairs, scr_str_new(hvalue, vlen)); - } - if (hname) JS_FreeCString(ctx, hname); - if (hvalue) JS_FreeCString(ctx, hvalue); - JS_FreeValue(ctx, nv); - JS_FreeValue(ctx, vv); - } - int default_port = secure ? 443 : 80; - if (!has_host) { - char authority[300]; - int alen; - bool v6 = memchr(hostname->data, ':', hostname->len) != NULL; - if (port != default_port) { - alen = snprintf(authority, sizeof authority, v6 ? "[%.*s]:%d" : "%.*s:%d", - (int)hostname->len, hostname->data, port); - } else { - alen = snprintf(authority, sizeof authority, v6 ? "[%.*s]" : "%.*s", - (int)hostname->len, hostname->data); - } - scr_arr_push_ref(pairs, scr_str_new("Host", 4)); - scr_arr_push_ref(pairs, scr_str_new(authority, (size_t)alen)); - } - - NiReq *t = calloc(1, sizeof *t); - if (!t) ni_oom(); - t->rc = 1; /* the registry's */ - t->ctx = ctx; - t->id = ni_next_id++; - t->cbs = JS_DupValue(ctx, argv[7]); - t->cbs_live = true; - - ScrStr *dial = scr_net_blocking_lookup(hostname); - ScrHttpClientReq *c; - if (secure) { - void *cli = scr_tls_fetch_client_ctx(hostname, true); - c = scr_http_request_ex(dial, (double)port, pathstr, methodstr, timeout_ms, pairs, false, - NULL, NULL, 443, &scr_tls_fetch_client_wrap, cli); - } else { - c = scr_http_request_ex(dial, (double)port, pathstr, methodstr, timeout_ms, pairs, false, - NULL, NULL, 80, NULL, NULL); - } - scr_str_release(dial); - scr_str_release(hostname); - scr_str_release(pathstr); - scr_str_release(methodstr); - scr_arr_release(pairs); - - t->client = c; /* the constructor's +1 */ - scr_http_client_on_response(c, ni_closure(t, (void *)&ni_on_response), &ni_on_response, true); - scr_http_client_on_error(c, ni_closure(t, (void *)&ni_on_client_error), &ni_on_client_error, false); - scr_http_client_on_timeout(c, ni_closure(t, (void *)&ni_on_timeout), false); - scr_http_client_on_close(c, ni_closure(t, (void *)&ni_on_close), true); - - t->next = ni_live; - ni_live = t; - return JS_NewInt32(ctx, t->id); -} - -/* host.httpWrite(id, u8) / host.httpEnd(id[, u8]) — body bytes. */ -static JSValue ni_host_write(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t id = 0; - JS_ToInt32(ctx, &id, argv[0]); - NiReq *t = ni_find(id); - if (t == NULL || t->client == NULL) return JS_UNDEFINED; - size_t blen = 0; - uint8_t *bytes = JS_GetUint8Array(ctx, &blen, argv[1]); - if (bytes != NULL && blen > 0) { - ScrBytes *b = scr_bytes_new(SCR_BYTES_U8, (double)blen); - memcpy(b->data, bytes, blen); - scr_http_client_write_bytes(t->client, b); - scr_bytes_release(b); - } - return JS_UNDEFINED; -} - -static JSValue ni_host_end(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - int32_t id = 0; - JS_ToInt32(ctx, &id, argv[0]); - NiReq *t = ni_find(id); - if (t == NULL || t->client == NULL) return JS_UNDEFINED; - if (argc > 1 && !JS_IsUndefined(argv[1]) && !JS_IsNull(argv[1])) { - size_t blen = 0; - uint8_t *bytes = JS_GetUint8Array(ctx, &blen, argv[1]); - if (bytes != NULL || blen == 0) { - ScrBytes *b = scr_bytes_new(SCR_BYTES_U8, (double)blen); - if (blen > 0) memcpy(b->data, bytes, blen); - scr_http_client_end_bytes(t->client, b); - scr_bytes_release(b); - return JS_UNDEFINED; - } - } - scr_http_client_end(t->client); - return JS_UNDEFINED; -} - -/* host.httpDestroy(id): tears the connection down NOW and lets the - * natural teardown events flow — Node's destroy() mid-flight emits - * 'socket hang up' then 'close' (oracle-pinned by the island-http - * fixture), which is exactly the premature-close path scr_http.c - * classifies; after a completed response the teardown is quiet. The - * close event settles the exchange. */ -static JSValue ni_host_destroy(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t id = 0; - JS_ToInt32(ctx, &id, argv[0]); - NiReq *t = ni_find(id); - if (t != NULL && t->client != NULL) scr_http_client_destroy(t->client); - return JS_UNDEFINED; -} - -/* host.httpSetTimeout(id, ms): the socket idle timer (0 disables). */ -static JSValue ni_host_set_timeout(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t id = 0; - JS_ToInt32(ctx, &id, argv[0]); - double ms = 0; - JS_ToFloat64(ctx, &ms, argv[1]); - NiReq *t = ni_find(id); - if (t != NULL && t->client != NULL) scr_http_client_set_timeout(t->client, ms); - return JS_UNDEFINED; -} - -/* ── attach / teardown (registered with the island) ──────────────────── */ - -static void ni_attach(void *jsctx, void *host_obj) { - JSContext *ctx = (JSContext *)jsctx; - JSValueConst host = *(JSValueConst *)host_obj; - JS_SetPropertyStr(ctx, host, "httpStart", JS_NewCFunction(ctx, ni_host_start, "httpStart", 8)); - JS_SetPropertyStr(ctx, host, "httpWrite", JS_NewCFunction(ctx, ni_host_write, "httpWrite", 2)); - JS_SetPropertyStr(ctx, host, "httpEnd", JS_NewCFunction(ctx, ni_host_end, "httpEnd", 2)); - JS_SetPropertyStr(ctx, host, "httpDestroy", JS_NewCFunction(ctx, ni_host_destroy, "httpDestroy", 1)); - JS_SetPropertyStr(ctx, host, "httpSetTimeout", JS_NewCFunction(ctx, ni_host_set_timeout, "httpSetTimeout", 2)); -} - -/* Exchanges still live at engine teardown free their engine values FIRST - * so the island's counting allocator returns to zero (the net/http exit - * cleanups — atexit LIFO, registered later so run earlier — have already - * dropped the listener closures). */ -static void ni_teardown(void) { - while (ni_live) ni_settle(ni_live); -} - -void scr_net_island_install(void) { - static bool installed = false; - if (installed) return; - installed = true; - /* the loop hooks, exactly the fetch unit's reasoning: a graph whose - * only socket user is the island's http client must still pump */ - scr_net_install(); - scr_island_set_netmod(&ni_attach, &ni_teardown); -} - -#endif /* SCR_DYNAMIC */ diff --git a/packages/runtime/src/scr_regex.c b/packages/runtime/src/scr_regex.c index dd6f40f44..a1458806b 100644 --- a/packages/runtime/src/scr_regex.c +++ b/packages/runtime/src/scr_regex.c @@ -1,35 +1,4 @@ -/* Regular expressions (see scr_runtime.h for the API contract). - * - * The engine is quickjs-ng's libregexp — the exact ECMAScript regex - * implementation the dynamic island uses — compiled standalone (libregexp.c - * + libunicode.c; cutils is header-only) and linked ONLY into programs that - * contain a regex literal. This file is likewise regex-only: it is NOT in - * the always-compiled runtime source list (see native-toolchain.ts), so regex-free - * programs keep a byte-identical link line. - * - * - Each literal evaluation creates a refcounted regex with fresh state. - * Instances share an immortal template per (pattern, flags) pair. The - * template compiles and caches bytecode LAZILY on first use; a pattern - * lre_compile rejects aborts with a clear - * message (Node throws SyntaxError at parse time — documented divergence; - * rare, since tsc's parser has already syntax-checked the literal). - * - ASCII subjects borrow their existing bytes; other subjects use a - * per-call UTF-16 conversion (exec/test keep the last long subject's - * decoding, see scr_regex_input_init_cached). Both engine representations report UTF-16 - * code-unit indices, matching .length/slice/charCodeAt. - * - Match loops mirror quickjs.c's own (JS_RegExpDelete / - * js_regexp_Symbol_replace): capture buffers are sized by - * lre_get_alloc_count (NOT capture_count*2 — the executor writes - * temporary registers past the capture slots), unmatched groups leave - * NULL pointers, and zero-length matches advance by one code unit — or by - * a whole surrogate pair under /u (AdvanceStringIndex). - * - Global and sticky exec/test use numeric lastIndex and update or reset - * it after matching. String matching/replacement follows its own state - * rules; matchAll, search, and split preserve the original regex state. - * - One-byte (ASCII) subjects run a native matcher translated from the same - * bytecode when the pattern stays inside its subset (scr_regex_native.h); - * it reports lre_exec's exact captures, so every loop below is shared. - */ + #include "scr_runtime.h" #include @@ -44,18 +13,6 @@ static void scr_regex_oom(void) { scr_trap("scriptc: out of memory\n"); } -/* ── libregexp host hooks ───────────────────────────────────────────── - * Static builds provide the minimal hooks (malloc-backed, no interrupt, - * no stack guard — patterns come from source literals and the executor's - * backtrack stack is heap-allocated). --dynamic builds MUST NOT define - * them: the engine archive's quickjs.c already does, with the opaque - * interpreted as the island's JSContext — so under SCR_DYNAMIC every - * lre_compile/lre_exec call here passes the island's context instead - * (forcing lazy engine init on first regex use). - */ -#ifdef SCR_DYNAMIC -static void *lre_opaque(void) { return scr_island_lre_opaque(); } -#else static void *lre_opaque(void) { return NULL; } bool lre_check_stack_overflow(void *opaque, size_t alloca_size) { @@ -77,14 +34,6 @@ void *lre_realloc(void *opaque, void *ptr, size_t size) { } return realloc(ptr, size); } -#endif /* SCR_DYNAMIC */ - -/* ── lazy compilation ───────────────────────────────────────────────── - * Compiled bytecodes are cached on the immortal ScrRegex statics and freed - * at exit through lre_realloc (registered AFTER the first compile, so under - * --dynamic it runs before the LIFO-later island teardown and the island's - * allocation audit sees the bytecode gone). - */ static SCR_TL ScrRegex **scr_compiled = NULL; static SCR_TL size_t scr_compiled_len = 0, scr_compiled_cap = 0; @@ -986,7 +935,6 @@ ScrStr *scr_regex_replace_callback(ScrStr *s, ScrRegex *re, ScrDyn *callback, bo return scr_jb_finish(&output); } - /* The pinned Node ANSI matcher derives from ansi-regex, copyright (c) * Sindre Sorhus , used under the MIT license: * Permission is hereby granted, free of charge, to any person obtaining a diff --git a/packages/runtime/src/scr_runtime.h b/packages/runtime/src/scr_runtime.h index 6157b7af5..25cad5905 100644 --- a/packages/runtime/src/scr_runtime.h +++ b/packages/runtime/src/scr_runtime.h @@ -74,7 +74,7 @@ void scr_init(void); /* Program objects emitted by the bundled LLVM helper reference this symbol. * Its versioned spelling makes a mismatched manual runtime link fail before * the program can start. */ -void scr_runtime_abi_v13(void); +void scr_runtime_abi_v14(void); void scr_runtime_workers_v8(void); /* ── the trap funnel (scr_console.c; scr_library.c under -DSCR_LIB) ────── @@ -1071,26 +1071,6 @@ void scr_dyn_bag_set(struct ScrDyn *bag, ScrStr *key, struct ScrDyn *value, stru * monomorphic-struct divergence). scr_object.c. */ void scr_record_key_miss(ScrStr *k); -/* ── error objects (scr_error.c) ────────────────────────────────────── - * `Error` and its standard subclasses are a - * RUNTIME-PROVIDED hierarchy: ScrError lays out exactly like a compiler- - * emitted hierarchy class (rc, vt, then the fields), so `class MyError - * extends Error` compiles as an ordinary derived class whose struct embeds - * this prefix, and every vtable mechanism (base-typed release, preorder- - * interval instanceof) applies unchanged. - * - * The builtin classes' vtables live HERE as mutable globals because - * the runtime itself creates error instances (JSON/dynCheck/regex failures, - * the island bridge) — but their preorder intervals depend on the whole - * program's class forest, which only the compiler knows. Every emitted - * main() stamps pre/post into these vtables before user code runs (the - * defaults below only cover the moments before that), so runtime-made and - * compiler-made error objects always agree on instanceof. - * - * Cycle capability is hierarchy-uniform and program-dependent (a user - * subclass may hold closures): when the compiler's fixpoint marks the Error - * hierarchy cycle-capable, main() also calls scr_error_set_traced() and - * the runtime allocates its own error objects with collector headers. */ typedef struct ScrError { size_t rc; const ScrVt *vt; @@ -1229,7 +1209,7 @@ bool scr_error_is(const void *obj); /* Throw a fresh builtin error through the exception cell. scr_throw_error * takes ownership of message; the _msg form copies the C string. The _named - * form (island bridge) takes ownership of both strings and picks the + * form takes ownership of both strings and picks the * builtin vtable whose class name matches `name` (Error otherwise). */ SCR_COLD void scr_throw_error(int kind, ScrStr *message); SCR_COLD void scr_throw_error_msg(int kind, const char *message, size_t len); @@ -1865,24 +1845,6 @@ ScrStr *scr_arr_join(ScrArr *a, ScrStr *sep); * missing ones skip. Borrows both; +1 result; never throws. */ ScrStr *scr_str_raw(ScrArr *raw, ScrArr *subs); -/* ── regular expressions (scr_regex.c — linked ONLY when the program - * contains a regex literal; see native-toolchain.ts) ──────────────────────────────── - * The engine is quickjs-ng's libregexp (the same bytecode interpreter the - * dynamic island uses), compiled standalone. Each regex literal evaluation - * creates a fresh refcounted instance sharing an immortal template per - * (pattern, flags) pair. Template bytecode compiles lazily on first use - * and is freed at exit; constructed regexes own their bytecode. - * Subjects are matched as UTF-16 (converted per call from the UTF-8 - * storage), so all observable index behavior is UTF-16-exact like Node. - * - * Global and sticky regexes carry numeric lastIndex. Exec/test update it - * after matching; String methods apply their specified state rules. - * - * Ownership: subjects/replacements are BORROWED; string/array results - * return +1. replace_all without /g THROWS a catchable TypeError - * (callers are compiler-emitted pending - * checks); every other failure mode aborts. - */ typedef struct ScrRegex { size_t rc; /* SIZE_MAX = immortal literal template */ ScrStr *source; /* pattern text between the slashes */ @@ -3203,8 +3165,7 @@ bool scr_module_loaded(double module_id); double scr_module_cache_get(ScrStr *filename); bool scr_module_cache_has(ScrStr *filename); ScrArr *scr_module_cache_keys(void); -/* Raw argv accessors — the island's process shim builds the same - * ["scriptc", argv[0], ...] shape from the same stash. */ + int scr_lib_arg_count(void); const char *scr_lib_arg(int i); /* Private self-reexec marker parsed and removed from process.argv by @@ -3218,9 +3179,7 @@ bool scr_lib_fork_info(double *target, uintptr_t *read_handle, bool scr_lib_should_collapse_reexec_arg(ScrStr *cmd, ScrArr *args); ScrStr *scr_process_platform(void); /* +1 interned ("darwin", "linux", ...) */ ScrStr *scr_process_cwd(void); /* +1 fresh (getcwd) */ -/* Submit one raw chunk to fd 1/2 and flush it before returning. Used by all - * JavaScript-visible console/process/readline/island output paths so the - * internal stdio formatting buffer never delays live output. */ + bool scr_stdio_write(int fd, const void *data, size_t len); int scr_stdio_write_raw(int fd, const void *data, size_t len); extern SCR_TL bool (*scr_stdio_write_hook)(int fd, const void *data, size_t len); @@ -3924,10 +3883,7 @@ void scr_crypto_hkdf_async(ScrStr *digest, ScrBytes *ikm, ScrBytes *salt, ScrBytes *info, double keylen, ScrClosure *cb, ScrCryptoBytesFn fn); void scr_crypto_scrypt_async(ScrBytes *password, ScrBytes *salt, double keylen, ScrDyn *options, ScrClosure *cb, ScrCryptoBytesFn fn); -/* One-shot raw digest/HMAC by algorithm name ("md5", "sha1", and SHA-2) - * — the island crypto shim's bridge (scr_island.c host hooks). Digest - * bytes into out (≥64); returns the digest length, 0 for an unknown - * algorithm. */ + size_t scr_crypto_digest_raw(const char *alg, const unsigned char *data, size_t len, unsigned char out[64]); size_t scr_crypto_hmac_raw(const char *alg, const unsigned char *key, size_t keylen, @@ -4346,34 +4302,13 @@ typedef enum { * (the dyn→closure stance): a cycle THROUGH a dyn-boxed promise is * merely never collected. */ SCR_DYN_PROMISE, - /* An ISLAND (engine-held) value — the jsval→dyn crossing. Never - * produced by the parser — it enters the checked-dynamic tree through the gated - * constructor scr_dyn_from_jsval (scr_island.c): an 'any'-typed value - * flowing into an 'unknown'/'object'/JS-residue slot. Boxes by - * REFERENCE (a retained ScrJsval cell). The constructor SCALAR- - * NORMALIZES: engine numbers/strings/booleans/null/undefined convert - * to the native dyn kinds at wrap time, so JSVAL nodes only ever hold - * engine objects, arrays, and functions (plus the symbol/bigint edge — - * kinds the checked-dynamic tree cannot represent at all). Identity is the CELL's - * engine value: strict equality routes to the engine's === (two wraps - * of one engine value compare equal), and scr_jsval_from_dyn unwraps - * the SAME cell back (+1) — the boundary is identity-preserving for - * engine-born values. typeof/truthiness/String() route to the engine - * per use (scr_dyn_jsval_ops); every dyn walk without an armed route - * (JSON, structuredClone, deepStrictEqual, inspect, keyed access, - * calls, iteration) throws the LOUD "not supported yet" ladder — never - * a silent wrong answer. The dyn→cell edge is NOT visible to the cycle - * collector (the dyn→closure stance): a cycle dyn → cell → engine - * object → host closure → dyn is merely never collected (the - * documented cross-boundary-cycle divergence). */ - SCR_DYN_JSVAL, /* A compiler-owned typed reference. Program class instances use this for * ordinary `unknown` storage; native Web streams also use it when their * contract must expose the exact input reference again. The capsule * retains the original value so an exact checked cast preserves identity; * `materialize` supplies the ordinary own-field/data view to generic dyn * consumers. LLVM hardcodes these kind numbers; append new kinds. */ - SCR_DYN_TYPED_REF, + SCR_DYN_TYPED_REF = 12, /* tag 11 is retired; preserve the native ABI */ /* Native Proxy over a checked plain object; keep new tags at the end. */ SCR_DYN_PROXY, SCR_DYN_BIGINT, /* exact native integer, retained by the box */ @@ -4438,10 +4373,6 @@ typedef struct ScrDynTypedCast { bool traced; struct ScrDynTypedCast *next; } ScrDynTypedCast; -typedef struct ScrJsval ScrJsval; /* opaque island cell (C11 repeat; the - * always-linked dyn core never touches - * its engine value — only the gated ops - * installed by scr_dyn_from_jsval do) */ /* The compiler-emitted call glue carried by a SCR_DYN_FUNC box: checks the * dyn arguments against the boxed closure's declared parameter types (a @@ -4572,11 +4503,7 @@ struct ScrDyn { * emitted converters guarantee it (direct box for promise, * adapter promise otherwise). */ ScrPromise *promise; - /* SCR_DYN_JSVAL: the retained island cell (engine objects/arrays/ - * functions only — the constructor scalar-normalizes; see the kind's - * comment). Released through the installed ops so this always-linked - * core never references the gated island unit. */ - struct { ScrJsval *cell; } jsval; + struct { ScrDyn *target; ScrDyn *handler; } proxy; /* both owned */ } v; /* Keep the checked value payload at its established offset: generated @@ -4646,7 +4573,6 @@ ScrDyn *scr_json_parse_reviver(ScrStr *text, const ScrDyn *reviver); ScrDyn *scr_json_stringify_replacer(const ScrDyn *value, const ScrDyn *replacer, const ScrStr *gap); ScrDyn *scr_json_stringify_value(const ScrDyn *value, const ScrDyn *replacer, const ScrDyn *space); - /* BORROWED member lookup on a SCR_DYN_OBJ; NULL when the key is absent. */ ScrDyn *scr_dyn_obj_get(const ScrDyn *d, const char *key, size_t key_len); /* Own-enumerable check on a SCR_DYN_OBJ. */ @@ -4869,7 +4795,6 @@ void scr_dyn_arr_push_spread(ScrDyn *arr, const ScrDyn *src, const char *what); * compile-time source spelling), else the runtime kind wording. Borrows * both; NULL with the exception pending on the throw. */ ScrDyn *scr_dyn_iter_pack(const ScrDyn *src, const ScrStr *msg); -ScrDyn *scr_dyn_jsval_iter_n(const ScrDyn *src, double count); /* Map constructor seeds: retain array inputs for live iteration, accept * nullish inputs as empty, and validate each entry before reading 0/1. */ ScrDyn *scr_dyn_map_seed_entries(const ScrDyn *src); @@ -5174,99 +5099,11 @@ ScrDyn *scr_dyn_new_promise_adapting(ScrPromise *src, ScrPromise *scr_dyn_promise_of(const ScrDyn *d); ScrPromise *scr_dyn_promise_all(const ScrDyn *entries); -/* ── island values in the checked-dynamic tree (SCR_DYN_JSVAL) ───────────────────────── - * Engine routing ops for JSVAL nodes, installed by the gated constructor - * (scr_dyn_from_jsval, scr_island.c — the scr_dyn_alloc_promise hook - * story: JSVAL nodes exist only after the constructor ran, so the ops - * are always installed when a dispatch arm meets the kind, and a - * dynamic-free link never references engine symbols). Contracts mirror - * the scr_jsval_* entries they route to. */ -typedef struct ScrDynJsvalOps { - void (*release)(ScrJsval *cell); - ScrStr *(*type_of)(ScrJsval *cell); /* engine typeof; +1, never throws */ - bool (*truthy)(ScrJsval *cell); /* engine ToBoolean; never throws */ - /* String(v) in the engine (the full ToString protocol — user toString - * runs, its throw bridges): +1, or NULL with the exception pending. */ - ScrStr *(*to_str)(ScrJsval *cell); - bool (*strict_eq)(ScrJsval *a, ScrJsval *b); /* engine ===; never throws */ - bool (*is_array)(ScrJsval *cell); /* Array.isArray, engine-side */ - bool (*is_error)(ScrJsval *cell); /* native Error instance, engine-side */ - /* ── the routed operation set (lane dyn-routing-ops) ──────────────── - * Each routes to the engine at the moment of use and converts at the - * boundary: dyn ARGUMENTS cross through scr_jsval_from_dyn (wrapped - * cells unwrap by reference, dyn data deep-copies, dyn FUNC boxes - * cross through the generic host-function shim), engine RESULTS come - * back through scr_dyn_from_jsval (scalar-normalizing). Fallible ops - * bridge the ENGINE's exception catchably and answer NULL/false/-1. */ - ScrDyn *(*key_get)(ScrJsval *cell, const ScrStr *k); /* o[k]; +1 or NULL pending */ - bool (*key_set)(ScrJsval *cell, const ScrStr *k, const ScrDyn *v); /* false = pending */ - ScrDyn *(*call)(ScrJsval *cell, ScrDyn *const *args, size_t argc); /* f(...); +1 or NULL pending */ - /* o.m(...) — the ENGINE's own prototypes run (JS-exact flatMap/map/ - * forEach/...). A missing or non-callable member throws Node's - * " is not a function" (the call site's spelling — V8's text, - * front-run before the engine's terser claim). */ - ScrDyn *(*invoke)(ScrJsval *cell, const char *method, ScrDyn *const *args, size_t argc, const char *what); - bool (*is_nullish)(ScrJsval *cell); /* engine undefined/null; never throws - * (always false today — the wrap - * constructor scalar-normalizes) */ - /* Object.keys/values/entries (mode 0/1/2) as a NATIVE dyn array (+1): - * keys are dyn strings, values wrap per element, entries are native - * dyn pairs. NULL with the engine's exception pending on refusal. */ - ScrDyn *(*obj_walk)(ScrJsval *cell, int mode); - int (*has_own)(ScrJsval *cell, const ScrStr *k); /* 0/1; -1 = pending */ - /* Object.assign(target, src) with the ENGINE target: src converts per - * member semantics (a wrapped src spreads by reference; dyn data - * enters as the usual deep copy). false = pending. */ - bool (*assign)(ScrJsval *cell, const ScrDyn *src); - /* JSON.stringify text of the engine value (+1) — the engine's own - * stringify (toJSON protocols, cycle TypeErrors). NULL + pending when - * not JSON-representable. */ - ScrStr *(*to_json)(ScrJsval *cell); - /* Drain the ENGINE's own iterator protocol into a fresh dyn array - * (elements wrap back scalar-normalized) — the for-of/destructuring/ - * spread arm over a wrapped value. The guard's TypeError wording on a - * non-iterable: spread true takes V8's spread-call text; otherwise the - * compile-time spelling `spell` verbatim when non-NULL (the named- - * source form), else the kind wording. An iterating getter/next throw - * bridges with the ENGINE's message. +1, or NULL with the exception - * pending. */ - ScrDyn *(*iter_drain)(ScrJsval *cell, bool spread, const ScrStr *spell); - ScrDyn *(*iterator)(ScrJsval *cell, const ScrStr *spell, bool array_from); - ScrDyn *(*iter_n)(ScrJsval *cell, double count); - bool (*type_probe)(ScrJsval *cell, const ScrStr *probe); /* internal brand; no property access */ -} ScrDynJsvalOps; - -/* The allocator view the gated constructor uses (installs the ops); - * ownership of `cell` MOVES in (the caller retains first). */ -ScrDyn *scr_dyn_alloc_jsval(ScrJsval *cell, const ScrDynJsvalOps *ops); -/* The installed ops (traps on a missing install — impossible unless a - * JSVAL node was forged without the constructor). */ -const ScrDynJsvalOps *scr_dyn_jsval_ops(void); -/* dynTest arms that need the ENGINE's answer on a JSVAL node, or the - * materialized answer for a live typed-reference capsule. Each answers - * false for every other kind (callers test unconditionally — the emitted - * narrowing tests stay branch-free). Never throw. */ -bool scr_dyn_isl_typeof_is(const ScrDyn *d, const char *name); -bool scr_dyn_isl_is_array(const ScrDyn *d); -bool scr_dyn_isl_is_error(const ScrDyn *d); -/* The JSVAL honesty ladder: when d is a JSVAL node, THROWS the catchable - * " on an island value held in 'unknown' is not supported yet" - * Error and returns false; every other kind returns false untouched. - * Callers gate un-armed operations with it — never a silent wrong - * answer (the retired fence-box bug). */ -bool scr_dyn_isl_fence(const ScrDyn *d, const char *what); -/* The emitted keyed READ's JSVAL arm (sc_dyn_key_get): routes o[k] to the - * engine through the installed ops and wraps the result back (+1, scalars - * normalized) — the retired `.length -> fence` row. d MUST be a JSVAL - * node; NULL with the engine's exception bridged catchably. */ -ScrDyn *scr_dyn_isl_key_get(const ScrDyn *d, const ScrStr *k); -/* The `??`/optional-chain nullish test over a dyn value: UNDEF/NULL - * native, JSVAL through the engine's own test (defensively — the wrap - * constructor scalar-normalizes engine null/undefined away), every other - * kind false. Never throws. */ +/* Native predicates for typed reference capsules and boxed errors. */ +bool scr_dyn_ref_typeof_is(const ScrDyn *d, const char *name); +bool scr_dyn_ref_is_array(const ScrDyn *d); +bool scr_dyn_ref_is_error(const ScrDyn *d); bool scr_dyn_is_nullish(const ScrDyn *d); -/* scr_dyn_isl_tostr_buf (the display walkers' JSVAL arm) is declared - * with the ScrJsonBuf surface below. */ /* ── the ambient receiver (JS `this` inside listener/callback bodies) ── * Node calls a handle's listeners with `this` bound to the emitting @@ -5415,12 +5252,7 @@ void scr_jb_put_number(ScrJsonBuf *b, double v); * as \u00XX, everything else (UTF-8 included) verbatim — exactly the JS * JSON.stringify escape set for well-formed strings. */ void scr_jb_put_json_str(ScrJsonBuf *b, const ScrStr *s); -/* String(v) of a JSVAL node appended into b (the emitted sc_ds display - * walkers' arm; scr_dyn_display/to_string route here too): the engine's - * ToString. A bridged failure (throwing user toString, a symbol) leaves - * the exception PENDING and appends nothing — the loud path, never a - * fabricated rendering. */ -void scr_dyn_isl_tostr_buf(ScrJsonBuf *b, const ScrDyn *d); + /* JSON-serialize a dyn value into the buffer — the sc_jw_* walker for the * dyn leaves the compiler cannot type: object members holding undefined * DROP, array slots holding undefined print null (exactly Node). */ @@ -5641,10 +5473,6 @@ void scr_promise_fulfill_str(ScrPromise *p, ScrStr *v); /* moves in */ void scr_promise_fulfill_ref(ScrPromise *p, void *v, void *(*retain)(void *), void (*release)(void *), ScrTraceFn trace); void scr_promise_fulfill_void(ScrPromise *p); -/* Reject `p` with the exception pending in the active cell (moved out — - * the cell resets); wakes waiters, enters the unhandled ledger. No-op - * with a clean cell; an already-settled `p` just clears the cell. The - * island promise bridge's rejection half (scr_island.c). */ void scr_promise_reject_pending(ScrPromise *p); /* Mint an ALREADY-SETTLED promise from a just-run synchronous operation: @@ -5705,10 +5533,7 @@ double scr_set_interval(ScrClosure *cb, double ms); /* cb ownership moves in */ * fulfills with the undefined dyn value (+1). */ ScrPromise *scr_immediate_promise(void); void scr_clear_interval(double handle); -/* The island timer bridge (scr_web.c): a one-shot entry WITH a clear - * handle (island clearTimeout cancels; ids share the interval space so - * scr_clear_interval serves both), and the teardown sweep that releases - * every armed closure before the engine dies. */ + double scr_set_timeout_handle(ScrClosure *cb, double ms); /* cb ownership moves in */ void scr_timers_teardown(void); /* Timeout.unref()/ref()/hasRef(): loop-liveness bookkeeping over the timer @@ -5854,35 +5679,11 @@ double scr_now_ms(void); /* the loop's monotonic clock, in ms */ * already selected and reported exit status 1. */ bool scr_loop_run(ScrPromise *top_level); void scr_loop_commonjs_entry(void); -/* External I/O hook, polled at loop quiescence like the child registry: - * `pending` keeps the loop alive; `poll` makes progress and may SLEEP up - * to max_wait_ms (on real fds — socket readiness wakes it early), so the - * loop skips its own nanosleep for that turn. One registrant: the dynamic - * island (engine promise jobs + in-flight fetch transfers). Static builds - * never set it. */ -void scr_loop_set_io(bool (*pending)(void), void (*poll)(double max_wait_ms)); bool scr_report_unhandled_rejections(void); /* true = exit 1 */ void scr_discard_unhandled_rejections(void); -/* The island's unhandled-rejection ledger joins the report above (one - * registrant, set at engine boot; static builds never set it): called with - * print=true when the static ledger reported nothing, prints its FIRST - * never-observed rejection in the same voice, frees the ledger either way, - * and returns whether it had any. */ -void scr_loop_set_island_rejections(bool (*fn)(bool print), - int (*drain_jobs)(void)); -/* The island's earliest armed timer deadline (scr_island_timers_deadline; - * HUGE_VAL when none) joins the loop's sleep computation: an armed - * AbortSignal.timeout must fire on time while the loop sleeps on socket - * readiness, without keeping the loop alive by itself (Node's unref'd - * timer). One registrant, set at engine boot; static builds never set it. */ -void scr_loop_set_island_deadline(double (*fn)(void)); long scr_abandoned_fiber_count(void); -/* True while executing on an async fiber (vs the main stack) — the island - * sizes its engine stack budget per stack (see scr_island.c). */ -bool scr_on_fiber(void); -/* Identity of the running fiber (NULL on the main stack) — the island's - * stack-anchor bookkeeping tells STACKS apart, not just fiber-vs-main - * (a host callback may spawn a fiber that re-enters the engine). */ + + void *scr_fiber_self(void); void scr_note_abandoned_fibers(long n); /* scr_console.c owns the flag */ @@ -6020,13 +5821,6 @@ ScrGen *scr_gen_of_fiber(ScrFiber *f); long scr_promise_live_count(void); #endif -/* ── fetch (scr_fetch.c) ────────────────────────────────────────────── - * The native bridge over scr_net + scr_tls + scr_http's client parser. - * Static fetch(url) resolves at the response head with native Response - * and ReadableStream handles; Response.json consumes that same stream. - * AbortSignal and streaming request bodies stay native too. Under - * --dynamic the same TU boots the broader engine web surface. The - * emitted main calls scr_fetch_install in either form. */ void scr_fetch_install(void); ScrPromise *scr_fetch_input(ScrDyn *input, ScrDyn *init); ScrDyn *scr_fetch_function(void); @@ -6055,424 +5849,6 @@ ScrDyn *scr_fetch_stream_from_string( ScrStr *iterable); /* borrowed string; +1 handle */ ScrPromise *scr_fetch_reader_read(ScrDyn *reader); /* borrowed handle; +1 */ -/* ── dynamic island (scr_island.c; --dynamic builds ONLY) ──────────── - * The embedded QuickJS-ng engine. Compiled and linked only under - * -DSCR_DYNAMIC; static builds never reference these symbols (nor the - * engine headers — this block deliberately names no engine type). One - * runtime+context per process, created lazily on first entry, torn down - * at exit before the RC audit; every entry re-anchors the engine's - * stack-overflow check so calls from ucontext fibers are safe. Not - * reentrant from engine callbacks. - */ -#ifdef SCR_DYNAMIC -/* Evaluate UTF-8 source in the island's global scope; returns - * String(result) as a +1 ScrStr. Borrows code. An island exception is - * bridged into the exception cell as a catchable string ("TypeError: - * boom" — String(e)) and NULL comes back — callers are compiler-emitted - * pending checks (may-throw, like the fs.* surface). */ -ScrStr *scr_island_eval(ScrStr *code); - -/* The libregexp opaque for scr_regex.c (--dynamic builds share the engine - * archive's libregexp, whose host hooks want the island's JSContext): - * lazily boots the engine and re-anchors its stack check, then hands the - * context out as an opaque pointer. */ -void *scr_island_lre_opaque(void); - -/* ── embedded npm modules ───────────────────────────────────────────── - * npm package code is embedded into the binary at BUILD time: the emitted - * C carries every reached module's source as a static string plus the - * (importer, specifier) → target resolution edges, and registers both - * tables at the top of main. The island's module loader and its CommonJS - * require shim resolve exclusively from these tables — binaries never - * read node_modules at runtime. Edge targets are module keys or "node:*" - * builtins, which the island shims (events, path, process, fs stubs, - * child_process stubs). */ -typedef struct ScrIslandModule { - const char *key; /* resolved path — the loader's cache key */ - /* UTF-8 source — or raw-DEFLATE bytes when src_raw > 0 (the emitter - * compresses big module texts; the loader inflates LAZILY at first - * load through the inflater the emitted main installs, so a module a - * run never loads never inflates — and its pages never fault in). */ - const char *src; - size_t len; /* byte length of src AS STORED */ - size_t src_raw; /* 0: src is plain text; else the inflated byte length */ - int format; /* 0 = ESM, 1 = CommonJS, 2 = JSON */ - /* CommonJS only: the ESM facade the loader evaluates when an ES module - * imports this file — default (module.exports itself) plus the named - * exports LEXED from the source at BUILD time with the compiler's port - * of Node's vendored CJS lexer. NULL for ESM sources (compiled - * natively) and JSON (default-only wrapper, like Node). The same - * compression contract as src, via esm_raw. */ - const char *esm; - size_t esm_len; - size_t esm_raw; -} ScrIslandModule; - -typedef struct ScrIslandEdge { - const char *from; - const char *spec; - const char *to; - /* Which call forms this resolution serves — Node picks the "exports" - * condition set from the CALL FORM, so a dual package embeds TWO edges - * for one (from, spec): its "import" condition's target behind kind 1 - * and its "require" condition's behind kind 2. 0 answers both lookups - * (relative files, builtins). */ - int kind; /* 0 = any, 1 = import, 2 = require */ -} ScrIslandEdge; - -/* Registers the emitted tables (static data; no copy, no engine boot). - * Must run before any island entry that imports — main calls it right - * after scr_lib_init. */ -void scr_island_modules(const ScrIslandModule *mods, size_t nmods, - const ScrIslandEdge *edges, size_t nedges); -/* The logical source entry, independent of the installed binary path. */ -void scr_island_entry_module(const char *filename); - -/* The inflater for compressed embedded module text (raw DEFLATE, exact - * inflated size known from the table row). The emitted main installs - * scr_zlib.c's scr_zlib_inflate_exact exactly when some module compressed - * at build time — index.ts links scr_zlib.c/libz on the same predicate, - * so compression-free builds keep their link line and the island keeps no - * zlib reference of its own. */ -void scr_island_set_inflate(bool (*inflate)(const unsigned char *src, size_t src_len, - unsigned char *dst, size_t dst_len)); -/* scr_zlib.c: one-shot raw-DEFLATE inflate into a caller-sized buffer; - * true only when the stream ends exactly at dst_len. */ -bool scr_zlib_inflate_exact(const unsigned char *src, size_t src_len, - unsigned char *dst, size_t dst_len); - -/* The island process shim's implicit exit status (process.exitCode): - * Node's set-it-and-return-normally contract. The emitted main returns - * this after the loop drains; 0 when never set. The version advances on - * every assignment so an exit listener can override a provisional status. */ -int scr_island_exit_code(void); -size_t scr_island_exit_code_version(void); - -/* ── web-platform globals (scr_web.c) ───────────────────────────────── - * The pure-JS prelude defining the island's WHATWG subset (streams et - * al.), evaluated at engine boot before any embedded module. `jsctx` is - * the island's JSContext as an opaque pointer — engine types stay out of - * this header. */ -void scr_island_web_boot(void *jsctx); - -/* Runs the engine's pending promise-reaction jobs to exhaustion (no-op - * before the engine boots). Returns the number executed. The loop's io - * hook drains through this so island async chains progress at quiescence, - * exactly where Node runs its microtasks. */ -int scr_island_drain_jobs(void); - -/* Re-anchors the engine's stack-overflow check to the CURRENT stack (the - * every-island-entry rule) — for units entering the engine from loop - * dispatch stations (the fetch bridge's net callbacks) rather than - * through an emitted island op. */ -void scr_island_host_enter(void); - -/* Bridges the engine's CURRENT pending exception into the scriptc - * pending cell (the island timer bridge fires engine callbacks from the - * static heap; a throw there must become the loop's uncaught report). */ -void scr_island_bridge_exception(void); - -/* ── island timers (scr_web.c) ──────────────────────────────────────── - * The machinery behind AbortSignal.timeout: one-shot engine callbacks - * armed by the web prelude's host.timer. Deliberately UNREF'd, like - * Node's AbortSignal.timeout timer — an armed timer never keeps the loop - * alive; it fires only if other work (a live transfer, engine jobs) keeps - * the process running, and the island's io hook caps its sleeps at the - * earliest deadline so a fetch timeout fires on time. Deadlines are on - * the scr_now_ms clock; _deadline returns HUGE_VAL when none are armed. - * Teardown frees unfired callbacks so the engine audit stays zero. */ -double scr_island_timers_deadline(void); -bool scr_island_timers_due(void); -bool scr_island_timers_fire_due(void); /* true = fired at least one */ -void scr_island_timers_teardown(void); - -/* ── dynamic fetch hooks ────────────────────────────────────────────── - * The native bridge registers NO pending/poll hooks (its - * transfers live on real sockets the loop's poller sleeps on); the curl - * reference implementation (scr_fetch_curl.c, SCRIPTC_FETCH_CURL=1 — - * one release as the flip's reference) still registers all four so the - * loop can sleep on curl's fds. */ -void scr_island_set_fetch(void (*boot)(void *jsctx), bool (*pending)(void), - void (*poll)(double max_wait_ms), void (*teardown)(void)); - -/* ── the island's node:http/https client bridge (scr_net_island.c) ──── - * The one TU referencing BOTH the socket units and the island (the - * scr_zlib_island.c precedent): native-toolchain.ts compiles it exactly when a - * --dynamic build links the socket units, and the emitted main calls - * scr_net_island_install before any island entry. `attach` runs while - * the island builds its bootstrap host object (jsctx and host_obj are - * the engine's context and host-object pointers, opaque here — engine - * types stay out of this header) and adds the bridge's host functions; `teardown` - * frees engine values still held by in-flight requests before the - * engine dies, the fetch-teardown story. Without the bridge the island - * keeps its "does not provide the 'node:http' builtin" refusal. */ -void scr_island_set_netmod(void (*attach)(void *jsctx, void *host_obj), void (*teardown)(void)); -void scr_net_island_install(void); - -/* ── island value handles (the `any` runtime type) ──────────────────── - * A ScrJsval is an ordinary refcounted scriptc heap cell owning ONE - * engine value. It is opaque here (the engine's value type must not leak - * into static-build translation units) and deliberately NOT - * cycle-collector-traced: its internal references live in the engine's - * own GC world, and cycles that cross the boundary are documented as - * uncollectable (SEMANTICS.md). Releasing the last reference frees the - * engine value — or only the cell itself after engine teardown (the - * engine frees every value it still owns when it goes down, so a - * post-teardown release must not touch it). - * - * Conventions, mirroring the rest of the runtime: operands are BORROWED, - * refcounted results come back owned (+1). Fallible operations bridge - * the engine exception into the exception cell (catchable) and report - * failure via NULL (pointer results) or -1 (int results) — callers are - * compiler-emitted pending checks. Every entry re-anchors the engine's - * stack check, so all of these are fiber-safe. */ -typedef struct ScrJsval ScrJsval; - -ScrJsval *scr_jsval_retain(ScrJsval *v); -void scr_jsval_release(ScrJsval *v); -void *scr_jsval_retain_v(void *v); -void scr_jsval_release_v(void *v); - -/* Binary operator codes for scr_jsval_binop / scr_jsval_cmp. The JS - * semantics (ToPrimitive, coercion) come from prelude helper closures - * evaluated at island init, not from C reimplementations. */ -#define SCR_JSOP_ADD 0 -#define SCR_JSOP_SUB 1 -#define SCR_JSOP_MUL 2 -#define SCR_JSOP_DIV 3 -#define SCR_JSOP_MOD 4 -#define SCR_JSOP_POW 5 -#define SCR_JSOP_LT 6 -#define SCR_JSOP_LE 7 -#define SCR_JSOP_GT 8 -#define SCR_JSOP_GE 9 -#define SCR_JSOP_EQ 10 /* strict === */ -#define SCR_JSOP_NEQ 11 /* strict !== */ -#define SCR_JSOP_COUNT 12 - -/* Marshal in (static → island). Each returns a fresh +1 cell. from_str - * borrows s; from_json borrows JSON text produced by the emitted - * type-directed serializers (a DEEP COPY into the island — the documented - * aliasing divergence) and cannot fail on that trusted input. */ -ScrJsval *scr_jsval_from_f64(double v); -ScrJsval *scr_jsval_from_bool(bool v); -ScrJsval *scr_jsval_from_str(const ScrStr *s); -ScrJsval *scr_jsval_from_json(const ScrStr *json); -/* A CHECKED-DYNAMIC (dyn) value entering the island — deep copy for data - * kinds (a boxed handle/promise throws the catchable TypeError). A JSVAL - * node unwraps to its OWN cell (+1) — an engine value that crossed into - * the checked-dynamic tree and back is the SAME engine value, by reference (nested JSVAL - * members embed their engine values directly). A boxed FUNCTION crosses - * as one generic host-function shim over its uniform ScrDynThunk: the - * shim wraps engine arguments as dyn values (scalar-normalizing), calls - * the thunk, and converts the dyn result back — each crossing mints a - * fresh engine function (identity is not preserved for re-crossings; - * SEMANTICS.md). NULL with a pending exception on failure. Borrows d. */ -ScrJsval *scr_jsval_from_dyn(const ScrDyn *d); - -/* The jsval→dyn crossing (the IR's dynFromJsval): wraps an island value - * as a SCR_DYN_JSVAL node, SCALAR-NORMALIZING first — engine numbers/ - * strings/booleans/null/undefined convert to the native dyn kinds (the - * strict exits cannot fail on engine-reported scalars), so JSVAL nodes - * only ever hold engine objects/arrays/functions (and the symbol/bigint - * edge). Installs the checked-dynamic tree's engine-routing ops on first use. Borrows - * the cell (retains it into the node); +1 out; never throws. */ -ScrDyn *scr_dyn_from_jsval(ScrJsval *cell); - -/* Engine operations. Arithmetic yields a fresh cell (NULL = bridged); - * comparisons yield 0/1 (-1 = bridged); truthy/not never fail. */ -ScrJsval *scr_jsval_binop(int op, ScrJsval *a, ScrJsval *b); -int scr_jsval_cmp(int op, ScrJsval *a, ScrJsval *b); -/* `v instanceof C` in the engine (JS_IsInstanceOf — the spec operator, - * Symbol.hasInstance included). 0/1; -1 = bridged (non-object RHS throws - * the engine's own TypeError, catchably). */ -int scr_jsval_instance_of(ScrJsval *v, ScrJsval *c); -ScrJsval *scr_jsval_neg(ScrJsval *a); -/* GetIterator over an island value (the for-of head over 'any'): the - * engine's protocol lookup; NULL + pending TypeError when not iterable. */ -ScrJsval *scr_jsval_iter_new(ScrJsval *a); -ScrJsval *scr_jsval_plus(ScrJsval *a); /* unary + (ToNumber) */ -int scr_jsval_truthy(ScrJsval *a); -ScrStr *scr_jsval_typeof(ScrJsval *a); -bool scr_jsval_is_object(ScrJsval *a); -ScrStr *scr_jsval_to_str(ScrJsval *a); /* String(v); NULL = bridged */ - -/* Property/element access and calls. Names are NUL-terminated ScrStr - * (identifier property names from source); computed keys are jsvals. */ -ScrJsval *scr_jsval_get_prop(ScrJsval *o, const ScrStr *name); -ScrJsval *scr_jsval_global_get(const ScrStr *name); -int scr_jsval_set_prop(ScrJsval *o, const ScrStr *name, ScrJsval *v); -ScrJsval *scr_jsval_get_idx(ScrJsval *o, ScrJsval *key); -/* Destructuring guards over island values: RequireObjectCoercible with - * V8's exact TypeError text (pass-through result, +1), and GetIterator + - * the pattern's width as a fresh engine array (undefined-padded, - * IteratorClose per spec); both throw catchably, NULL + pending on throw. */ -ScrJsval *scr_jsval_destr_check(ScrJsval *v, const char *spell, const char *first); -ScrJsval *scr_jsval_iter_n(ScrJsval *v, double n); -int scr_jsval_set_idx(ScrJsval *o, ScrJsval *key, ScrJsval *v); -ScrJsval *scr_jsval_call_method(ScrJsval *o, const ScrStr *name, int argc, ScrJsval **argv); -ScrJsval *scr_jsval_call_this(ScrJsval *f, ScrJsval *receiver, int argc, ScrJsval **argv); -/* `o.name?.(...)`: a nullish member answers the engine's undefined; - * anything else calls with this = o (non-callables throw in the engine). */ -ScrJsval *scr_jsval_opt_call_method(ScrJsval *o, const ScrStr *name, int argc, ScrJsval **argv); -ScrJsval *scr_jsval_call(ScrJsval *f, int argc, ScrJsval **argv); -/* Spread application on an island callee — `f(...pre, ...spread)` through - * the prelude helper's REAL spread syntax (iterator protocols are the - * engine's own; the guards front-run V8's exact spread-call TypeError - * texts). `pre` is the engine array of leading fixed arguments; `what` the - * spread expression's source spelling (the nullish text spells it). - * Borrows everything; +1 out, or NULL with the exception bridged. */ -ScrJsval *scr_jsval_call_spread(ScrJsval *f, ScrJsval *pre, ScrJsval *spread, const ScrStr *what); -/* `new X(...)` on an island callee (jsOp construct) — JS_CallConstructor. - * Borrows everything; +1 out, or NULL with the exception bridged. */ -ScrJsval *scr_jsval_construct(ScrJsval *f, int argc, ScrJsval **argv); - -/* A scriptc closure entering the island as an engine function (the - * package-callback pattern: `.action((a, b) => ...)`). `adapt` is the - * compiler-emitted per-signature adapter — one uniform shape over the - * closure ABI: borrowed argument cells in (the closure ABI consumes its - * params, so the adapter retains them), the +1 result cell (or NULL for - * void) out. The wrapper retains the closure; the engine finalizer - * releases it (before the RC audit — teardown precedes it). Calls from - * the engine pad missing arguments with undefined and drop surplus, like - * any JS call; a scriptc exception thrown inside reverse-bridges to an - * engine throw (strings stay strings — the two bridges round-trip). */ -ScrJsval *scr_jsval_from_closure(ScrClosure *c, int arity, - ScrJsval *(*adapt)(ScrClosure *, ScrJsval **)); - -/* True iff the cell holds the engine's undefined — the TYPED host-call - * adapters ask before converting a `T | undefined` parameter (an absent - * or undefined engine argument takes the undefined arm; anything else - * converts through the exit machinery). */ -bool scr_jsval_is_undefined(ScrJsval *v); - -/* Optional chains on island values: the nullish test on the HANDLE - * (`x?.y` on 'any' — undefined OR null short-circuits, JS-exact) and the - * engine's own undefined/null as +1 cells (the unit path's result, and - * the union lift's unit arms). All infallible. */ -bool scr_jsval_is_nullish(ScrJsval *v); -ScrJsval *scr_jsval_undefined(void); -ScrJsval *scr_jsval_null(void); - -/* Non-JSON marshals IN: a URL crosses as an engine URL instance built - * from its href (the first call installs a minimal island URL class when - * no global exists — construction re-parses through scr_url.c's WHATWG - * parser; href/protocol/pathname readable, other components throw, see - * SEMANTICS.md). Borrows; +1 cell out, or NULL with the exception - * bridged. scr_jsval_from_bytes is its typed-array sibling — declared - * with the bytes surface below. */ -ScrJsval *scr_jsval_from_url(ScrUrl *u); - -/* Payload tags for scr_jsval_from_promise — the fulfillment types an - * async island callback may resolve with (the compiler fences the rest). */ -enum { - SCR_ISLP_VOID = 0, - SCR_ISLP_F64 = 1, - SCR_ISLP_BOOL = 2, - SCR_ISLP_STR = 3, - SCR_ISLP_JSVAL = 4, - /* Promise — the fulfillment is a native array of engine cells - * (the jsval-element-array spelling): it re-enters the engine as a - * fresh engine array whose ELEMENTS are the same engine values (the - * loadPlugins shape: identity crosses, the spine is a copy). */ - SCR_ISLP_JSVAL_ARR = 5, -}; - -/* Wrap a scriptc promise as an ENGINE promise (async callbacks crossing - * into the island: the package sees a real thenable). Takes ownership of - * `p` (+1 moves in). A waiter fiber awaits it and settles the engine - * capability when it settles — fulfillment marshals per `payload` - * (SCR_ISLP_*), rejection reverse-bridges the reason (Errors cross as - * real engine Errors). The await OBSERVES a rejection for the static - * ledger, and the engine's rejection tracker takes over for the wrapper - * promise — one report, one voice, whichever world drops the ball. - * Wrappers still pending at teardown free their engine values then (the - * island audit sees zero live allocations). NULL only if the engine - * cannot mint a capability (exception bridged). */ -ScrJsval *scr_jsval_from_promise(ScrPromise *p, int payload); - -/* The REVERSE bridge: an ENGINE promise (a package call's jsval whose - * declared type is Promise) settles a fresh STATIC promise, so - * `await pkgCall()` parks a fiber and `.catch/.finally` desugar over it. - * Borrows `v`; the +1 result is pending until the engine promise settles - * (subscription is Promise.resolve(v).then(onF, onR) through a pinned - * prelude helper — thenables and plain values behave like `await`). - * Fulfillment stores the retained value cell (SCR_ISLP_JSVAL) or nothing - * (SCR_ISLP_VOID; the compiler passes no other tags); rejection converts - * the reason exactly like a bridged exception (engine Errors become - * ScrErrors picked by name) and rejects — re-thrown at the await, - * ledger-tracked if never observed. The .then marks the engine promise - * HANDLED for the island's rejection tracker, so exactly one world - * reports a dropped rejection. Bridging the same engine promise twice - * just makes two static observers of one settlement. NULL only on an - * engine-level surprise minting the subscription (exception bridged). */ -ScrPromise *scr_jsval_bridge_promise(ScrJsval *v, int payload); - -/* Island-native literals: build an object from key/value pairs (keys are - * marshaled strings) or an array from elements. Borrow argv; +1 out. - * Cannot fail (allocation failure aborts, like every runtime OOM). */ -ScrJsval *scr_jsval_obj_lit(int npairs, ScrJsval **kv); -/* Getter completion for an island literal: defines `key` on `obj` as an - * engine getter invoking `fn`; answers the object retained (+1). */ -ScrJsval *scr_jsval_define_getter(ScrJsval *obj, ScrJsval *key, ScrJsval *fn); -/* The engine TemplateStringsArray for an island tag call: n cooked then n - * raw strings; the result array carries `.raw` (+1). */ -ScrJsval *scr_jsval_tpl_strings(int n, ScrJsval **kv); -/* Spread completion for an island literal: engine CopyDataProperties of - * `src` onto `obj`; answers the target (+1), NULL + pending on a getter - * throw. */ -ScrJsval *scr_jsval_obj_spread(ScrJsval *obj, ScrJsval *src); -ScrJsval *scr_jsval_arr_lit(int n, ScrJsval **elems); - -/* Marshal out (island → static): validated, STRICT extraction — a - * non-number refuses to exit as number (no coercion), throwing a - * catchable path-less TypeError like the dynCheck walkers'. Composite - * targets exit via scr_jsval_to_json + the existing json.parse + - * dynCheck pipeline instead (to_json throws if the value is not - * JSON-representable, e.g. contains a function). */ -int scr_jsval_exit_f64(ScrJsval *v, double *out); -int scr_jsval_exit_bool(ScrJsval *v, bool *out); -ScrStr *scr_jsval_exit_str(ScrJsval *v); -/* Uint8Array exit (engine Buffers pass — they ARE Uint8Arrays): a fresh - * u8 COPY (+1), the boundary's aliasing stance; NULL = thrown. */ -ScrBytes *scr_jsval_exit_bytes(ScrJsval *v); -/* `any[]`-declared slot exit (the jsval-element-array spelling): - * Array.isArray-gated, elements BY REFERENCE into a native array of - * engine cells (identity crosses, the spine is a snapshot copy). +1; - * NULL = thrown. */ -ScrArr *scr_jsval_exit_jsval_arr(ScrJsval *v); -ScrStr *scr_jsval_to_json(ScrJsval *v); - -/* The import boundary (libCall island.import): loads an embedded module — - * the package's runtime entry — through the island's module system and - * takes one export as an owned (+1) jsval. `name` is an export name, - * "default", or "*" (the namespace object; for CommonJS entries, an - * interop object over module.exports). The engine's module registry (and - * the require shim's cache) make repeated imports lookups, not - * re-evaluations. `specifier` is the specifier as WRITTEN at the import - * site: an ESM entry that does not provide a requested named export - * throws Node's link-time SyntaxError naming it ("The requested module - * 'x' does not provide an export named 'y'"). Borrows all args. NULL = - * bridged exception (a package's top-level code can throw). */ -ScrJsval *scr_jsval_import(const ScrStr *key, const ScrStr *name, const ScrStr *specifier); - -/* Dynamic import() (libCall island.importDyn): loads a module — an - * embedded module's key or a builtin shim's "node:x" key — through the - * island's module system and answers an owned (+1) jsval holding an - * ENGINE PROMISE of the namespace object. ALWAYS a promise: load and - * evaluation failures REJECT it (Node's dynamic-import shape). Borrows - * the key. NULL only on an engine-level surprise minting the rejected - * promise. */ -ScrJsval *scr_jsval_import_dyn(const ScrStr *key); - -/* The deferred boundary failure (libCall island.castFail): throws a - * catchable TypeError naming the target type — a checked cast of an - * island value to a type with no validated exit fails at RUNTIME, at the - * cast, instead of refusing the build. Borrows both args; the exception - * is pending on return. */ -void scr_jsval_cast_fail(ScrJsval *v, const ScrStr *target); -#endif /* SCR_DYNAMIC */ - /* ── numbers ──────────────────────────────────────────────────────────── * JS-exact Number-to-string (ECMA-262 §6.1.6.1.20 Number::toString, radix * 10): shortest digit string that round-trips, ECMA placement rules. @@ -6727,13 +6103,6 @@ ScrStr *scr_strdec_write(const ScrStr *enc, double pending, const ScrBytes *chun double scr_strdec_next(const ScrStr *enc, double pending, const ScrBytes *chunk); ScrStr *scr_strdec_end(const ScrStr *enc, double pending); -#ifdef SCR_DYNAMIC -/* Static → island typed-array marshal (scr_island.c; --dynamic builds - * only): an engine typed array of the same element kind — a COPY, the - * boundary's copy stance. Borrows; +1 cell, or NULL bridged. */ -ScrJsval *scr_jsval_from_bytes(const ScrBytes *b); -#endif - /* `new Uint8Array(n)` / Buffer.alloc(n): zero-filled. n goes through * ToIndex like JS (NaN → 0, truncate toward zero; negative or > 2^53-1 * THROWS Node's "Invalid typed array length" RangeError catchably and @@ -7058,13 +6427,6 @@ ScrStr *scr_insp_error(ScrError *e, double recurse, double depth); ScrStr *scr_insp_dyn(ScrDyn *d, double recurse, double depth); /* format's %s / rest-args twin: dyn strings pass verbatim. */ ScrStr *scr_insp_dyn_s(ScrDyn *d, double depth); -#ifdef SCR_DYNAMIC -/* Island `any` (scr_inspect_island.c — linked when a --dynamic build's - * IR carries insp.* libCalls): the scalar kinds render exactly (typeof - * dispatch); composites THROW a catchable TypeError (callers are - * compiler-emitted pending checks). */ -ScrStr *scr_insp_jsval(ScrJsval *v, double recurse, double depth); -#endif void scr_insp_begin(double recurse); void scr_insp_entry(ScrStr *s, bool is_num); /* Circular references, Node-exact ( / [Circular *N]): the @@ -7158,9 +6520,7 @@ void scr_fs_throw(int e, const char *op, const ScrStr *path); * ("incorrect header check", ...). Borrow their input; results +1. */ ScrBytes *scr_zlib_deflate(const ScrBytes *data); ScrBytes *scr_zlib_inflate(const ScrBytes *data); -/* The format-mode variants (0 zlib / 1 raw / 2 gzip; inflate adds - * 3 = auto-detect). Static one-shot codecs call these directly, and - * scr_zlib_island.c bridges them into the embedded engine's node:zlib shim. */ + ScrBytes *scr_zlib_deflate_mode(const ScrBytes *data, double mode, double level); ScrBytes *scr_zlib_inflate_mode(const ScrBytes *data, double mode); double scr_zlib_crc32(const ScrBytes *data, double value); @@ -7168,7 +6528,6 @@ typedef void (*ScrZlibBytesFn)(ScrClosure *cb, ScrError *err, ScrBytes *value /* moves, NULL on error */); void scr_zlib_codec_async(const ScrBytes *data, double mode, bool compressing, ScrClosure *cb /* moves */, ScrZlibBytesFn fn); -void scr_zlib_island_install(void); /* ── node:net (scr_net.c — compiled and linked ONLY when the program * uses the net surface, like scr_events.c; see native-toolchain.ts) ───────────────── @@ -7354,11 +6713,7 @@ void scr_net_connect_opts_chk(const ScrDyn *opts, const ScrStr *fence); * lookup(hostname, options, answer-closure) synchronously; answer_fn is * the emitted per-shape thunk that decodes the answer down to * scr_net_lookup_answer. Dials the answered addresses in order. */ -/* Blocking first-answer hostname resolution for the CLIENT bridges (the - * native fetch, the island's http/https client) — the dns.lookup - * precedent: getaddrinfo at call time. +1: the resolved IP, or a retain - * of `host` (already an IP literal / localhost / unresolvable — the dial - * then delivers Node's exact getaddrinfo ENOTFOUND cause). */ + ScrStr *scr_net_blocking_lookup(ScrStr *host /*borrowed*/); ScrNetSocket *scr_net_connect_lookup(double port, ScrStr *host /*borrowed*/, ScrClosure *lookup /*moves*/, void *answer_fn); /* +1 */ diff --git a/packages/runtime/src/scr_string.c b/packages/runtime/src/scr_string.c index 30dee160c..d0fe77333 100644 --- a/packages/runtime/src/scr_string.c +++ b/packages/runtime/src/scr_string.c @@ -1581,18 +1581,7 @@ static const struct { size_t rc; size_t len; size_t cap; char data[4]; } /* Split owns a fresh array and appends only present string values. Fill an * available dense slot directly; ordinary push handles growth and the sparse * boundary. The array remains valid after every append, including RC audit. */ -/* split(separator, limit) with a STRING separator (ECMA-262 22.1.3.23): - * limit is ToUint32'd; zero returns [] and reaching the limit stops before - * any later separator probes. The no-limit wrapper supplies 2^32-1. - * an empty separator splits into single UTF-16 code units ("".split("") is - * [] — no probe matches nothing); a non-empty separator splits on every - * byte-level occurrence (well-formed UTF-8 is self-synchronizing, so byte - * matches are exactly code-point matches), keeping empty pieces at the - * ends and between adjacent separators; an empty subject with a non-empty - * separator is [""]. Where JS's per-unit split of an astral char would - * yield the two lone surrogate halves, each half is U+FFFD here - * (divergence 2 — the same substitution the island's boundary marshal - * applied). Borrows both; returns a +1 string[]. */ + void scr_str_split_cursor_init(ScrSplitCursor *cursor, uint32_t limit) { cursor->offset = 0; cursor->remaining = limit; @@ -2186,7 +2175,6 @@ ScrStr *scr_str_cp_at(ScrStr *s, double i) { return scr_str_from_span(s->data + off, adv); } - /* ── the URI component codecs (encodeURIComponent/decodeURIComponent) ── * ECMA-262 Encode/Decode with the component sets, byte-wise over the * runtime's UTF-8 storage: the spec percent-encodes each code point's diff --git a/packages/runtime/src/scr_url.c b/packages/runtime/src/scr_url.c index fc35e0923..373e0cb5e 100644 --- a/packages/runtime/src/scr_url.c +++ b/packages/runtime/src/scr_url.c @@ -1750,9 +1750,9 @@ static ScrDyn *url_property_read(const ScrDyn *object, const char *name) { scr_dyn_release(view); return value; } - if (object->kind == SCR_DYN_JSVAL || object->kind == SCR_DYN_HANDLE) { + if (object->kind == SCR_DYN_HANDLE) { ScrStr *key = scr_str_new(name, strlen(name)); - ScrDyn *value = object->kind == SCR_DYN_JSVAL ? scr_dyn_isl_key_get(object, key) : scr_dyn_handle_key_get(object, key); + ScrDyn *value = scr_dyn_handle_key_get(object, key); scr_str_release(key); return value; } diff --git a/packages/runtime/src/scr_util.c b/packages/runtime/src/scr_util.c index f594b59f7..d506c9e7a 100644 --- a/packages/runtime/src/scr_util.c +++ b/packages/runtime/src/scr_util.c @@ -200,7 +200,7 @@ static bool pa_default_value_ok(const ScrDyn *v, int type) { return type == 1 ? v->kind == SCR_DYN_STR : v->kind == SCR_DYN_BOOL; } -static ScrDyn *pa_materialize_js_array(const ScrDyn *value); +static ScrDyn *pa_materialize_array(const ScrDyn *value); static bool pa_validate_option(const ScrStr *name, const ScrDyn *desc) { char *base = pa_path("options.", name->data, name->len, ""); @@ -248,9 +248,8 @@ static bool pa_validate_option(const ScrStr *name, const ScrDyn *desc) { if (def) { char *path = pa_path(base, "", 0, ".default"); if (pa_desc_multiple(desc)) { - /* A live typed/island array stays in the descriptor so phase 3 can - * return that exact reference. Validate against a temporary snapshot. */ - ScrDyn *items = pa_materialize_js_array(def); + + ScrDyn *items = pa_materialize_array(def); if (!items) { free(path); free(base); @@ -457,64 +456,16 @@ static ScrDyn *pa_default_args(void) { return args; } -/* Copy an engine-backed array into the native dyn alphabet without using - * its iterator. Node's parseArgs takes args with Array.prototype.slice, - * so indexed Gets (including holes -> undefined) and the live length are - * the relevant semantics; an overridden Symbol.iterator is not. */ -static ScrDyn *pa_materialize_js_array(const ScrDyn *value) { - if (value->kind == SCR_DYN_TYPED_REF) { - return scr_dyn_typed_ref_materialize(value); - } - if (value->kind != SCR_DYN_JSVAL || - !scr_dyn_jsval_ops()->is_array(value->v.jsval.cell)) { - return scr_dyn_retain((ScrDyn *)value); - } - ScrStr *length_key = scr_str_new("length", 6); - ScrDyn *length = scr_dyn_jsval_ops()->key_get(value->v.jsval.cell, - length_key); - scr_str_release(length_key); - if (!length) return NULL; - if (length->kind != SCR_DYN_NUM || !isfinite(length->v.num) || - length->v.num < 0) { - scr_dyn_release(length); - return scr_dyn_retain((ScrDyn *)value); /* defensive: real arrays cannot */ - } - size_t len = (size_t)length->v.num; - scr_dyn_release(length); - ScrDyn *out = scr_dyn_new_arr(); - for (size_t i = 0; i < len; i++) { - char index[32]; - int n = snprintf(index, sizeof index, "%zu", i); - ScrStr *key = scr_str_new(index, (size_t)n); - ScrDyn *item = scr_dyn_jsval_ops()->key_get(value->v.jsval.cell, key); - scr_str_release(key); - if (!item) { - scr_dyn_release(out); - return NULL; - } - scr_dyn_arr_push(out, item); - } - return out; +/* Materialize typed array references for indexed native reads. */ +static ScrDyn *pa_materialize_array(const ScrDyn *value) { + if (value->kind == SCR_DYN_TYPED_REF) return scr_dyn_typed_ref_materialize(value); + return scr_dyn_retain((ScrDyn *)value); } -/* Own-member read with an owned answer. Native config objects are already - * inert dyn data; engine-backed configs route Object.hasOwn + Get through - * the island so a normal `any` config can enter the native parser. */ static ScrDyn *pa_owned_member(const ScrDyn *obj, const char *key) { - if (obj->kind == SCR_DYN_OBJ) { - const ScrDyn *value = pa_own_member(obj, key); - return value ? scr_dyn_retain((ScrDyn *)value) : NULL; - } - if (obj->kind != SCR_DYN_JSVAL) return NULL; - ScrStr *name = scr_str_new(key, strlen(key)); - int own = scr_dyn_jsval_ops()->has_own(obj->v.jsval.cell, name); - if (own != 1) { - scr_str_release(name); - return NULL; - } - ScrDyn *value = scr_dyn_jsval_ops()->key_get(obj->v.jsval.cell, name); - scr_str_release(name); - return value; + if (obj->kind != SCR_DYN_OBJ) return NULL; + const ScrDyn *value = pa_own_member(obj, key); + return value ? scr_dyn_retain((ScrDyn *)value) : NULL; } static ScrDyn *pa_materialize_descriptor(const ScrDyn *desc) { @@ -524,17 +475,11 @@ static ScrDyn *pa_materialize_descriptor(const ScrDyn *desc) { scr_dyn_release(view); return out; } - if (desc->kind == SCR_DYN_JSVAL && - scr_dyn_jsval_ops()->is_array(desc->v.jsval.cell)) { - return pa_materialize_js_array(desc); - } - if (desc->kind != SCR_DYN_OBJ && desc->kind != SCR_DYN_JSVAL) { - return scr_dyn_retain((ScrDyn *)desc); - } - if (desc->kind == SCR_DYN_JSVAL && - !scr_dyn_isl_typeof_is(desc, "object")) { + + if (desc->kind != SCR_DYN_OBJ) { return scr_dyn_retain((ScrDyn *)desc); } + static const char *const fields[] = {"type", "short", "multiple", "default"}; ScrDyn *out = scr_dyn_new_obj(); for (size_t i = 0; i < sizeof fields / sizeof fields[0]; i++) { @@ -543,13 +488,11 @@ static ScrDyn *pa_materialize_descriptor(const ScrDyn *desc) { if (scr_exc_pending()) { scr_dyn_release(out); return NULL; } continue; } - /* Node assigns a descriptor default directly into result.values. Keep - * typed array defaults as their original static reference; island arrays - * still need the ordinary native snapshot so dynCheck can consume them. */ + ScrDyn *native = strcmp(fields[i], "default") == 0 && value->kind == SCR_DYN_TYPED_REF ? scr_dyn_retain(value) - : pa_materialize_js_array(value); + : pa_materialize_array(value); scr_dyn_release(value); if (!native) { scr_dyn_release(out); return NULL; } scr_dyn_obj_set(out, fields[i], strlen(fields[i]), native); @@ -564,17 +507,11 @@ static ScrDyn *pa_materialize_options(const ScrDyn *options) { scr_dyn_release(view); return out; } - if (options->kind == SCR_DYN_JSVAL && - scr_dyn_jsval_ops()->is_array(options->v.jsval.cell)) { - return pa_materialize_js_array(options); - } - if (options->kind != SCR_DYN_OBJ && options->kind != SCR_DYN_JSVAL) { - return scr_dyn_retain((ScrDyn *)options); - } - if (options->kind == SCR_DYN_JSVAL && - !scr_dyn_isl_typeof_is(options, "object")) { + + if (options->kind != SCR_DYN_OBJ) { return scr_dyn_retain((ScrDyn *)options); } + ScrDyn *entries = scr_dyn_obj_entries(options); if (!entries) return NULL; ScrDyn *out = scr_dyn_new_obj(); @@ -593,9 +530,6 @@ static ScrDyn *pa_materialize_options(const ScrDyn *options) { return out; } -/* Normalize the documented config members only. This is intentionally a - * snapshot, matching parseArgs's synchronous reads, while preserving own - * property presence (including explicit undefined) across the island. */ static ScrDyn *pa_materialize_config(const ScrDyn *config) { if (config->kind == SCR_DYN_TYPED_REF) { ScrDyn *view = scr_dyn_typed_ref_materialize(config); @@ -603,7 +537,7 @@ static ScrDyn *pa_materialize_config(const ScrDyn *config) { scr_dyn_release(view); return out; } - if (config->kind != SCR_DYN_OBJ && config->kind != SCR_DYN_JSVAL) { + if (config->kind != SCR_DYN_OBJ) { return scr_dyn_retain((ScrDyn *)config); } static const char *const fields[] = { @@ -618,7 +552,7 @@ static ScrDyn *pa_materialize_config(const ScrDyn *config) { } ScrDyn *native = strcmp(fields[i], "options") == 0 ? pa_materialize_options(value) - : pa_materialize_js_array(value); + : pa_materialize_array(value); scr_dyn_release(value); if (!native) { scr_dyn_release(out); return NULL; } scr_dyn_obj_set(out, fields[i], strlen(fields[i]), native); diff --git a/packages/runtime/src/scr_util_compare.c b/packages/runtime/src/scr_util_compare.c index 0a9dbcddd..bb7cd4c41 100644 --- a/packages/runtime/src/scr_util_compare.c +++ b/packages/runtime/src/scr_util_compare.c @@ -121,10 +121,7 @@ static bool util_deep_equal(const ScrDyn *a, const ScrDyn *b, bool skip, if (scr_dyn_same_value(a, b)) return true; if (a->kind == SCR_DYN_PROXY || b->kind == SCR_DYN_PROXY) return util_deep_refused("native Proxy values"); - if (a->kind == SCR_DYN_JSVAL || b->kind == SCR_DYN_JSVAL) { - scr_dyn_isl_fence(a->kind == SCR_DYN_JSVAL ? a : b, "util.isDeepStrictEqual"); - return false; - } + if (a->kind == SCR_DYN_TYPED_REF || b->kind == SCR_DYN_TYPED_REF) { const ScrDyn *inputs[] = { a, b }; for (size_t i = 0; i < 2; i++) { diff --git a/packages/runtime/src/scr_web.c b/packages/runtime/src/scr_web.c deleted file mode 100644 index f79ff4219..000000000 --- a/packages/runtime/src/scr_web.c +++ /dev/null @@ -1,2439 +0,0 @@ -/* Web-platform globals for the dynamic island: a pure-JS prelude evaluated - * once at engine boot (before any embedded module runs — eventsource-parser - * subclasses TransformStream at module-eval time), defining the WHATWG - * subset the embedded-npm request paths exercise. Compiled and linked ONLY - * under -DSCR_DYNAMIC, like scr_island.c. - * - * This file owns the semantics-heavy globals: the streams library - * (ReadableStream, WritableStream with queued sink writes and strategy - * backpressure, TransformStream with readable-side backpressure), the encoders - * (TextEncoder, - * TextDecoder — the WHATWG utf-8 state machine exactly, other labels - * fenced — and TextEncoderStream/TextDecoderStream), URLSearchParams, btoa/atob, Headers, - * the fetch value classes (Request/Response with stream-or-bytes bodies, - * consumed through text/json/bytes/arrayBuffer; clone() fenced; plus the - * __scr_mk_response seam scr_fetch.c's glue builds wire responses - * through), DOMException and AbortController/AbortSignal (pure JS state; - * AbortSignal.timeout arms an unref'd island timer through host.timer — - * the machinery at the bottom of this file; fetch's signal wiring lives - * in scr_fetch.c's glue), crypto (getRandomValues/randomUUID over host functions - * bridging to the SAME arc4random_buf CSPRNG the static crypto lowerings - * use), and a console shim (String()-formatted writes to the real fds — - * no printf formatting, no object inspection). fetch itself lives in - * scr_fetch.c, linked only when the embedded graph references it. The correctness bar is the WHATWG - * subset the AI-SDK / eventsource-parser paths use — implemented honestly - * and pinned by the differential harness against Node's REAL - * implementations (the web-streams npm fixture, corpus 1120) plus - * scriptc-only fence tests (tests/harness/web-globals.test.ts). OUT, - * with clear errors: byte streams ('type': 'bytes') and BYOB readers, - * stream transfer, and non-utf-8 TextDecoder labels. Default-stream piping, - * teeing, reader/controller lifecycles, and transform backpressure are - * pinned by differential fixtures; the limitations page records the boundaries. - * - * JS behavior is pinned against Node's native WHATWG implementations - * by differential fixtures (a transcript battery: reader protocol, pull timing, - * error propagation both directions, cancel-on-break, flush ordering, - * utf-8 maximal-subpart replacement, BOM handling, form encoding, header - * combining/sorting) running under BOTH engines before being embedded. */ -#ifdef SCR_DYNAMIC - -#include "scr_runtime.h" - -#include -#include -#include -#include -#include - -#include "quickjs.h" - -/* The prelude: one arrow function evaluated at boot and called with a host - * object (I/O-free today; the host parameter is the seam later slices — - * encoders, crypto — bridge through). */ -static const char web_prelude[] = - "(host) => {\n" - " 'use strict';\n" - " const g = globalThis;\n" - "\n" - " /* Timers: Node's setTimeout/clearTimeout/setInterval/clearInterval\n" - " * for embedded code, bridged onto the SHARED static timer heap\n" - " * (host.setTimer/host.clearTimer) — REF'd like Node's (an armed\n" - " * timer keeps the process alive), FIFO-ordered against static\n" - " * timers on one heap, Node's <1ms clamp. Returns a Timeout-shaped\n" - " * object with real ref/unref/refresh/close operations. Immediates\n" - " * use the native check queue, independently of timer ids. */\n" - " const timers = new Map();\n" - " class Timeout {\n" - " constructor(fn, delay, args, repeat) {\n" - " this._fn = fn;\n" - " this._delay = delay;\n" - " this._args = args;\n" - " this._repeat = repeat;\n" - " this._reffed = true;\n" - " this._closed = false;\n" - " this._callback = () => {\n" - " if (!this._repeat) { this._destroyed = true; timers.delete(this._id); }\n" - " this._fn.apply(this, this._args);\n" - " };\n" - " this._arm();\n" - " }\n" - " _arm() {\n" - " this._destroyed = false;\n" - " this._id = host.setTimer(this._callback, this._delay, this._repeat, false);\n" - " timers.set(this._id, this);\n" - " if (!this._reffed) host.refTimer(this._id, false, false);\n" - " }\n" - " ref() { this._reffed = true; host.refTimer(this._id, true, false); return this; }\n" - " unref() { this._reffed = false; host.refTimer(this._id, false, false); return this; }\n" - " hasRef() { return this._reffed; }\n" - " refresh() {\n" - " if (this._closed) return this;\n" - " if (this._destroyed) this._arm();\n" - " else host.refreshTimer(this._id);\n" - " return this;\n" - " }\n" - " close() { this._closed = true; this._destroyed = true; timers.delete(this._id); host.clearTimer(this._id, false); return this; }\n" - " [Symbol.dispose]() { this.close(); }\n" - " [Symbol.toPrimitive]() { return this._id; }\n" - " }\n" - " const mkTimer = (fn, ms, args, repeat) => {\n" - " if (typeof fn !== 'function') {\n" - " throw new TypeError('The \"callback\" argument must be of type function. Received type ' + typeof fn);\n" - " }\n" - " return new Timeout(fn, Number(ms), args, repeat);\n" - " };\n" - " g.setTimeout = (fn, ms, ...args) => mkTimer(fn, ms, args, false);\n" - " g.setInterval = (fn, ms, ...args) => mkTimer(fn, ms, args, true);\n" - " g.clearTimeout = (t) => {\n" - " if (t === undefined || t === null) return;\n" - " const id = typeof t === 'number' ? t : Number(t);\n" - " if (Number.isFinite(id)) {\n" - " const timer = timers.get(id);\n" - " if (timer) timer.close(); else host.clearTimer(id, false);\n" - " }\n" - " };\n" - " g.clearInterval = g.clearTimeout;\n" - " class Immediate {\n" - " constructor(fn, args) {\n" - " this._reffed = true; this._destroyed = false;\n" - " this._id = host.setTimer(() => {\n" - " this._destroyed = true; this._reffed = false; fn.apply(this, args);\n" - " }, 0, false, true);\n" - " }\n" - " ref() { if (!this._destroyed) { this._reffed = true; host.refTimer(this._id, true, true); } return this; }\n" - " unref() { if (!this._destroyed) { this._reffed = false; host.refTimer(this._id, false, true); } return this; }\n" - " hasRef() { return this._reffed; }\n" - " _close() { this._destroyed = true; this._reffed = false; host.clearTimer(this._id, true); }\n" - " [Symbol.dispose]() { this._close(); }\n" - " }\n" - " g.setImmediate = (fn, ...args) => {\n" - " if (typeof fn !== 'function') throw new TypeError('The \"callback\" argument must be of type function. Received type ' + typeof fn);\n" - " return new Immediate(fn, args);\n" - " };\n" - " g.clearImmediate = (immediate) => { if (immediate instanceof Immediate) immediate._close(); };\n" - "\n" - " // Queue sizing is shared by the readable and writable default streams.\n" - " const streamError = (Ctor, code, message) => Object.assign(new Ctor(message), { code });\n" - " const streamReceived = (v) => {\n" - " if (v === null || v === undefined) return String(v);\n" - " if (typeof v === 'function') return 'function ' + v.name;\n" - " if (typeof v === 'object') return 'an instance of ' + (v.constructor && v.constructor.name || 'Object');\n" - " return 'type ' + typeof v + ' (' + (typeof v === 'string' ? \"'\" + v + \"'\" : String(v) + (typeof v === 'bigint' ? 'n' : '')) + ')';\n" - " };\n" - " const streamArgument = (name, expected, v) => streamError(TypeError, 'ERR_INVALID_ARG_TYPE',\n" - " 'The \"' + name + '\" ' + (name.includes('.') ? 'property' : 'argument') + ' must be ' + expected + '. Received ' + streamReceived(v));\n" - " const streamInvalidThis = (name) => streamError(TypeError, 'ERR_INVALID_THIS', 'Value of \"this\" must be of type ' + name);\n" - " const streamInvalidState = (message) => streamError(TypeError, 'ERR_INVALID_STATE', 'Invalid state: ' + message);\n" - " const streamInvalidValue = (name, value) => streamError(RangeError, 'ERR_INVALID_ARG_VALUE',\n" - " \"The \" + (name.includes('.') ? 'property' : 'argument') + \" '\" + name + \"' is invalid. Received \" + (typeof value === 'string' ? \"'\" + value + \"'\" : String(value)));\n" - " const streamStrategy = (strategy, fallback) => {\n" - " if (strategy === undefined || strategy === null) strategy = {};\n" - " if (typeof strategy !== 'object' && typeof strategy !== 'function') throw streamArgument('strategy', 'of type object', strategy);\n" - " const size = strategy.size;\n" - " if (size !== undefined && typeof size !== 'function') throw streamArgument('strategy.size', 'of type function', size);\n" - " const value = strategy.highWaterMark;\n" - " const highWaterMark = value === undefined ? fallback : +value;\n" - " if (Number.isNaN(highWaterMark) || highWaterMark < 0) throw streamInvalidValue('strategy.highWaterMark', highWaterMark);\n" - " return { size: size === undefined ? () => 1 : size, highWaterMark };\n" - " };\n" - " const streamChunkSize = (value) => {\n" - " const size = +value;\n" - " if (!Number.isFinite(size) || size < 0) throw streamInvalidValue('size', size);\n" - " return size;\n" - " };\n" - " const streamDeferred = (handled = false) => {\n" - " const d = { settled: false };\n" - " d.promise = new Promise((resolve, reject) => {\n" - " d.resolve = () => { d.settled = true; resolve(); };\n" - " d.reject = (e) => { d.settled = true; reject(e); };\n" - " });\n" - " if (handled) d.promise.catch(() => {});\n" - " return d;\n" - " };\n" - " const streamRejectSlot = (owner, key, e) => {\n" - " if (owner[key].settled) owner[key] = streamDeferred(true);\n" - " owner[key].reject(e);\n" - " };\n" - " const countStrategyStates = new WeakMap();\n" - " const byteStrategyStates = new WeakMap();\n" - " const countSize = Object.defineProperty(() => 1, 'name', { value: 'size' });\n" - " const byteSize = Object.defineProperty((chunk) => chunk.byteLength, 'name', { value: 'size' });\n" - " const strategyInit = (init) => {\n" - " if (init === null || typeof init !== 'object' || Array.isArray(init)) throw streamArgument('init', 'of type object', init);\n" - " if (init.highWaterMark === undefined) throw streamError(TypeError, 'ERR_MISSING_OPTION', 'init.highWaterMark is required');\n" - " return +init.highWaterMark;\n" - " };\n" - " class CountQueuingStrategy {\n" - " constructor(init) { countStrategyStates.set(this, strategyInit(init)); }\n" - " get highWaterMark() { if (!countStrategyStates.has(this)) throw new TypeError('Invalid CountQueuingStrategy receiver'); return countStrategyStates.get(this); }\n" - " get size() { if (!countStrategyStates.has(this)) throw new TypeError('Invalid CountQueuingStrategy receiver'); return countSize; }\n" - " }\n" - " class ByteLengthQueuingStrategy {\n" - " constructor(init) { byteStrategyStates.set(this, strategyInit(init)); }\n" - " get highWaterMark() { if (!byteStrategyStates.has(this)) throw new TypeError('Invalid ByteLengthQueuingStrategy receiver'); return byteStrategyStates.get(this); }\n" - " get size() { if (!byteStrategyStates.has(this)) throw new TypeError('Invalid ByteLengthQueuingStrategy receiver'); return byteSize; }\n" - " }\n" - "\n" - " const writableStreams = new WeakMap();\n" - " const writableWriters = new WeakMap();\n" - " const writableControllers = new WeakMap();\n" - " const writableToken = Symbol('WritableStreamDefaultController');\n" - " const writableWriterState = (s) => s.writer === undefined ? undefined : writableWriters.get(s.writer);\n" - " const writableBackpressure = (s) => {\n" - " const pressure = s.highWaterMark - s.queueSize <= 0;\n" - " const w = writableWriterState(s);\n" - " if (w && s.backpressure !== pressure) {\n" - " if (pressure) w.ready = streamDeferred(true);\n" - " else w.ready.resolve();\n" - " }\n" - " s.backpressure = pressure;\n" - " };\n" - " const writableClear = (s) => { s.write = s.close = s.abort = s.size = undefined; };\n" - " const writableRejectClosed = (s) => {\n" - " if (s.closeRequest) { s.closeRequest.reject(s.error); s.closeRequest = undefined; }\n" - " const w = writableWriterState(s);\n" - " if (w) w.closed.reject(s.error);\n" - " };\n" - " const writableFinishError = (s) => {\n" - " s.state = 'errored';\n" - " for (const q of s.queue) if (q.kind === 'write') q.request.reject(s.error);\n" - " s.queue = []; s.queueSize = 0;\n" - " const a = s.abortRequest;\n" - " s.abortRequest = undefined;\n" - " if (!a) { writableRejectClosed(s); return; }\n" - " if (a.alreadyErroring) { a.request.reject(s.error); writableRejectClosed(s); return; }\n" - " const result = writableInvoke(s.abort, s.sink, [a.reason]);\n" - " writableClear(s);\n" - " result.then(\n" - " () => { a.request.resolve(); writableRejectClosed(s); },\n" - " (e) => { a.request.reject(e); writableRejectClosed(s); },\n" - " );\n" - " };\n" - " const writableError = (s, e) => {\n" - " if (s.state !== 'writable') return;\n" - " s.state = 'erroring'; s.error = e;\n" - " const w = writableWriterState(s);\n" - " if (w) streamRejectSlot(w, 'ready', e);\n" - " if (s.started && !s.inFlight) writableFinishError(s);\n" - " };\n" - " // Async callback wrappers adopt returned thenables and turn sync throws into rejections.\n" - " const writableInvoke = async (fn, receiver, args) => fn ? fn.apply(receiver, args) : undefined;\n" - " const writableAdvance = (s) => {\n" - " if (!s.started || s.inFlight || s.state === 'closed' || s.state === 'errored') return;\n" - " if (s.state === 'erroring') { writableFinishError(s); return; }\n" - " if (!s.queue.length) return;\n" - " const q = s.queue[0];\n" - " s.inFlight = q;\n" - " if (q.kind === 'close') {\n" - " s.queue.shift();\n" - " const result = writableInvoke(s.close, s.sink, []);\n" - " writableClear(s);\n" - " result.then(\n" - " () => {\n" - " q.request.resolve(); s.inFlight = undefined;\n" - " if (s.abortRequest) { s.abortRequest.request.resolve(); s.abortRequest = undefined; }\n" - " s.state = 'closed'; s.error = undefined; s.closeRequest = undefined;\n" - " const w = writableWriterState(s);\n" - " if (w) w.closed.resolve();\n" - " },\n" - " (e) => {\n" - " q.request.reject(e); s.inFlight = undefined; s.closeRequest = undefined;\n" - " if (s.abortRequest) { s.abortRequest.request.reject(e); s.abortRequest = undefined; }\n" - " if (s.state === 'writable') writableError(s, e); else writableFinishError(s);\n" - " },\n" - " );\n" - " return;\n" - " }\n" - " writableInvoke(s.write, s.sink, [q.chunk, s.controller]).then(\n" - " () => {\n" - " q.request.resolve(); s.inFlight = undefined; s.queue.shift();\n" - " s.queueSize = Math.max(0, s.queueSize - q.size);\n" - " if (s.state === 'writable' && !s.closeRequest) writableBackpressure(s);\n" - " writableAdvance(s);\n" - " },\n" - " (e) => {\n" - " q.request.reject(e); s.inFlight = undefined; s.queue.shift();\n" - " if (s.state === 'writable') { writableClear(s); writableError(s, e); }\n" - " else writableFinishError(s);\n" - " },\n" - " );\n" - " };\n" - " const writableAbort = (s, reason) => {\n" - " if (s.state === 'closed' || s.state === 'errored') return Promise.resolve();\n" - " s.abortController.abort(reason);\n" - " if (s.abortRequest) return s.abortRequest.request.promise;\n" - " // Signal listeners may have closed or errored the stream synchronously.\n" - " if (s.state === 'closed' || s.state === 'errored') return Promise.resolve();\n" - " const alreadyErroring = s.state === 'erroring';\n" - " const request = streamDeferred();\n" - " s.abortRequest = { request, reason, alreadyErroring };\n" - " if (!alreadyErroring) writableError(s, reason);\n" - " return request.promise;\n" - " };\n" - " const writableClose = (s, writer) => {\n" - " if (s.closeRequest) return Promise.reject(streamInvalidState(writer ? 'Failure to close WritableStream' : 'Failure closing WritableStream'));\n" - " if (s.state === 'closed' || s.state === 'errored') return Promise.reject(streamInvalidState('WritableStream is closed'));\n" - " const request = streamDeferred();\n" - " s.closeRequest = request;\n" - " const w = writableWriterState(s);\n" - " if (w && s.backpressure && s.state === 'writable') w.ready.resolve();\n" - " s.queue.push({ kind: 'close', request });\n" - " writableAdvance(s);\n" - " return request.promise;\n" - " };\n" - " class WritableStream {\n" - " constructor(sink = {}, strategy) {\n" - " if (sink === null || (typeof sink !== 'object' && typeof sink !== 'function')) throw streamArgument('sink', 'of type object', sink);\n" - " const type = sink.type;\n" - " if (type !== undefined) throw streamInvalidValue('type', type);\n" - " const { size, highWaterMark } = streamStrategy(strategy, 1);\n" - " // Capture algorithms once: replacing sink methods later must not change the stream.\n" - " const start = sink.start, write = sink.write, close = sink.close, abort = sink.abort;\n" - " for (const [name, fn] of [['write', write], ['close', close], ['abort', abort]]) {\n" - " if (fn && typeof fn !== 'function') throw streamArgument('sink.' + name, 'of type function', fn);\n" - " }\n" - " if (start && typeof start !== 'function') throw new TypeError('Bind must be called on a function');\n" - " const s = { sink, size, highWaterMark, write, close, abort, state: 'writable', error: undefined,\n" - " queue: [], queueSize: 0, started: false, inFlight: undefined, writer: undefined,\n" - " closeRequest: undefined, abortRequest: undefined, backpressure: highWaterMark <= 0, abortController: new g.AbortController() };\n" - " writableStreams.set(this, s);\n" - " s.controller = new WritableStreamDefaultController(writableToken, s);\n" - " const result = start ? start.call(sink, s.controller) : undefined;\n" - " new Promise((resolve) => resolve(result)).then(\n" - " () => { s.started = true; writableAdvance(s); },\n" - " (e) => { s.started = true; if (s.state === 'writable') writableError(s, e); else writableFinishError(s); },\n" - " );\n" - " }\n" - " get locked() { const s = writableStreams.get(this); if (!s) throw streamInvalidThis('WritableStream'); return s.writer !== undefined; }\n" - " getWriter() { if (!writableStreams.has(this)) throw streamInvalidThis('WritableStream'); return new WritableStreamDefaultWriter(this); }\n" - " abort(reason) {\n" - " const s = writableStreams.get(this);\n" - " if (!s) return Promise.reject(streamInvalidThis('WritableStream'));\n" - " if (s.writer !== undefined) return Promise.reject(streamInvalidState('WritableStream is locked'));\n" - " return writableAbort(s, reason);\n" - " }\n" - " close() {\n" - " const s = writableStreams.get(this);\n" - " if (!s) return Promise.reject(streamInvalidThis('WritableStream'));\n" - " if (s.writer !== undefined) return Promise.reject(streamInvalidState('WritableStream is locked'));\n" - " return writableClose(s, false);\n" - " }\n" - " }\n" - " class WritableStreamDefaultWriter {\n" - " constructor(stream) {\n" - " const s = writableStreams.get(stream);\n" - " if (!s) throw streamArgument('stream', 'an instance of WritableStream', stream);\n" - " if (s.writer !== undefined) throw streamInvalidState('WritableStream is locked');\n" - " const w = { stream: s, ready: streamDeferred(true), closed: streamDeferred(true) };\n" - " writableWriters.set(this, w); s.writer = this;\n" - " if (s.state === 'writable') { if (!s.backpressure || s.closeRequest) w.ready.resolve(); }\n" - " else if (s.state === 'closed') { w.ready.resolve(); w.closed.resolve(); }\n" - " else { w.ready.reject(s.error); if (s.state === 'errored') w.closed.reject(s.error); }\n" - " }\n" - " get closed() { const w = writableWriters.get(this); return w ? w.closed.promise : Promise.reject(streamInvalidThis('WritableStreamDefaultWriter')); }\n" - " get ready() { const w = writableWriters.get(this); return w ? w.ready.promise : Promise.reject(streamInvalidThis('WritableStreamDefaultWriter')); }\n" - " get desiredSize() {\n" - " const w = writableWriters.get(this);\n" - " if (!w) throw streamInvalidThis('WritableStreamDefaultWriter');\n" - " if (!w.stream) throw streamInvalidState('Writer is not bound to a WritableStream');\n" - " const s = w.stream;\n" - " return s.state === 'closed' ? 0 : s.state === 'writable' ? s.highWaterMark - s.queueSize : null;\n" - " }\n" - " write(chunk) {\n" - " const w = writableWriters.get(this);\n" - " if (!w) return Promise.reject(streamInvalidThis('WritableStreamDefaultWriter'));\n" - " const s = w.stream;\n" - " if (!s) return Promise.reject(streamInvalidState('Writer is not bound to a WritableStream'));\n" - " let value = 1;\n" - " try { if (s.size) value = s.size.call(undefined, chunk); }\n" - " catch (e) { if (s.state === 'writable') { writableClear(s); writableError(s, e); } }\n" - " if (w.stream !== s) return Promise.reject(streamInvalidState('Mismatched WritableStreams'));\n" - " if (s.state === 'errored') return Promise.reject(s.error);\n" - " if (s.closeRequest || s.state === 'closed') return Promise.reject(streamInvalidState('WritableStream is closed'));\n" - " if (s.state === 'erroring') return Promise.reject(s.error);\n" - " const request = streamDeferred();\n" - " let size;\n" - " try { size = streamChunkSize(value); }\n" - " catch (e) {\n" - " // The write request joins the queue before invalid sizing errors the stream.\n" - " s.queue.push({ kind: 'write', request }); writableClear(s); writableError(s, e);\n" - " return request.promise;\n" - " }\n" - " s.queue.push({ kind: 'write', chunk, size, request }); s.queueSize += size;\n" - " writableBackpressure(s); writableAdvance(s);\n" - " return request.promise;\n" - " }\n" - " close() {\n" - " const w = writableWriters.get(this);\n" - " if (!w) return Promise.reject(streamInvalidThis('WritableStreamDefaultWriter'));\n" - " if (!w.stream) return Promise.reject(streamInvalidState('Writer is not bound to a WritableStream'));\n" - " return writableClose(w.stream, true);\n" - " }\n" - " abort(reason) {\n" - " const w = writableWriters.get(this);\n" - " if (!w) return Promise.reject(streamInvalidThis('WritableStreamDefaultWriter'));\n" - " if (!w.stream) return Promise.reject(streamInvalidState('Writer is not bound to a WritableStream'));\n" - " return writableAbort(w.stream, reason);\n" - " }\n" - " releaseLock() {\n" - " const w = writableWriters.get(this);\n" - " if (!w) throw streamInvalidThis('WritableStreamDefaultWriter');\n" - " if (!w.stream) return;\n" - " const e = streamInvalidState('Writer has been released');\n" - " streamRejectSlot(w, 'ready', e); streamRejectSlot(w, 'closed', e);\n" - " w.stream.writer = undefined; w.stream = undefined;\n" - " }\n" - " }\n" - " class WritableStreamDefaultController {\n" - " constructor(token, stream) {\n" - " if (token !== writableToken) throw streamError(TypeError, 'ERR_ILLEGAL_CONSTRUCTOR', 'Illegal constructor');\n" - " writableControllers.set(this, stream);\n" - " }\n" - " get signal() { const s = writableControllers.get(this); if (!s) throw streamInvalidThis('WritableStreamDefaultController'); return s.abortController.signal; }\n" - " error(e) {\n" - " const s = writableControllers.get(this);\n" - " if (!s) throw streamInvalidThis('WritableStreamDefaultController');\n" - " if (s.state === 'writable') { writableClear(s); writableError(s, e); }\n" - " }\n" - " }\n" - " for (const C of [WritableStream, WritableStreamDefaultWriter, WritableStreamDefaultController, CountQueuingStrategy, ByteLengthQueuingStrategy]) {\n" - " Object.defineProperty(C.prototype, Symbol.toStringTag, { value: C.name, configurable: true });\n" - " for (const name of Object.getOwnPropertyNames(C.prototype)) {\n" - " if (name !== 'constructor') Object.defineProperty(C.prototype, name, { enumerable: true });\n" - " }\n" - " g[C.name] = C;\n" - " }\n" - "\n" - " const readableStreams = new WeakSet();\n" - " const readableReaders = new WeakMap(), readableControllers = new WeakMap();\n" - " const readableToken = Symbol('ReadableStreamDefaultController');\n" - " const readableControllerStream = (controller) => {\n" - " const stream = readableControllers.get(controller);\n" - " if (!stream) throw new TypeError('Invalid ReadableStreamDefaultController receiver');\n" - " return stream;\n" - " };\n" - " class ReadableStreamDefaultController {\n" - " constructor(token, stream) {\n" - " if (token !== readableToken) throw streamError(TypeError, 'ERR_ILLEGAL_CONSTRUCTOR', 'Illegal constructor');\n" - " readableControllers.set(this, stream);\n" - " }\n" - " get desiredSize() {\n" - " const s = readableControllerStream(this);\n" - " return s._state === 'errored' ? null : s._state === 'closed' ? 0 : s._highWaterMark - s._queueSize;\n" - " }\n" - " enqueue(chunk) {\n" - " const s = readableControllerStream(this);\n" - " if (s._closeRequested || s._state !== 'readable') throw streamInvalidState('Controller is already closed');\n" - " if (s._reads.length) s._reads.shift().resolve({ value: chunk, done: false });\n" - " else {\n" - " let size;\n" - " try { size = streamChunkSize(s._size.call(undefined, chunk)); }\n" - " catch (e) { s._errorStream(e); throw e; }\n" - " s._queue.push({ chunk, size }); s._queueSize += size;\n" - " }\n" - " s._maybePull();\n" - " }\n" - " close() {\n" - " const s = readableControllerStream(this);\n" - " if (s._closeRequested || s._state !== 'readable') throw streamInvalidState('Controller is already closed');\n" - " s._closeRequested = true;\n" - " if (!s._queue.length) s._finishClose();\n" - " }\n" - " error(e) { readableControllerStream(this)._errorStream(e); }\n" - " }\n" - " class ReadableStreamDefaultReader {\n" - " constructor(stream) {\n" - " if (!readableStreams.has(stream)) throw streamArgument('stream', 'an instance of ReadableStream', stream);\n" - " if (stream._locked) throw streamInvalidState('ReadableStream is locked');\n" - " const r = { stream, closed: streamDeferred(true) };\n" - " readableReaders.set(this, r); stream._locked = true;\n" - " stream._closedResolve = r.closed.resolve; stream._closedReject = r.closed.reject;\n" - " if (stream._state === 'closed') r.closed.resolve();\n" - " else if (stream._state === 'errored') r.closed.reject(stream._storedError);\n" - " }\n" - " get closed() {\n" - " const r = readableReaders.get(this);\n" - " return r ? r.closed.promise : Promise.reject(streamInvalidThis('ReadableStreamDefaultReader'));\n" - " }\n" - " read() {\n" - " const r = readableReaders.get(this);\n" - " if (!r) return Promise.reject(streamInvalidThis('ReadableStreamDefaultReader'));\n" - " const s = r.stream;\n" - " if (!s) return Promise.reject(streamInvalidState('The reader is not attached to a stream'));\n" - " if (s._queue.length) {\n" - " const queued = s._queue.shift();\n" - " s._queueSize = Math.max(0, s._queueSize - queued.size);\n" - " if (s._closeRequested && !s._queue.length) s._finishClose(); else s._maybePull();\n" - " return Promise.resolve({ value: queued.chunk, done: false });\n" - " }\n" - " if (s._state === 'closed') return Promise.resolve({ value: undefined, done: true });\n" - " if (s._state === 'errored') return Promise.reject(s._storedError);\n" - " return new Promise((resolve, reject) => { s._reads.push({ resolve, reject }); s._maybePull(); });\n" - " }\n" - " cancel(reason) {\n" - " const r = readableReaders.get(this);\n" - " if (!r) return Promise.reject(streamInvalidThis('ReadableStreamDefaultReader'));\n" - " if (!r.stream) return Promise.reject(streamInvalidState('The reader is not attached to a stream'));\n" - " return r.stream._cancelInternal(reason);\n" - " }\n" - " releaseLock() {\n" - " const r = readableReaders.get(this);\n" - " if (!r) throw streamInvalidThis('ReadableStreamDefaultReader');\n" - " const s = r.stream;\n" - " if (!s) return;\n" - " streamRejectSlot(r, 'closed', streamInvalidState('Reader released'));\n" - " const reads = s._reads; s._reads = [];\n" - " const error = streamInvalidState('Releasing reader');\n" - " for (const request of reads) request.reject(error);\n" - " s._locked = false; s._closedResolve = s._closedReject = null; r.stream = undefined;\n" - " }\n" - " }\n" - " for (const C of [ReadableStreamDefaultReader, ReadableStreamDefaultController]) {\n" - " Object.defineProperty(C.prototype, Symbol.toStringTag, { value: C.name, configurable: true });\n" - " for (const name of Object.getOwnPropertyNames(C.prototype)) if (name !== 'constructor') Object.defineProperty(C.prototype, name, { enumerable: true });\n" - " g[C.name] = C;\n" - " }\n" - "\n" - " class ReadableStream {\n" - " constructor(source, strategy) {\n" - " if (source === undefined) source = {};\n" - " if (source === null || (typeof source !== 'object' && typeof source !== 'function')) {\n" - " throw streamArgument('source', 'of type object', source);\n" - " }\n" - " if (strategy !== undefined && strategy !== null && typeof strategy !== 'object' && typeof strategy !== 'function') throw streamArgument('strategy', 'of type object', strategy);\n" - " const size = strategy?.size, mark = strategy?.highWaterMark, type = source.type;\n" - " if (`${type}` === 'bytes') throw new RangeError(\"byte streams (type: 'bytes') are not supported in the scriptc island\");\n" - " if (type !== undefined) throw streamError(TypeError, 'ERR_INVALID_ARG_VALUE', \"The property 'source.type' is invalid. Received \" + (typeof type === 'string' ? \"'\" + type + \"'\" : String(type)));\n" - " const highWaterMark = mark === undefined ? 1 : +mark;\n" - " if (Number.isNaN(highWaterMark) || highWaterMark < 0) throw streamInvalidValue('strategy.highWaterMark', highWaterMark);\n" - " const sizing = streamStrategy({ size, highWaterMark }, 1);\n" - " this._highWaterMark = sizing.highWaterMark;\n" - " this._size = sizing.size;\n" - " this._queueSize = 0;\n" - " this._src = source; readableStreams.add(this);\n" - " this._queue = [];\n" - " this._state = 'readable';\n" - " this._storedError = undefined;\n" - " this._locked = false;\n" - " this._reads = [];\n" - " this._closeRequested = false;\n" - " this._started = false;\n" - " this._pulling = false;\n" - " this._pullAgain = false;\n" - " this._closedResolve = null;\n" - " this._closedReject = null;\n" - " const start = source.start, pull = source.pull, cancel = source.cancel;\n" - " for (const [name, fn] of [['pull', pull], ['cancel', cancel]]) {\n" - " if (fn && typeof fn !== 'function') throw streamArgument('source.' + name, 'of type function', fn);\n" - " }\n" - " if (start && typeof start !== 'function') throw new TypeError('Bind must be called on a function');\n" - " this._pull = pull; this._cancel = cancel;\n" - " this._controller = new ReadableStreamDefaultController(readableToken, this);\n" - " let startResult;\n" - " if (start) startResult = start.call(source, this._controller); // a sync throw propagates, per spec\n" - " Promise.resolve(startResult).then(\n" - " () => { this._started = true; this._maybePull(); },\n" - " (e) => this._errorStream(e),\n" - " );\n" - " }\n" - " _finishClose() {\n" - " if (this._state !== 'readable') return;\n" - " this._state = 'closed'; this._pull = this._cancel = this._size = undefined;\n" - " const reads = this._reads;\n" - " this._reads = [];\n" - " for (const r of reads) r.resolve({ value: undefined, done: true });\n" - " if (this._closedResolve) this._closedResolve();\n" - " }\n" - " _errorStream(e) {\n" - " if (this._state !== 'readable') return;\n" - " this._state = 'errored';\n" - " this._storedError = e; this._pull = this._cancel = this._size = undefined;\n" - " this._queue.length = 0; this._queueSize = 0;\n" - " const reads = this._reads;\n" - " this._reads = [];\n" - " for (const r of reads) r.reject(e);\n" - " if (this._closedReject) this._closedReject(e);\n" - " }\n" - " /* Pull while demand is pending or the strategy has queue capacity. */\n" - " _maybePull() {\n" - " const src = this._src;\n" - " if (!this._pull || !this._started) return;\n" - " if (this._state !== 'readable' || this._closeRequested) return;\n" - " if (!this._reads.length && this._highWaterMark - this._queueSize <= 0) return;\n" - " if (this._pulling) { this._pullAgain = true; return; }\n" - " this._pulling = true;\n" - " Promise.resolve().then(() => {\n" - " if (this._state !== 'readable' || this._closeRequested) { this._pulling = false; return; }\n" - " let r;\n" - " try { r = this._pull.call(src, this._controller); } catch (e) { this._pulling = false; this._errorStream(e); return; }\n" - " Promise.resolve(r).then(\n" - " () => {\n" - " this._pulling = false;\n" - " if (this._pullAgain) { this._pullAgain = false; this._maybePull(); }\n" - " },\n" - " (e) => { this._pulling = false; this._errorStream(e); },\n" - " );\n" - " });\n" - " }\n" - " get locked() { if (!readableStreams.has(this)) throw streamInvalidThis('ReadableStream'); return this._locked; }\n" - " cancel(reason) {\n" - " if (!readableStreams.has(this)) return Promise.reject(streamInvalidThis('ReadableStream'));\n" - " if (this._locked) return Promise.reject(streamInvalidState('ReadableStream is locked'));\n" - " return this._cancelInternal(reason);\n" - " }\n" - " _cancelInternal(reason) {\n" - " if (this._state === 'closed') return Promise.resolve();\n" - " if (this._state === 'errored') return Promise.reject(this._storedError);\n" - " const cancel = this._cancel;\n" - " this._queue.length = 0; this._queueSize = 0;\n" - " this._closeRequested = true;\n" - " this._finishClose();\n" - " const src = this._src;\n" - " return writableInvoke(cancel, src, [reason]).then(() => undefined);\n" - " }\n" - " getReader(options) {\n" - " if (!readableStreams.has(this)) throw streamInvalidThis('ReadableStream');\n" - " if (options !== undefined && options !== null && typeof options !== 'object' && typeof options !== 'function') throw streamArgument('options', 'of type object', options);\n" - " const mode = options?.mode;\n" - " if (mode !== undefined) {\n" - " if (`${mode}` !== 'byob') throw streamError(TypeError, 'ERR_INVALID_ARG_VALUE', \"The property 'options.mode' is invalid. Received \" + (typeof mode === 'string' ? \"'\" + mode + \"'\" : String(mode)));\n" - " throw new TypeError('BYOB readers are not supported in the scriptc island');\n" - " }\n" - " return new ReadableStreamDefaultReader(this);\n" - " }\n" - " /* The iterator carries a `finished` latch because the ENGINE's\n" - " * for-await closes more eagerly than V8: quickjs-ng calls return()\n" - " * on NORMAL completion and after a next() rejection (V8 does\n" - " * neither), and an unlatched return() would then cancel a released\n" - " * reader — minting a rejected promise nobody awaits, which the\n" - " * unhandled-rejection tracker reports at exit. Same story for the\n" - " * no-op catch on return()'s result: the engine drops it on those\n" - " * paths, so a real cancel rejection must be pre-observed (callers\n" - " * who DO await it — the break path — still see the rejection). */\n" - " values(options) {\n" - " const preventCancel = options !== undefined && options !== null && !!options.preventCancel;\n" - " if (!readableStreams.has(this)) throw streamInvalidThis('ReadableStream');\n" - " const reader = new ReadableStreamDefaultReader(this);\n" - " let finished = false;\n" - " const it = {\n" - " next() {\n" - " if (finished) return Promise.resolve({ value: undefined, done: true });\n" - " return reader.read().then(\n" - " (r) => {\n" - " if (r.done) { finished = true; reader.releaseLock(); }\n" - " return r;\n" - " },\n" - " (e) => { finished = true; reader.releaseLock(); throw e; },\n" - " );\n" - " },\n" - " return(v) {\n" - " if (finished) return Promise.resolve({ value: v, done: true });\n" - " finished = true;\n" - " const p = preventCancel ? Promise.resolve() : reader.cancel(v);\n" - " reader.releaseLock();\n" - " const res = p.then(() => ({ value: v, done: true }));\n" - " res.catch(() => {});\n" - " return res;\n" - " },\n" - " [Symbol.asyncIterator]() { return this; },\n" - " };\n" - " return it;\n" - " }\n" - " [Symbol.asyncIterator](options) { return this.values(options); }\n" - " static from(iterable) {\n" - " if (iterable === undefined || iterable === null) {\n" - " throw new TypeError('ReadableStream.from requires an iterable');\n" - " }\n" - " const asyncMethod = iterable[Symbol.asyncIterator];\n" - " let method;\n" - " let asyncIterator = false;\n" - " if (asyncMethod !== undefined && asyncMethod !== null) {\n" - " if (typeof asyncMethod !== 'function') {\n" - " throw new TypeError('ReadableStream.from requires an iterable');\n" - " }\n" - " method = asyncMethod;\n" - " asyncIterator = true;\n" - " } else {\n" - " method = iterable[Symbol.iterator];\n" - " if (typeof method !== 'function') {\n" - " throw new TypeError('ReadableStream.from requires an iterable');\n" - " }\n" - " }\n" - " const iterator = method.call(iterable);\n" - " if ((typeof iterator !== 'object' || iterator === null) && typeof iterator !== 'function') {\n" - " throw new TypeError('iterator method must return an object');\n" - " }\n" - " const next = iterator.next;\n" - " let finished = false;\n" - " let started = false;\n" - " return new ReadableStream({\n" - " async pull(controller) {\n" - " started = true;\n" - " const result = asyncIterator ? await next.call(iterator) : next.call(iterator);\n" - " if ((typeof result !== 'object' || result === null) && typeof result !== 'function') {\n" - " throw new TypeError('iterator result is not an object');\n" - " }\n" - " if (result.done) { finished = true; controller.close(); return; }\n" - " controller.enqueue(asyncIterator ? result.value : await result.value);\n" - " },\n" - " async cancel(reason) {\n" - " if (finished) return;\n" - " finished = true;\n" - " if (!started) return;\n" - " const finish = iterator.return;\n" - " if (finish === undefined || finish === null) return;\n" - " if (typeof finish !== 'function') throw new TypeError('iterator return is not a function');\n" - " const result = finish.call(iterator, reason);\n" - " if (!asyncIterator && ((typeof result !== 'object' || result === null) && typeof result !== 'function')) {\n" - " throw new TypeError('iterator result is not an object');\n" - " }\n" - " if (asyncIterator) {\n" - " const awaited = await result;\n" - " if ((typeof awaited !== 'object' || awaited === null) && typeof awaited !== 'function') {\n" - " throw new TypeError('iterator result is not an object');\n" - " }\n" - " }\n" - " },\n" - " });\n" - " }\n" - " pipeThrough(transform, options) {\n" - " if (!readableStreams.has(this)) throw streamInvalidThis('ReadableStream');\n" - " const readable = transform?.readable;\n" - " if (!readableStreams.has(readable)) throw streamArgument('transform.readable', 'an instance of ReadableStream', readable);\n" - " const writable = transform?.writable;\n" - " if (!writableStreams.has(writable)) throw streamArgument('transform.writable', 'an instance of WritableStream', writable);\n" - " const opts = pipeOptions(options); pipeLocks(this, writable);\n" - " pipeStreams(this, writable, opts).catch(() => {});\n" - " return readable;\n" - " }\n" - " pipeTo(destination, options) {\n" - " try {\n" - " if (!readableStreams.has(this)) throw streamInvalidThis('ReadableStream');\n" - " if (!writableStreams.has(destination)) throw streamArgument('transform.writable', 'an instance of WritableStream', destination);\n" - " const opts = pipeOptions(options); pipeLocks(this, destination);\n" - " return pipeStreams(this, destination, opts);\n" - " } catch (e) { return Promise.reject(e); }\n" - " }\n" - " tee() {\n" - " if (!readableStreams.has(this)) throw streamInvalidThis('ReadableStream');\n" - " return readableTee(this);\n" - " }\n" - " }\n" - "\n" - " const readableTee = (source) => {\n" - " const reader = new ReadableStreamDefaultReader(source);\n" - " const canceled = [false, false], reasons = [], branches = [];\n" - " let reading = false, resolveCancel;\n" - " const cancelPromise = new Promise((resolve) => { resolveCancel = resolve; });\n" - " const pull = () => {\n" - " if (reading) return;\n" - " reading = true;\n" - " reader.read().then((r) => {\n" - " if (r.done) {\n" - " // Node defers branch close until its nextTick phase; the island's\n" - " // next microtask preserves final-chunk delivery before closing.\n" - " Promise.resolve().then(() => {\n" - " reading = false;\n" - " for (let i = 0; i < 2; i++) if (!canceled[i] && branches[i]._state === 'readable' && !branches[i]._closeRequested) branches[i]._controller.close();\n" - " if (!canceled[0] || !canceled[1]) resolveCancel();\n" - " });\n" - " } else {\n" - " reading = false;\n" - " for (let i = 0; i < 2; i++) if (!canceled[i] && branches[i]._state === 'readable') branches[i]._controller.enqueue(r.value);\n" - " }\n" - " }, () => { reading = false; });\n" - " };\n" - " for (let i = 0; i < 2; i++) branches.push(new ReadableStream({\n" - " pull,\n" - " cancel(reason) {\n" - " canceled[i] = true; reasons[i] = reason;\n" - " if (canceled[0] && canceled[1]) resolveCancel(source._cancelInternal([reasons[0], reasons[1]]));\n" - " return cancelPromise;\n" - " },\n" - " }));\n" - " reader.closed.catch((e) => {\n" - " for (const branch of branches) branch._errorStream(e);\n" - " if (!canceled[0] || !canceled[1]) resolveCancel();\n" - " });\n" - " return branches;\n" - " };\n" - "\n" - " const pipeOptions = (options) => {\n" - " if (options !== undefined && options !== null && typeof options !== 'object' && typeof options !== 'function') throw streamArgument('options', 'of type object', options);\n" - " const preventAbort = options?.preventAbort, preventCancel = options?.preventCancel, preventClose = options?.preventClose, signal = options?.signal;\n" - " if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) throw streamArgument('options.signal', 'an instance of AbortSignal', signal);\n" - " return { preventAbort: !!preventAbort, preventCancel: !!preventCancel, preventClose: !!preventClose, signal };\n" - " };\n" - " const pipeLocks = (source, dest) => {\n" - " if (source._locked) throw streamInvalidState('The ReadableStream is locked');\n" - " if (writableStreams.get(dest).writer !== undefined) throw streamInvalidState('The WritableStream is locked');\n" - " };\n" - " const pipeStreams = (source, dest, { preventClose, preventAbort, preventCancel, signal }) => {\n" - " const reader = new ReadableStreamDefaultReader(source), writer = new WritableStreamDefaultWriter(dest), sink = writableStreams.get(dest);\n" - " const completion = streamDeferred();\n" - " let shuttingDown = false, currentWrite = Promise.resolve(), listening = false;\n" - " const finalize = (rejected, error) => {\n" - " writer.releaseLock(); reader.releaseLock();\n" - " if (listening) signal.removeEventListener('abort', abort);\n" - " if (rejected) completion.reject(error); else completion.resolve();\n" - " };\n" - " const waitForWrites = async () => {\n" - " let write;\n" - " do { write = currentWrite; await write; } while (write !== currentWrite);\n" - " };\n" - " const shutdown = (action, rejected = false, error) => {\n" - " if (shuttingDown) return;\n" - " shuttingDown = true;\n" - " const waiting = sink.state === 'writable' && !sink.closeRequest ? waitForWrites() : Promise.resolve();\n" - " waiting.then(() => action ? action() : undefined).then(\n" - " () => finalize(rejected, error), (e) => finalize(true, e));\n" - " };\n" - " const abort = () => {\n" - " const reason = signal.reason;\n" - " shutdown(() => {\n" - " const actions = [];\n" - " if (!preventAbort && sink.state === 'writable') actions.push(writer.abort(reason));\n" - " if (!preventCancel && source._state === 'readable') actions.push(reader.cancel(reason));\n" - " return Promise.all(actions);\n" - " }, true, reason);\n" - " };\n" - " const writeChunk = (chunk) => { currentWrite = writer.write(chunk); currentWrite.catch(() => {}); };\n" - " // Buffered reads register their write before source.closed observers run. Pending\n" - " // reads queue the write during enqueue, ahead of a subsequent close notification.\n" - " const step = async () => {\n" - " if (shuttingDown) return true;\n" - " if (sink.backpressure) { await writer.ready; if (shuttingDown) return true; }\n" - " if (source._state === 'readable' && source._queue.length) {\n" - " while (source._queue.length) {\n" - " if (shuttingDown) return true;\n" - " const queued = source._queue.shift();\n" - " source._queueSize = Math.max(0, source._queueSize - queued.size);\n" - " if (source._closeRequested && !source._queue.length) source._finishClose();\n" - " writeChunk(queued.chunk);\n" - " if (sink.backpressure || sink.state !== 'writable' || sink.closeRequest) break;\n" - " }\n" - " source._maybePull();\n" - " return source._state === 'closed';\n" - " }\n" - " if (source._state === 'closed') return true;\n" - " if (source._state === 'errored') throw source._storedError;\n" - " return new Promise((resolve, reject) => {\n" - " source._reads.push({ resolve(r) {\n" - " if (r.done) resolve(true);\n" - " else Promise.resolve().then(() => { writeChunk(r.value); resolve(false); });\n" - " }, reject });\n" - " source._maybePull();\n" - " });\n" - " };\n" - " if (signal !== undefined) {\n" - " if (signal.aborted) { abort(); return completion.promise; }\n" - " signal.addEventListener('abort', abort, { once: true, [Symbol.for('scriptc.events.resistStopPropagation')]: true });\n" - " listening = true;\n" - " }\n" - " (async () => { while (!await step()); })().catch(() => {});\n" - " const sourceError = (e) => shutdown(preventAbort ? undefined : () => writer.abort(e), true, e);\n" - " const sinkError = (e) => shutdown(preventCancel ? undefined : () => reader.cancel(e), true, e);\n" - " const sourceClose = () => shutdown(preventClose ? undefined : () => {\n" - " if (sink.closeRequest || sink.state === 'closed') return;\n" - " if (sink.state === 'errored') throw sink.error;\n" - " return writer.close();\n" - " });\n" - " if (source._state === 'errored') sourceError(source._storedError); else reader.closed.catch(sourceError);\n" - " if (sink.state === 'errored') sinkError(sink.error); else writer.closed.catch(sinkError);\n" - " if (source._state === 'closed') sourceClose(); else reader.closed.then(sourceClose, () => {});\n" - " if (sink.closeRequest || sink.state === 'closed') {\n" - " const e = streamInvalidState('Destination WritableStream is closed');\n" - " shutdown(preventCancel ? undefined : () => reader.cancel(e), true, e);\n" - " }\n" - " return completion.promise;\n" - " };\n" - "\n" - " const transformStreams = new WeakMap(), transformControllers = new WeakMap();\n" - " const transformToken = Symbol('TransformStreamDefaultController');\n" - " const transformPressure = (s, pressure) => {\n" - " if (s.change) s.change.resolve();\n" - " s.change = streamDeferred(); s.backpressure = pressure;\n" - " };\n" - " const transformClear = (s) => { s.transform = s.flush = s.cancel = undefined; };\n" - " const transformUnblock = (s) => { if (s.backpressure) transformPressure(s, false); };\n" - " const transformErrorWritable = (s, e) => {\n" - " transformClear(s);\n" - " const w = writableStreams.get(s.writable);\n" - " if (w.state === 'writable') { writableClear(w); writableError(w, e); }\n" - " transformUnblock(s);\n" - " };\n" - " const transformError = (s, e) => { s.readable._errorStream(e); transformErrorWritable(s, e); };\n" - " const transformFinish = (s, kind, reason) => {\n" - " if (s.finish) return s.finish;\n" - " const d = streamDeferred(); s.finish = d.promise;\n" - " const result = writableInvoke(kind === 'close' ? s.flush : s.cancel, s.transformer, kind === 'close' ? [s.controller] : [reason]);\n" - " transformClear(s);\n" - " result.then(() => {\n" - " if (kind === 'cancel') {\n" - " const w = writableStreams.get(s.writable);\n" - " if (w.state === 'errored') { d.reject(w.error); return; }\n" - " transformErrorWritable(s, reason);\n" - " } else {\n" - " if (s.readable._state === 'errored') { d.reject(s.readable._storedError); return; }\n" - " if (kind === 'close') { if (s.readable._state === 'readable' && !s.readable._closeRequested) s.readable._controller.close(); }\n" - " else s.readable._errorStream(reason);\n" - " }\n" - " d.resolve();\n" - " }, (e) => {\n" - " if (kind === 'cancel') transformErrorWritable(s, e); else s.readable._errorStream(e);\n" - " d.reject(e);\n" - " }).catch((e) => d.reject(e));\n" - " return s.finish;\n" - " };\n" - " class TransformStreamDefaultController {\n" - " constructor(token, stream) {\n" - " if (token !== transformToken) throw streamError(TypeError, 'ERR_ILLEGAL_CONSTRUCTOR', 'Illegal constructor');\n" - " transformControllers.set(this, stream);\n" - " }\n" - " get desiredSize() {\n" - " const s = transformControllers.get(this);\n" - " if (!s) throw streamInvalidThis('TransformStreamDefaultController');\n" - " return s.readable._controller.desiredSize;\n" - " }\n" - " enqueue(chunk) {\n" - " const s = transformControllers.get(this);\n" - " if (!s) throw streamInvalidThis('TransformStreamDefaultController');\n" - " const r = s.readable;\n" - " if (r._state !== 'readable' || r._closeRequested) throw streamInvalidState('Unable to enqueue');\n" - " try { r._controller.enqueue(chunk); }\n" - " catch (e) { transformErrorWritable(s, e); throw r._storedError; }\n" - " if (!r._reads.length && r._controller.desiredSize <= 0 && !s.backpressure) transformPressure(s, true);\n" - " }\n" - " error(e) {\n" - " const s = transformControllers.get(this);\n" - " if (!s) throw streamInvalidThis('TransformStreamDefaultController');\n" - " transformError(s, e);\n" - " }\n" - " terminate() {\n" - " const s = transformControllers.get(this);\n" - " if (!s) throw streamInvalidThis('TransformStreamDefaultController');\n" - " if (s.readable._state === 'readable' && !s.readable._closeRequested) s.readable._controller.close();\n" - " transformErrorWritable(s, streamInvalidState('TransformStream has been terminated'));\n" - " }\n" - " }\n" - " class TransformStream {\n" - " constructor(transformer = {}, ws, rs) {\n" - " if (transformer === null || (typeof transformer !== 'object' && typeof transformer !== 'function')) throw streamArgument('transformer', 'of type object', transformer);\n" - " for (const [name, value] of [['writableStrategy', ws], ['readableStrategy', rs]]) {\n" - " if (value !== undefined && value !== null && typeof value !== 'object' && typeof value !== 'function') throw streamArgument(name, 'of type object', value);\n" - " }\n" - " const readableType = transformer.readableType, writableType = transformer.writableType, start = transformer.start;\n" - " if (readableType !== undefined) throw streamInvalidValue('transformer.readableType', readableType);\n" - " if (writableType !== undefined) throw streamInvalidValue('transformer.writableType', writableType);\n" - " const readableSizing = streamStrategy(rs, 0), writableSizing = streamStrategy(ws, 1);\n" - " const s = { transformer, finish: undefined, backpressure: true };\n" - " transformPressure(s, true); transformStreams.set(this, s);\n" - " let resolveStart;\n" - " const startGate = new Promise((resolve) => { resolveStart = resolve; });\n" - " s.writable = new WritableStream({\n" - " start() { return startGate; },\n" - " async write(chunk) {\n" - " if (s.backpressure) {\n" - " await s.change.promise;\n" - " const w = writableStreams.get(s.writable);\n" - " if (w.state === 'erroring' || w.state === 'errored') throw w.error;\n" - " }\n" - " try { if (s.transform) await s.transform.call(transformer, chunk, s.controller); }\n" - " catch (e) { transformError(s, e); throw e; }\n" - " },\n" - " close() { return transformFinish(s, 'close'); },\n" - " abort(reason) { return transformFinish(s, 'abort', reason); },\n" - " }, writableSizing);\n" - " s.readable = new ReadableStream({\n" - " start() { return startGate; },\n" - " pull() { transformPressure(s, false); return s.change.promise; },\n" - " cancel(reason) { return transformFinish(s, 'cancel', reason); },\n" - " }, readableSizing);\n" - " s.controller = new TransformStreamDefaultController(transformToken, s);\n" - " const transform = transformer.transform, flush = transformer.flush, cancel = transformer.cancel;\n" - " for (const [name, fn] of [['transform', transform], ['flush', flush], ['cancel', cancel]]) {\n" - " if (fn && typeof fn !== 'function') throw streamArgument('transformer.' + name, 'of type function', fn);\n" - " }\n" - " s.transform = transform || ((chunk, controller) => controller.enqueue(chunk)); s.flush = flush; s.cancel = cancel;\n" - " const startResult = start === undefined ? undefined : start.call(transformer, s.controller);\n" - " resolveStart(Promise.resolve(startResult).catch((e) => { transformError(s, e); throw e; }));\n" - " }\n" - " get readable() { const s = transformStreams.get(this); if (!s) throw streamInvalidThis('TransformStream'); return s.readable; }\n" - " get writable() { const s = transformStreams.get(this); if (!s) throw streamInvalidThis('TransformStream'); return s.writable; }\n" - " }\n" - " for (const C of [TransformStream, TransformStreamDefaultController]) {\n" - " Object.defineProperty(C.prototype, Symbol.toStringTag, { value: C.name, configurable: true });\n" - " for (const name of Object.getOwnPropertyNames(C.prototype)) if (name !== 'constructor') Object.defineProperty(C.prototype, name, { enumerable: true });\n" - " g[C.name] = C;\n" - " }\n" - " g.ReadableStream = ReadableStream;\n" - "\n" - " const textEncoders = new WeakSet();\n" - " class TextEncoder {\n" - " constructor() { textEncoders.add(this); }\n" - " get encoding() { return 'utf-8'; }\n" - " encodeInto(src, dest) {\n" - " const fail = (name, expected, value) => {\n" - " let received;\n" - " if (value === null || value === undefined) received = String(value);\n" - " else if (typeof value === 'object' || typeof value === 'function') received = 'an instance of ' + (value.constructor && value.constructor.name || 'Object');\n" - " else if (typeof value === 'string') received = \"type string ('\" + value + \"')\";\n" - " else received = 'type ' + typeof value + ' (' + String(value) + (typeof value === 'bigint' ? 'n' : '') + ')';\n" - " const error = new TypeError('The \"' + name + '\" argument must be ' + expected + '. Received ' + received);\n" - " error.code = 'ERR_INVALID_ARG_TYPE'; throw error;\n" - " };\n" - " if (!textEncoders.has(this)) { const error = new TypeError('Value of \"this\" must be of type TextEncoder'); error.code = 'ERR_INVALID_THIS'; throw error; }\n" - " if (typeof src !== 'string') fail('src', 'of type string', src);\n" - " if (!(dest instanceof Uint8Array)) fail('dest', 'an instance of Uint8Array', dest);\n" - " let read = 0, written = 0;\n" - " while (read < src.length) {\n" - " let cp = src.charCodeAt(read), units = 1;\n" - " if (cp >= 0xd800 && cp <= 0xdbff) {\n" - " const low = src.charCodeAt(read + 1);\n" - " if (low >= 0xdc00 && low <= 0xdfff) { cp = 0x10000 + ((cp - 0xd800) << 10) + low - 0xdc00; units = 2; }\n" - " else cp = 0xfffd;\n" - " } else if (cp >= 0xdc00 && cp <= 0xdfff) cp = 0xfffd;\n" - " const size = cp < 0x80 ? 1 : cp < 0x800 ? 2 : cp < 0x10000 ? 3 : 4;\n" - " if (written + size > dest.length) break;\n" - " if (size === 1) dest[written++] = cp;\n" - " else if (size === 2) { dest[written++] = 0xc0 | (cp >> 6); dest[written++] = 0x80 | (cp & 63); }\n" - " else if (size === 3) { dest[written++] = 0xe0 | (cp >> 12); dest[written++] = 0x80 | ((cp >> 6) & 63); dest[written++] = 0x80 | (cp & 63); }\n" - " else { dest[written++] = 0xf0 | (cp >> 18); dest[written++] = 0x80 | ((cp >> 12) & 63); dest[written++] = 0x80 | ((cp >> 6) & 63); dest[written++] = 0x80 | (cp & 63); }\n" - " read += units;\n" - " }\n" - " return { read, written };\n" - " }\n" - " encode(input) {\n" - " const s = input === undefined ? '' : String(input);\n" - " const bytes = [];\n" - " for (let i = 0; i < s.length; i++) {\n" - " let c = s.charCodeAt(i);\n" - " if (c >= 0xd800 && c <= 0xdbff) {\n" - " const n = i + 1 < s.length ? s.charCodeAt(i + 1) : 0;\n" - " if (n >= 0xdc00 && n <= 0xdfff) { c = 0x10000 + ((c - 0xd800) << 10) + (n - 0xdc00); i++; }\n" - " else c = 0xfffd;\n" - " } else if (c >= 0xdc00 && c <= 0xdfff) c = 0xfffd;\n" - " if (c <= 0x7f) bytes.push(c);\n" - " else if (c <= 0x7ff) bytes.push(0xc0 | (c >> 6), 0x80 | (c & 63));\n" - " else if (c <= 0xffff) bytes.push(0xe0 | (c >> 12), 0x80 | ((c >> 6) & 63), 0x80 | (c & 63));\n" - " else bytes.push(0xf0 | (c >> 18), 0x80 | ((c >> 12) & 63), 0x80 | ((c >> 6) & 63), 0x80 | (c & 63));\n" - " }\n" - " return new Uint8Array(bytes);\n" - " }\n" - " }\n" - "\n" - " /* The WHATWG utf-8 decoder state machine, exactly (maximal-subpart\n" - " * replacement, streaming carry, BOM stripping, fatal mode). */\n" - " class TextDecoder {\n" - " constructor(label, options) {\n" - " const l = String(label === undefined ? 'utf-8' : label).trim().toLowerCase();\n" - " if (l !== 'utf-8' && l !== 'utf8' && l !== 'unicode-1-1-utf-8') {\n" - " throw new RangeError(\"the scriptc island's TextDecoder supports utf-8 only (got '\" + l + \"')\");\n" - " }\n" - " this._fatal = !!(options && options.fatal);\n" - " this._ignoreBOM = !!(options && options.ignoreBOM);\n" - " this._cp = 0; this._needed = 0; this._seen = 0; this._lo = 0x80; this._hi = 0xbf;\n" - " this._bomPending = !this._ignoreBOM;\n" - " }\n" - " get encoding() { return 'utf-8'; }\n" - " get fatal() { return this._fatal; }\n" - " get ignoreBOM() { return this._ignoreBOM; }\n" - " _reset() {\n" - " this._cp = 0; this._needed = 0; this._seen = 0; this._lo = 0x80; this._hi = 0xbf;\n" - " this._bomPending = !this._ignoreBOM;\n" - " }\n" - " decode(input, options) {\n" - " const stream = !!(options && options.stream);\n" - " let bytes;\n" - " if (input === undefined) bytes = new Uint8Array(0);\n" - " else if (input instanceof Uint8Array) bytes = input;\n" - " else if (input instanceof ArrayBuffer) bytes = new Uint8Array(input);\n" - " else if (ArrayBuffer.isView(input)) bytes = new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n" - " else throw new TypeError('TextDecoder.decode takes an ArrayBuffer or ArrayBufferView');\n" - " const units = [];\n" - " const fail = () => {\n" - " if (this._fatal) { this._reset(); throw new TypeError('The encoded data was not valid utf-8'); }\n" - " units.push(0xfffd);\n" - " };\n" - " const emit = (cp) => {\n" - " if (cp <= 0xffff) units.push(cp);\n" - " else { cp -= 0x10000; units.push(0xd800 + (cp >> 10), 0xdc00 + (cp & 0x3ff)); }\n" - " };\n" - " for (let i = 0; i < bytes.length; i++) {\n" - " const b = bytes[i];\n" - " if (this._needed === 0) {\n" - " if (b <= 0x7f) { emit(b); continue; }\n" - " if (b >= 0xc2 && b <= 0xdf) { this._needed = 1; this._cp = b & 0x1f; }\n" - " else if (b >= 0xe0 && b <= 0xef) {\n" - " if (b === 0xe0) this._lo = 0xa0;\n" - " if (b === 0xed) this._hi = 0x9f;\n" - " this._needed = 2; this._cp = b & 0xf;\n" - " } else if (b >= 0xf0 && b <= 0xf4) {\n" - " if (b === 0xf0) this._lo = 0x90;\n" - " if (b === 0xf4) this._hi = 0x8f;\n" - " this._needed = 3; this._cp = b & 0x7;\n" - " } else fail();\n" - " continue;\n" - " }\n" - " if (b < this._lo || b > this._hi) {\n" - " this._cp = 0; this._needed = 0; this._seen = 0; this._lo = 0x80; this._hi = 0xbf;\n" - " fail();\n" - " i--; // reprocess as a sequence start\n" - " continue;\n" - " }\n" - " this._lo = 0x80; this._hi = 0xbf;\n" - " this._cp = (this._cp << 6) | (b & 0x3f);\n" - " if (++this._seen === this._needed) {\n" - " emit(this._cp);\n" - " this._cp = 0; this._needed = 0; this._seen = 0;\n" - " }\n" - " }\n" - " if (!stream && this._needed !== 0) {\n" - " this._cp = 0; this._needed = 0; this._seen = 0; this._lo = 0x80; this._hi = 0xbf;\n" - " fail();\n" - " }\n" - " let start = 0;\n" - " if (this._bomPending && units.length > 0) {\n" - " this._bomPending = false;\n" - " if (units[0] === 0xfeff) start = 1;\n" - " }\n" - " let s = '';\n" - " for (let i = start; i < units.length; i += 4096) {\n" - " s += String.fromCharCode.apply(null, units.slice(i, i + 4096));\n" - " }\n" - " if (!stream) { const keepIgnore = this._ignoreBOM; this._reset(); this._bomPending = !keepIgnore; }\n" - " return s;\n" - " }\n" - " }\n" - "\n" - " class TextEncoderStream {\n" - " #transform;\n" - " constructor() {\n" - " const encoder = new TextEncoder();\n" - " let pending = null;\n" - " this.#transform = new TransformStream({\n" - " transform(chunk, controller) {\n" - " chunk = String(chunk);\n" - " let text = '';\n" - " for (let i = 0; i < chunk.length; i++) {\n" - " const unit = chunk.charCodeAt(i), item = chunk[i];\n" - " if (pending !== null) {\n" - " const high = pending; pending = null;\n" - " if (unit >= 0xdc00 && unit <= 0xdfff) { text += high + item; continue; }\n" - " text += '\\ufffd';\n" - " }\n" - " if (unit >= 0xd800 && unit <= 0xdbff) pending = item;\n" - " else text += unit >= 0xdc00 && unit <= 0xdfff ? '\\ufffd' : item;\n" - " }\n" - " if (text) controller.enqueue(encoder.encode(text));\n" - " },\n" - " flush(controller) { if (pending !== null) controller.enqueue(new Uint8Array([0xef, 0xbf, 0xbd])); },\n" - " });\n" - " }\n" - " get encoding() { this.#transform; return 'utf-8'; }\n" - " get readable() { return this.#transform.readable; }\n" - " get writable() { return this.#transform.writable; }\n" - " }\n" - " for (const name of ['encoding', 'readable', 'writable']) Object.defineProperty(TextEncoderStream.prototype, name, { enumerable: true });\n" - " g.TextEncoderStream = TextEncoderStream;\n" - "\n" - " class TextDecoderStream extends g.TransformStream {\n" - " constructor(label, options) {\n" - " const dec = new TextDecoder(label, options);\n" - " super({\n" - " transform(chunk, c) {\n" - " const s = dec.decode(chunk, { stream: true });\n" - " if (s !== '') c.enqueue(s);\n" - " },\n" - " flush(c) {\n" - " const s = dec.decode();\n" - " if (s !== '') c.enqueue(s);\n" - " },\n" - " });\n" - " this._dec = dec;\n" - " }\n" - " get encoding() { return this._dec.encoding; }\n" - " get fatal() { return this._dec.fatal; }\n" - " get ignoreBOM() { return this._dec.ignoreBOM; }\n" - " }\n" - "\n" - " /* application/x-www-form-urlencoded serializer/parser (URLSearchParams). */\n" - " const FORM_SAFE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789*-._';\n" - " const formEncode = (s) => {\n" - " const bytes = new TextEncoder().encode(s);\n" - " let out = '';\n" - " for (let i = 0; i < bytes.length; i++) {\n" - " const b = bytes[i];\n" - " const ch = String.fromCharCode(b);\n" - " if (b === 0x20) out += '+';\n" - " else if (FORM_SAFE.indexOf(ch) >= 0) out += ch;\n" - " else out += '%' + (b < 16 ? '0' : '') + b.toString(16).toUpperCase();\n" - " }\n" - " return out;\n" - " };\n" - " const formDecode = (s) => {\n" - " const bytes = [];\n" - " for (let i = 0; i < s.length; i++) {\n" - " const ch = s[i];\n" - " if (ch === '+') bytes.push(0x20);\n" - " else if (ch === '%' && i + 2 < s.length && /^[0-9a-fA-F]{2}$/.test(s.slice(i + 1, i + 3))) {\n" - " bytes.push(parseInt(s.slice(i + 1, i + 3), 16));\n" - " i += 2;\n" - " } else {\n" - " const enc = new TextEncoder().encode(ch);\n" - " for (let j = 0; j < enc.length; j++) bytes.push(enc[j]);\n" - " }\n" - " }\n" - " return new TextDecoder().decode(new Uint8Array(bytes));\n" - " };\n" - "\n" - " class URLSearchParams {\n" - " constructor(init) {\n" - " this._pairs = [];\n" - " if (init === undefined || init === null) return;\n" - " if (init instanceof URLSearchParams) {\n" - " for (const [k, v] of init._pairs) this._pairs.push([k, v]);\n" - " return;\n" - " }\n" - " if (typeof init === 'string') {\n" - " let s = init;\n" - " if (s.startsWith('?')) s = s.slice(1);\n" - " if (s === '') return;\n" - " for (const part of s.split('&')) {\n" - " if (part === '') continue;\n" - " const eq = part.indexOf('=');\n" - " if (eq < 0) this._pairs.push([formDecode(part), '']);\n" - " else this._pairs.push([formDecode(part.slice(0, eq)), formDecode(part.slice(eq + 1))]);\n" - " }\n" - " return;\n" - " }\n" - " if (typeof init === 'object') {\n" - " if (typeof init[Symbol.iterator] === 'function') {\n" - " for (const pair of init) {\n" - " const p = [...pair];\n" - " if (p.length !== 2) throw new TypeError('URLSearchParams sequence init entries must be [name, value] pairs');\n" - " this._pairs.push([String(p[0]), String(p[1])]);\n" - " }\n" - " } else {\n" - " for (const k of Object.keys(init)) this._pairs.push([String(k), String(init[k])]);\n" - " }\n" - " return;\n" - " }\n" - " throw new TypeError('unsupported URLSearchParams init');\n" - " }\n" - " get size() { return this._pairs.length; }\n" - " append(name, value) { this._pairs.push([String(name), String(value)]); }\n" - " delete(name, value) {\n" - " name = String(name);\n" - " const hasValue = value !== undefined;\n" - " if (hasValue) value = String(value);\n" - " this._pairs = this._pairs.filter(([k, v]) => k !== name || (hasValue && v !== value));\n" - " }\n" - " get(name) {\n" - " name = String(name);\n" - " for (const [k, v] of this._pairs) if (k === name) return v;\n" - " return null;\n" - " }\n" - " getAll(name) {\n" - " name = String(name);\n" - " const out = [];\n" - " for (const [k, v] of this._pairs) if (k === name) out.push(v);\n" - " return out;\n" - " }\n" - " has(name, value) {\n" - " name = String(name);\n" - " const hasValue = value !== undefined;\n" - " if (hasValue) value = String(value);\n" - " for (const [k, v] of this._pairs) if (k === name && (!hasValue || v === value)) return true;\n" - " return false;\n" - " }\n" - " set(name, value) {\n" - " name = String(name);\n" - " value = String(value);\n" - " let found = false;\n" - " const next = [];\n" - " for (const pair of this._pairs) {\n" - " if (pair[0] !== name) { next.push(pair); continue; }\n" - " if (!found) { next.push([name, value]); found = true; }\n" - " }\n" - " if (!found) next.push([name, value]);\n" - " this._pairs = next;\n" - " }\n" - " sort() {\n" - " // stable sort by name (code units), preserving value order per name\n" - " this._pairs = this._pairs\n" - " .map((p, i) => [p, i])\n" - " .sort((a, b) => (a[0][0] < b[0][0] ? -1 : a[0][0] > b[0][0] ? 1 : a[1] - b[1]))\n" - " .map((x) => x[0]);\n" - " }\n" - " toString() {\n" - " return this._pairs.map(([k, v]) => formEncode(k) + '=' + formEncode(v)).join('&');\n" - " }\n" - " forEach(fn, thisArg) {\n" - " for (const [k, v] of this._pairs.slice()) fn.call(thisArg, v, k, this);\n" - " }\n" - " *entries() { for (const [k, v] of this._pairs) yield [k, v]; }\n" - " *keys() { for (const [k] of this._pairs) yield k; }\n" - " *values() { for (const [, v] of this._pairs) yield v; }\n" - " [Symbol.iterator]() { return this.entries(); }\n" - " }\n" - "\n" - " const B64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n" - " const invalidChar = (op) => {\n" - " const e = new Error(\"Invalid character\");\n" - " e.name = 'InvalidCharacterError';\n" - " return e;\n" - " };\n" - " const btoa = (data) => {\n" - " const s = String(data);\n" - " let out = '';\n" - " for (let i = 0; i < s.length; i += 3) {\n" - " const c0 = s.charCodeAt(i), c1 = i + 1 < s.length ? s.charCodeAt(i + 1) : NaN, c2 = i + 2 < s.length ? s.charCodeAt(i + 2) : NaN;\n" - " if (c0 > 0xff || c1 > 0xff || c2 > 0xff) throw invalidChar('btoa');\n" - " const n = (c0 << 16) | ((c1 || 0) << 8) | (c2 || 0);\n" - " out += B64[(n >> 18) & 63] + B64[(n >> 12) & 63] +\n" - " (Number.isNaN(c1) ? '=' : B64[(n >> 6) & 63]) +\n" - " (Number.isNaN(c2) ? '=' : B64[n & 63]);\n" - " }\n" - " return out;\n" - " };\n" - " const atob = (data) => {\n" - " // forgiving-base64: strip ASCII whitespace, then up to two trailing '='\n" - " let s = String(data).replace(/[\\t\\n\\f\\r ]+/g, '');\n" - " if (s.length % 4 === 0) s = s.replace(/={1,2}$/, '');\n" - " if (s.length % 4 === 1) throw invalidChar('atob');\n" - " let out = '';\n" - " let buf = 0, bits = 0;\n" - " for (let i = 0; i < s.length; i++) {\n" - " const v = B64.indexOf(s[i]);\n" - " if (v < 0) throw invalidChar('atob');\n" - " buf = (buf << 6) | v;\n" - " bits += 6;\n" - " if (bits >= 8) {\n" - " bits -= 8;\n" - " out += String.fromCharCode((buf >> bits) & 0xff);\n" - " }\n" - " }\n" - " return out;\n" - " };\n" - "\n" - " /* Headers: lowercase names, combine-on-append, sorted iteration. */\n" - " const HDR_TOKEN = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n" - " const normValue = (v) => String(v).replace(/^[\\t\\n\\r ]+|[\\t\\n\\r ]+$/g, '');\n" - " class Headers {\n" - " constructor(init) {\n" - " this._map = new Map(); // lowercased name -> [values]\n" - " if (init === undefined || init === null) return;\n" - " if (init instanceof Headers) {\n" - " for (const [k, vs] of init._map) this._map.set(k, vs.slice());\n" - " return;\n" - " }\n" - " if (typeof init === 'object' && typeof init[Symbol.iterator] === 'function') {\n" - " for (const pair of init) {\n" - " const p = [...pair];\n" - " if (p.length !== 2) throw new TypeError('Headers sequence init entries must be [name, value] pairs');\n" - " this.append(p[0], p[1]);\n" - " }\n" - " return;\n" - " }\n" - " if (typeof init === 'object') {\n" - " for (const k of Object.keys(init)) this.append(k, init[k]);\n" - " return;\n" - " }\n" - " throw new TypeError('unsupported Headers init');\n" - " }\n" - " _check(name) {\n" - " const n = String(name).toLowerCase();\n" - " if (!HDR_TOKEN.test(n)) throw new TypeError(`Invalid header name: \"${name}\"`);\n" - " return n;\n" - " }\n" - " append(name, value) {\n" - " const n = this._check(name);\n" - " const list = this._map.get(n);\n" - " if (list) list.push(normValue(value));\n" - " else this._map.set(n, [normValue(value)]);\n" - " }\n" - " set(name, value) { this._map.set(this._check(name), [normValue(value)]); }\n" - " get(name) {\n" - " const list = this._map.get(this._check(name));\n" - " return list ? list.join(', ') : null;\n" - " }\n" - " has(name) { return this._map.has(this._check(name)); }\n" - " delete(name) { this._map.delete(this._check(name)); }\n" - " getSetCookie() {\n" - " const list = this._map.get('set-cookie');\n" - " return list ? list.slice() : [];\n" - " }\n" - " _sorted() {\n" - " return [...this._map.keys()].sort().map((k) => [k, this._map.get(k).join(', ')]);\n" - " }\n" - " forEach(fn, thisArg) {\n" - " for (const [k, v] of this._sorted()) fn.call(thisArg, v, k, this);\n" - " }\n" - " *entries() { for (const p of this._sorted()) yield p; }\n" - " *keys() { for (const [k] of this._sorted()) yield k; }\n" - " *values() { for (const [, v] of this._sorted()) yield v; }\n" - " [Symbol.iterator]() { return this.entries(); }\n" - " }\n" - "\n" - /* Event + EventTarget + CustomEvent — the dyn event plumbing Node - * exposes as globals since v15. Synchronous dispatch on one target - * (no tree, no phases — composedPath answers []), once/capture-shaped - * options accepted, handleEvent objects honored, dispatchEvent - * answers !defaultPrevented. undici's fileapi/websocket classes - * extend Event at LOAD. */ - " class Event {\n" - " constructor(type, init) {\n" - " if (arguments.length === 0) throw new TypeError(\"Failed to construct 'Event': 1 argument required, but only 0 present.\");\n" - " this._type = String(type);\n" - " this.bubbles = !!(init && init.bubbles);\n" - " this.cancelable = !!(init && init.cancelable);\n" - " this.composed = !!(init && init.composed);\n" - " this.defaultPrevented = false;\n" - " this.target = null;\n" - " this.currentTarget = null;\n" - " this.srcElement = null;\n" - " this.eventPhase = 0;\n" - " this.isTrusted = false;\n" - " this.returnValue = true;\n" - " this.timeStamp = Date.now();\n" - " this._stopImmediate = false;\n" - " }\n" - " get type() { return this._type; }\n" - " preventDefault() { if (this.cancelable) { this.defaultPrevented = true; this.returnValue = false; } }\n" - " stopPropagation() {}\n" - " stopImmediatePropagation() { this._stopImmediate = true; }\n" - " composedPath() { return []; }\n" - " }\n" - " Event.NONE = 0; Event.CAPTURING_PHASE = 1; Event.AT_TARGET = 2; Event.BUBBLING_PHASE = 3;\n" - " class CustomEvent extends Event {\n" - " constructor(type, init) {\n" - " super(type, init);\n" - " this.detail = init !== null && init !== undefined && init.detail !== undefined ? init.detail : null;\n" - " }\n" - " }\n" - " class EventTarget {\n" - " constructor() { this._et = Object.create(null); }\n" - " addEventListener(type, listener, options) {\n" - " if (listener === null || listener === undefined) return;\n" - " const t = String(type);\n" - " const once = !!(options !== null && typeof options === 'object' && options.once);\n" - " const list = this._et[t] || (this._et[t] = []);\n" - " for (const e of list) { if (e.listener === listener) return; }\n" - " const resistant = !!(options && options[Symbol.for('scriptc.events.resistStopPropagation')]);\n" - " list.push({ listener, once, resistant });\n" - " }\n" - " removeEventListener(type, listener) {\n" - " const list = this._et[String(type)];\n" - " if (!list) return;\n" - " const i = list.findIndex((e) => e.listener === listener);\n" - " if (i >= 0) list.splice(i, 1)[0].removed = true;\n" - " }\n" - " dispatchEvent(event) {\n" - " if (!(event instanceof Event)) throw new TypeError('The \"event\" argument must be an instance of Event.');\n" - " event.target = this;\n" - " event.currentTarget = this;\n" - " event.eventPhase = Event.AT_TARGET;\n" - " const list = this._et[event.type];\n" - " if (list) {\n" - " for (const e of [...list]) {\n" - " if (e.removed) continue;\n" - " if (event._stopImmediate && !e.resistant) continue;\n" - " if (e.once) this.removeEventListener(event.type, e.listener);\n" - " if (typeof e.listener === 'function') e.listener.call(this, event);\n" - " else if (e.listener !== null && typeof e.listener.handleEvent === 'function') e.listener.handleEvent(event);\n" - " }\n" - " }\n" - " event.eventPhase = Event.NONE;\n" - " event.currentTarget = null;\n" - " return !event.defaultPrevented;\n" - " }\n" - " }\n" - "\n" - /* Blob + File — the WHATWG classes Node exposes as globals (and - * re-exports from node:buffer) since v18. Bytes concatenate at - * construction (strings through TextEncoder, views copied, nested - * Blobs flattened); type normalizes per spec (printable-ASCII-only, - * lowercased, else ""); slice carries WHATWG's negative-index - * clamping; stream() rides the prelude's own ReadableStream. undici - * (in embedded graphs) extends buffer.Blob at load. */ - " const blobBytesOf = (parts) => {\n" - " const chunks = [];\n" - " let total = 0;\n" - " for (const p of parts) {\n" - " let u8;\n" - " if (typeof p === 'string') u8 = new TextEncoder().encode(p);\n" - " else if (p instanceof Blob) u8 = p._bytes;\n" - " else if (p instanceof ArrayBuffer) u8 = new Uint8Array(p.slice(0));\n" - " else if (ArrayBuffer.isView(p)) u8 = new Uint8Array(p.buffer.slice(p.byteOffset, p.byteOffset + p.byteLength));\n" - " else u8 = new TextEncoder().encode(String(p));\n" - " chunks.push(u8);\n" - " total += u8.length;\n" - " }\n" - " const out = new Uint8Array(total);\n" - " let off = 0;\n" - " for (const c of chunks) { out.set(c, off); off += c.length; }\n" - " return out;\n" - " };\n" - " const blobTypeOf = (t) => {\n" - " const s = String(t);\n" - " for (let i = 0; i < s.length; i++) {\n" - " const c = s.charCodeAt(i);\n" - " if (c < 0x20 || c > 0x7e) return '';\n" - " }\n" - " return s.toLowerCase();\n" - " };\n" - " class Blob {\n" - " constructor(parts = [], options = {}) {\n" - " if (typeof parts !== 'object' || parts === null || typeof parts[Symbol.iterator] !== 'function') {\n" - " throw new TypeError('The \"sources\" argument must be an instance of Iterable. Received ' + (parts === null ? 'null' : typeof parts));\n" - " }\n" - " this._bytes = blobBytesOf([...parts]);\n" - " this._type = options !== null && options !== undefined && options.type !== undefined ? blobTypeOf(options.type) : '';\n" - " }\n" - " get size() { return this._bytes.length; }\n" - " get type() { return this._type; }\n" - " async arrayBuffer() {\n" - " return this._bytes.buffer.slice(this._bytes.byteOffset, this._bytes.byteOffset + this._bytes.byteLength);\n" - " }\n" - " async bytes() { return new Uint8Array(this._bytes); }\n" - " async text() { return new TextDecoder().decode(this._bytes); }\n" - " slice(start, end, contentType) {\n" - " const size = this._bytes.length;\n" - " let s = start === undefined ? 0 : Math.trunc(Number(start) || 0);\n" - " s = s < 0 ? Math.max(size + s, 0) : Math.min(s, size);\n" - " let e = end === undefined ? size : Math.trunc(Number(end) || 0);\n" - " e = e < 0 ? Math.max(size + e, 0) : Math.min(e, size);\n" - " const b = new Blob([], contentType === undefined ? {} : { type: contentType });\n" - " b._bytes = this._bytes.slice(s, Math.max(e, s));\n" - " return b;\n" - " }\n" - " stream() {\n" - " const bytes = this._bytes;\n" - " return new ReadableStream({\n" - " start(c) {\n" - " if (bytes.length > 0) c.enqueue(new Uint8Array(bytes));\n" - " c.close();\n" - " },\n" - " });\n" - " }\n" - " get [Symbol.toStringTag]() { return 'Blob'; }\n" - " }\n" - " class File extends Blob {\n" - " constructor(fileBits, fileName, options = {}) {\n" - " if (arguments.length < 2) throw new TypeError('The \"fileName\" argument must be specified');\n" - " super(fileBits, options);\n" - " this._name = String(fileName);\n" - " this._lastModified = options !== null && options !== undefined && options.lastModified !== undefined ? Number(options.lastModified) : Date.now();\n" - " }\n" - " get name() { return this._name; }\n" - " get lastModified() { return this._lastModified; }\n" - " get webkitRelativePath() { return ''; }\n" - " get [Symbol.toStringTag]() { return 'File'; }\n" - " }\n" - "\n" - " g.TextEncoder = TextEncoder;\n" - " g.TextDecoder = TextDecoder;\n" - " g.TextDecoderStream = TextDecoderStream;\n" - " g.URLSearchParams = URLSearchParams;\n" - " g.btoa = btoa;\n" - " g.atob = atob;\n" - " g.Headers = Headers;\n" - " g.Blob = Blob;\n" - " g.File = File;\n" - " g.Event = Event;\n" - " g.CustomEvent = CustomEvent;\n" - " g.EventTarget = EventTarget;\n" - "\n" - " /* DOMException + AbortController/AbortSignal: pure JS state, with the\n" - " * ONE host hook AbortSignal.timeout needs (host.timer arms a one-shot\n" - " * island timer — unref'd like Node's, so an armed timeout never keeps\n" - " * the process alive). Default abort reasons match Node exactly:\n" - " * DOMException AbortError 'This operation was aborted' and\n" - " * TimeoutError 'The operation was aborted due to timeout'. */\n" - " const DOM_CODES = {\n" - " IndexSizeError: 1, HierarchyRequestError: 3, WrongDocumentError: 4,\n" - " InvalidCharacterError: 5, NoModificationAllowedError: 7, NotFoundError: 8,\n" - " NotSupportedError: 9, InUseAttributeError: 10, InvalidStateError: 11,\n" - " SyntaxError: 12, InvalidModificationError: 13, NamespaceError: 14,\n" - " InvalidAccessError: 15, TypeMismatchError: 17, SecurityError: 18,\n" - " NetworkError: 19, AbortError: 20, URLMismatchError: 21,\n" - " QuotaExceededError: 22, TimeoutError: 23, InvalidNodeTypeError: 24,\n" - " DataCloneError: 25,\n" - " };\n" - " class DOMException extends Error {\n" - " constructor(message, name) {\n" - " super(message === undefined ? '' : String(message));\n" - " this.name = name === undefined ? 'Error' : String(name);\n" - " }\n" - " get code() { return DOM_CODES[this.name] || 0; }\n" - " }\n" - "\n" - " const mkAbortError = () => new DOMException('This operation was aborted', 'AbortError');\n" - " const mkSignal = () => {\n" - " const s = Object.create(AbortSignal.prototype);\n" - " s._aborted = false;\n" - " s._reason = undefined;\n" - " s._onabort = null;\n" - " s._listeners = [];\n" - " return s;\n" - " };\n" - " /* Fires listeners in registration order (onabort first), each once-\n" - " * unregistered BEFORE its call like EventTarget; a throwing listener\n" - " * doesn't stop the others — the first error rethrows at the end. */\n" - " const signalAbort = (s, reason) => {\n" - " if (s._aborted) return;\n" - " s._aborted = true;\n" - " s._reason = reason === undefined ? mkAbortError() : reason;\n" - " const ev = new Event('abort');\n" - " ev.target = s; ev.currentTarget = s; ev.eventPhase = Event.AT_TARGET; ev.isTrusted = true;\n" - " let firstErr;\n" - " let threw = false;\n" - " if (s._onabort !== null) {\n" - " try { s._onabort.call(s, ev); } catch (e) { firstErr = e; threw = true; }\n" - " }\n" - " for (const l of s._listeners.slice()) {\n" - " if (l.removed) continue;\n" - " if (ev._stopImmediate && !l.resistant) continue;\n" - " if (l.once) s.removeEventListener('abort', l.fn);\n" - " try { l.fn.call(s, ev); } catch (e) { if (!threw) { firstErr = e; threw = true; } }\n" - " }\n" - " if (threw) throw firstErr;\n" - " };\n" - "\n" - " class AbortSignal {\n" - " constructor() { throw new TypeError('Illegal constructor'); }\n" - " get aborted() { return this._aborted; }\n" - " get reason() { return this._reason; }\n" - " get onabort() { return this._onabort; }\n" - " set onabort(fn) { this._onabort = typeof fn === 'function' ? fn : null; }\n" - " throwIfAborted() { if (this._aborted) throw this._reason; }\n" - " addEventListener(type, fn, options) {\n" - " if (String(type) !== 'abort' || typeof fn !== 'function') return;\n" - " if (this._listeners.some(l => l.fn === fn)) return;\n" - " const once = options !== undefined && options !== null && !!options.once;\n" - " const resistant = !!(options && options[Symbol.for('scriptc.events.resistStopPropagation')]);\n" - " this._listeners.push({ fn, once, resistant });\n" - " }\n" - " removeEventListener(type, fn) {\n" - " if (String(type) !== 'abort') return;\n" - " const i = this._listeners.findIndex((l) => l.fn === fn);\n" - " if (i >= 0) this._listeners.splice(i, 1)[0].removed = true;\n" - " }\n" - " static abort(reason) {\n" - " const s = mkSignal();\n" - " s._aborted = true;\n" - " s._reason = reason === undefined ? mkAbortError() : reason;\n" - " return s;\n" - " }\n" - " static timeout(ms) {\n" - " const s = mkSignal();\n" - " host.timer(() => {\n" - " signalAbort(s, new DOMException('The operation was aborted due to timeout', 'TimeoutError'));\n" - " }, Number(ms));\n" - " return s;\n" - " }\n" - " static any(signals) {\n" - " const list = [...signals];\n" - " const s = mkSignal();\n" - " for (const src of list) {\n" - " if (!(src instanceof AbortSignal)) throw new TypeError('AbortSignal.any takes AbortSignals');\n" - " if (src._aborted) {\n" - " s._aborted = true;\n" - " s._reason = src._reason;\n" - " return s;\n" - " }\n" - " }\n" - " const handlers = [];\n" - " for (const src of list) {\n" - " const h = () => {\n" - " for (const [sig, fn] of handlers) sig.removeEventListener('abort', fn);\n" - " signalAbort(s, src._reason);\n" - " };\n" - " handlers.push([src, h]);\n" - " src.addEventListener('abort', h);\n" - " }\n" - " return s;\n" - " }\n" - " }\n" - "\n" - " class AbortController {\n" - " constructor() { this._signal = mkSignal(); }\n" - " get signal() { return this._signal; }\n" - " abort(reason) { signalAbort(this._signal, reason); }\n" - " }\n" - "\n" - " g.DOMException = DOMException;\n" - " g.AbortSignal = AbortSignal;\n" - " g.AbortController = AbortController;\n" - "\n" - " /* structuredClone — the HTML StructuredSerialize subset the island\n" - " * honestly carries: primitives (bigint included), plain objects and\n" - " * arrays (cycles preserved through a memo, like Node), Map/Set/Date/\n" - " * RegExp/ArrayBuffer/typed arrays, Blob/File (shared immutable\n" - " * bytes), and DOMException (name/message per WebIDL serialization).\n" - " * Class instances flatten to plain own-enumerable copies (the\n" - " * spec's default record path). Functions and symbols throw the\n" - " * spec's DataCloneError; transfer LISTS with members throw\n" - " * DataCloneError too (nothing here is transferable — divergence:\n" - " * Node transfers its streams). Option validation is Node's, byte\n" - " * for byte. */\n" - " const scErr = (m) => { const e = new TypeError(m); e.code = 'ERR_INVALID_ARG_TYPE'; return e; };\n" - " const scClone = (v, memo) => {\n" - " switch (typeof v) {\n" - " case 'undefined': case 'boolean': case 'number': case 'string': case 'bigint':\n" - " return v;\n" - " case 'symbol':\n" - " throw new DOMException('symbol could not be cloned.', 'DataCloneError');\n" - " case 'function':\n" - " throw new DOMException(String(v) + ' could not be cloned.', 'DataCloneError');\n" - " }\n" - " if (v === null) return null;\n" - " const seen = memo.get(v);\n" - " if (seen !== undefined) return seen;\n" - " if (v instanceof Date) return new Date(v.getTime());\n" - " if (v instanceof RegExp) return new RegExp(v.source, v.flags);\n" - " if (v instanceof DOMException) return new DOMException(v.message, v.name);\n" - " if (v instanceof ArrayBuffer) return v.slice(0);\n" - " if (ArrayBuffer.isView(v)) return new v.constructor(v.buffer.slice(0), v.byteOffset, v.length);\n" - " if (typeof g.Blob === 'function' && v instanceof g.Blob) return v;\n" - " if (v instanceof Map) {\n" - " const m = new Map();\n" - " memo.set(v, m);\n" - " for (const [k, val] of v) m.set(scClone(k, memo), scClone(val, memo));\n" - " return m;\n" - " }\n" - " if (v instanceof Set) {\n" - " const s = new Set();\n" - " memo.set(v, s);\n" - " for (const val of v) s.add(scClone(val, memo));\n" - " return s;\n" - " }\n" - " if (Array.isArray(v)) {\n" - " const a = new Array(v.length);\n" - " memo.set(v, a);\n" - " for (let i = 0; i < v.length; i++) if (i in v) a[i] = scClone(v[i], memo);\n" - " return a;\n" - " }\n" - " /* Errors serialize name/message (the spec's error record). */\n" - " if (v instanceof Error) {\n" - " const e = new Error(v.message);\n" - " e.name = v.name;\n" - " memo.set(v, e);\n" - " return e;\n" - " }\n" - " /* The default record path: own enumerable properties onto a plain\n" - " * object (class prototypes flatten, like the spec). */\n" - " const o = {};\n" - " memo.set(v, o);\n" - " for (const k of Object.keys(v)) o[k] = scClone(v[k], memo);\n" - " return o;\n" - " };\n" - " g.structuredClone = function structuredClone(value, options) {\n" - " if (arguments.length === 0) {\n" - " const e = new TypeError('The \"The value argument must be specified\" argument must be specified');\n" - " e.code = 'ERR_MISSING_ARGS';\n" - " throw e;\n" - " }\n" - " if (options !== undefined && options !== null) {\n" - " if (typeof options !== 'object' && typeof options !== 'function') {\n" - " throw scErr(\"Failed to execute 'structuredClone': Options cannot be converted to a dictionary\");\n" - " }\n" - " const tr = options.transfer;\n" - " if (tr !== undefined) {\n" - " let list;\n" - " /* WebIDL sequence conversion rejects strings (iterable or\n" - " * not) — Node's transfer:'' error is the member error. */\n" - " try {\n" - " if (typeof tr === 'string') throw 0;\n" - " list = [...tr];\n" - " } catch (e) {\n" - " throw scErr(\"Failed to execute 'structuredClone': transfer in Options can not be converted to sequence.\");\n" - " }\n" - " if (list.length > 0) {\n" - " throw new DOMException('Found invalid value in transferList.', 'DataCloneError');\n" - " }\n" - " }\n" - " }\n" - " return scClone(value, new WeakMap());\n" - " };\n" - "\n" - " /* MessageEvent + MessagePort/MessageChannel — Node globals (v15+),\n" - " * the same-thread subset: postMessage queues a structuredClone COPY\n" - " * on the peer; the queue drains as 'message' events on a microtask\n" - " * once start() runs (adding a 'message' listener via on() starts,\n" - " * like Node), and worker_threads' receiveMessageOnPort drains the\n" - " * queue directly (its consumers — undici's structuredClone\n" - " * fallback — never start()). on/once/off are the NodeEventTarget\n" - " * compat surface: 'message' handlers receive the DATA, like Node. */\n" - " class MessageEvent extends Event {\n" - " constructor(type, init) {\n" - " super(type, init);\n" - " const d = init || {};\n" - " this._data = d.data !== undefined ? d.data : null;\n" - " this._origin = d.origin || '';\n" - " this._lastEventId = d.lastEventId || '';\n" - " this._ports = d.ports ? [...d.ports] : [];\n" - " }\n" - " get data() { return this._data; }\n" - " get origin() { return this._origin; }\n" - " get lastEventId() { return this._lastEventId; }\n" - " get ports() { return this._ports; }\n" - " }\n" - " class MessagePort extends EventTarget {\n" - " constructor() {\n" - " super();\n" - " this._other = null;\n" - " this._queue = [];\n" - " this._started = false;\n" - " this._nodeHandlers = new Map();\n" - " }\n" - " postMessage(value) {\n" - " if (this._other === null) return;\n" - " this._other._queue.push({ message: g.structuredClone(value) });\n" - " this._other._drain();\n" - " }\n" - " _drain() {\n" - " if (!this._started) return;\n" - " queueMicrotask(() => {\n" - " while (this._started && this._queue.length > 0) {\n" - " const { message } = this._queue.shift();\n" - " this.dispatchEvent(new MessageEvent('message', { data: message }));\n" - " }\n" - " });\n" - " }\n" - " start() { this._started = true; this._drain(); }\n" - " close() { this._started = false; queueMicrotask(() => this.dispatchEvent(new Event('close'))); }\n" - " ref() { return this; }\n" - " unref() { return this; }\n" - " on(name, fn) {\n" - " const h = (ev) => fn(name === 'message' || name === 'messageerror' ? ev.data : ev);\n" - " this._nodeHandlers.set(fn, h);\n" - " this.addEventListener(name, h);\n" - " if (name === 'message') this.start();\n" - " return this;\n" - " }\n" - " once(name, fn) {\n" - " const h = (ev) => fn(name === 'message' || name === 'messageerror' ? ev.data : ev);\n" - " this._nodeHandlers.set(fn, h);\n" - " this.addEventListener(name, h, { once: true });\n" - " if (name === 'message') this.start();\n" - " return this;\n" - " }\n" - " off(name, fn) {\n" - " const h = this._nodeHandlers.get(fn);\n" - " if (h) { this.removeEventListener(name, h); this._nodeHandlers.delete(fn); }\n" - " return this;\n" - " }\n" - " }\n" - " MessagePort.prototype.addListener = MessagePort.prototype.on;\n" - " MessagePort.prototype.removeListener = MessagePort.prototype.off;\n" - " class MessageChannel {\n" - " constructor() {\n" - " this.port1 = new MessagePort();\n" - " this.port2 = new MessagePort();\n" - " this.port1._other = this.port2;\n" - " this.port2._other = this.port1;\n" - " }\n" - " }\n" - " g.MessageEvent = MessageEvent;\n" - " g.MessagePort = MessagePort;\n" - " g.MessageChannel = MessageChannel;\n" - "\n" - " const te = () => new g.TextEncoder();\n" - "\n" - " const coerceBodyBytes = (body) => {\n" - " // → [bytes|stream, implicit content-type or null]\n" - " if (typeof body === 'string') return [te().encode(body), 'text/plain;charset=UTF-8'];\n" - " if (body instanceof g.URLSearchParams) {\n" - " return [te().encode(String(body)), 'application/x-www-form-urlencoded;charset=UTF-8'];\n" - " }\n" - " if (body instanceof Uint8Array) return [new Uint8Array(body), null];\n" - " if (body instanceof ArrayBuffer) return [new Uint8Array(body.slice(0)), null];\n" - " if (ArrayBuffer.isView(body)) {\n" - " return [new Uint8Array(body.buffer.slice(body.byteOffset, body.byteOffset + body.byteLength)), null];\n" - " }\n" - " if (body instanceof g.ReadableStream) return [body, null];\n" - " throw new TypeError('unsupported body type in the scriptc island (string, Uint8Array, ArrayBuffer, URLSearchParams, or ReadableStream)');\n" - " };\n" - "\n" - " const consume = (self) => {\n" - " if (self._bodyUsed) return Promise.reject(new TypeError('Body is unusable: Body has already been read'));\n" - " self._bodyUsed = true;\n" - " const body = self._body;\n" - " if (body === null) return Promise.resolve(new Uint8Array(0));\n" - " if (body instanceof Uint8Array) return Promise.resolve(body);\n" - " // a ReadableStream of Uint8Array (or string) chunks\n" - " const chunks = [];\n" - " let total = 0;\n" - " const reader = body.getReader();\n" - " const step = () =>\n" - " reader.read().then((r) => {\n" - " if (r.done) {\n" - " const out = new Uint8Array(total);\n" - " let off = 0;\n" - " for (const c of chunks) { out.set(c, off); off += c.length; }\n" - " return out;\n" - " }\n" - " const c = typeof r.value === 'string' ? te().encode(r.value) : r.value;\n" - " if (!(c instanceof Uint8Array)) throw new TypeError('body stream produced a non-byte chunk');\n" - " chunks.push(c);\n" - " total += c.length;\n" - " return step();\n" - " });\n" - " return step();\n" - " };\n" - "\n" - " const bodyMixin = (cls) => {\n" - " Object.defineProperties(cls.prototype, {\n" - " body: {\n" - " get() {\n" - " if (this._body === null) return null;\n" - " if (this._body instanceof Uint8Array) {\n" - " // lazily wrap fixed bytes in a stream, once\n" - " const bytes = this._body;\n" - " const self = this;\n" - " this._body = new g.ReadableStream({\n" - " start(c) { c.enqueue(bytes); c.close(); },\n" - " cancel() { self._bodyUsed = true; },\n" - " });\n" - " }\n" - " return this._body;\n" - " },\n" - " configurable: true,\n" - " },\n" - " bodyUsed: { get() { return this._bodyUsed; }, configurable: true },\n" - " });\n" - " cls.prototype.arrayBuffer = function () {\n" - " return consume(this).then((b) => b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength));\n" - " };\n" - " cls.prototype.bytes = function () { return consume(this); };\n" - " cls.prototype.text = function () {\n" - " return consume(this).then((b) => new g.TextDecoder().decode(b));\n" - " };\n" - " cls.prototype.json = function () { return this.text().then((t) => JSON.parse(t)); };\n" - " cls.prototype.clone = function () {\n" - " throw new Error(cls.name + '.clone is not supported in the scriptc island');\n" - " };\n" - " };\n" - "\n" - " const normalizeMethod = (m) => {\n" - " const s = String(m);\n" - " const u = s.toUpperCase();\n" - " if (u === 'DELETE' || u === 'GET' || u === 'HEAD' || u === 'OPTIONS' || u === 'POST' || u === 'PUT') return u;\n" - " if (u === 'CONNECT' || u === 'TRACE' || u === 'TRACK') throw new TypeError(`'${s}' HTTP method is unsupported.`);\n" - " return s;\n" - " };\n" - "\n" - " class Request {\n" - " constructor(input, init) {\n" - " init = init === undefined || init === null ? {} : init;\n" - " if (input instanceof Request) {\n" - " this._url = input._url;\n" - " this._method = input._method;\n" - " this._headers = new g.Headers(input._headers);\n" - " this._body = input._body; // shared bytes; fetch copies\n" - " this._signal = input._signal;\n" - " this._redirect = input._redirect;\n" - " } else {\n" - " this._url = String(input);\n" - " this._method = 'GET';\n" - " this._headers = new g.Headers();\n" - " this._body = null;\n" - " this._signal = null;\n" - " this._redirect = 'follow';\n" - " }\n" - " if (init.method !== undefined) this._method = normalizeMethod(init.method);\n" - " if (init.headers !== undefined) this._headers = new g.Headers(init.headers);\n" - " if (init.signal !== undefined) {\n" - " if (init.signal !== null && !(init.signal instanceof g.AbortSignal)) {\n" - " throw new TypeError('Request init.signal must be an AbortSignal or null');\n" - " }\n" - " this._signal = init.signal;\n" - " }\n" - " if (init.redirect !== undefined) {\n" - " const redirect = String(init.redirect);\n" - " if (redirect !== 'follow' && redirect !== 'error' && redirect !== 'manual') {\n" - " throw new TypeError(`undefined: ${redirect} is not an accepted type. Expected one of follow, manual, error.`);\n" - " }\n" - " this._redirect = redirect;\n" - " }\n" - " if (init.body !== undefined && init.body !== null) {\n" - " if (this._method === 'GET' || this._method === 'HEAD') {\n" - " throw new TypeError('Request with GET/HEAD method cannot have body.');\n" - " }\n" - " const [bytes, ct] = coerceBodyBytes(init.body);\n" - " if (bytes instanceof g.ReadableStream && init.duplex !== 'half') {\n" - " throw new TypeError('RequestInit: duplex option is required when sending a body.');\n" - " }\n" - " this._body = bytes;\n" - " if (ct !== null && !this._headers.has('content-type')) this._headers.set('content-type', ct);\n" - " }\n" - " // A method override still validates a body inherited from the\n" - " // input Request, not only a body supplied by this init.\n" - " if (this._body !== null && (this._method === 'GET' || this._method === 'HEAD')) {\n" - " throw new TypeError('Request with GET/HEAD method cannot have body.');\n" - " }\n" - " this._bodyUsed = false;\n" - " }\n" - " get url() { return this._url; }\n" - " get method() { return this._method; }\n" - " get headers() { return this._headers; }\n" - " get redirect() { return this._redirect; }\n" - " /* Node's Request.signal is never null — a request built without one\n" - " * carries an inert signal; mint it lazily on first access. */\n" - " get signal() {\n" - " if (this._signal === null) this._signal = mkSignal();\n" - " return this._signal;\n" - " }\n" - " }\n" - " bodyMixin(Request);\n" - "\n" - " class Response {\n" - " constructor(body, init) {\n" - " init = init === undefined || init === null ? {} : init;\n" - " const status = init.status === undefined ? 200 : Number(init.status);\n" - " if (!Number.isInteger(status) || status < 200 || status > 599) {\n" - " throw new RangeError(`init[\"status\"] must be in the range of 200 to 599, inclusive.`);\n" - " }\n" - " this._status = status;\n" - " this._statusText = init.statusText === undefined ? '' : String(init.statusText);\n" - " this._headers = new g.Headers(init.headers);\n" - " this._url = '';\n" - " this._redirected = false;\n" - " this._type = 'default';\n" - " this._bodyUsed = false;\n" - " if (body === undefined || body === null) {\n" - " this._body = null;\n" - " } else {\n" - " const [bytes, ct] = coerceBodyBytes(body);\n" - " this._body = bytes;\n" - " if (ct !== null && !this._headers.has('content-type')) this._headers.set('content-type', ct);\n" - " }\n" - " }\n" - " get status() { return this._status; }\n" - " get statusText() { return this._statusText; }\n" - " get ok() { return this._status >= 200 && this._status <= 299; }\n" - " get headers() { return this._headers; }\n" - " get url() { return this._url; }\n" - " get redirected() { return this._redirected; }\n" - " get type() { return this._type; }\n" - " static json(data, init) {\n" - " const r = new Response(JSON.stringify(data), init);\n" - " r._headers.set('content-type', 'application/json');\n" - " return r;\n" - " }\n" - " }\n" - " bodyMixin(Response);\n" - "\n" - " g.Request = Request;\n" - " g.Response = Response;\n" - " /* Internal: fetch builds Responses outside the constructor's 200–599\n" - " * validation surface (statusText from the wire, url/redirected set). */\n" - " g.__scr_mk_response = (status, statusText, headers, url, redirected, bodyStream) => {\n" - " const r = new Response(null, { statusText: String(statusText) });\n" - " r._status = status;\n" - " r._headers = headers;\n" - " r._url = url;\n" - " r._redirected = redirected;\n" - " r._type = 'basic';\n" - " r._body = bodyStream;\n" - " return r;\n" - " };\n" - " /* crypto: randomness bridges to the HOST functions (one source of truth —\n" - " * the same arc4random_buf CSPRNG behind the static crypto lowerings). */\n" - " const intTA = ['Int8Array', 'Uint8Array', 'Uint8ClampedArray', 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array', 'BigInt64Array', 'BigUint64Array'];\n" - " g.crypto = {\n" - " getRandomValues(ta) {\n" - " const tag = ta === null || typeof ta !== 'object' ? '' : Object.prototype.toString.call(ta).slice(8, -1);\n" - " if (intTA.indexOf(tag) < 0) {\n" - " const e = new TypeError('crypto.getRandomValues takes an integer TypedArray');\n" - " e.name = 'TypeMismatchError';\n" - " throw e;\n" - " }\n" - " if (ta.byteLength > 65536) {\n" - " const e = new Error('The requested length exceeds 65,536 bytes');\n" - " e.name = 'QuotaExceededError';\n" - " throw e;\n" - " }\n" - " host.fill(ta);\n" - " return ta;\n" - " },\n" - " randomUUID() { return host.uuid(); },\n" - " };\n" - "\n" - " /* console: String()-formatted, space-joined, newline-terminated writes to\n" - " * the REAL fds (same stdio buffers as static console.log). No printf-style\n" - " * formatting and no object inspection — SEMANTICS.md documents the\n" - " * subset. */\n" - " const consoleFmt = (args) => {\n" - " let s = '';\n" - " for (let i = 0; i < args.length; i++) {\n" - " if (i > 0) s += ' ';\n" - " try { s += String(args[i]); } catch (_e) { s += '[value]'; }\n" - " }\n" - " return s + '\\n';\n" - " };\n" - " const consoleTo = (fd) => (...args) => { host.write(fd, consoleFmt(args)); };\n" - " g.console = {\n" - " log: consoleTo(1),\n" - " info: consoleTo(1),\n" - " debug: consoleTo(1),\n" - " warn: consoleTo(2),\n" - " error: consoleTo(2),\n" - " trace: consoleTo(2),\n" - " };\n" - "\n" - " /* Date#toString/#toTimeString: the engine stops at the GMT offset\n" - " * (\"Tue Jan 02 2024 00:00:00 GMT+0000\"); Node/V8 appends the zone's\n" - " * long name (\"(Coordinated Universal Time)\"). The suffix rides\n" - " * host.tzname(ms) — exact for UTC, the C library's zone name for\n" - " * other zones (long names outside UTC are ICU data the runtime does\n" - " * not carry; SEMANTICS.md). */\n" - " {\n" - " const dToString = Date.prototype.toString;\n" - " const dToTimeString = Date.prototype.toTimeString;\n" - " const dGetTime = Date.prototype.getTime;\n" - " const withZone = (self, base) => {\n" - " if (base === 'Invalid Date') return base;\n" - " const name = host.tzname(dGetTime.call(self));\n" - " return name === '' ? base : base + ' (' + name + ')';\n" - " };\n" - " Date.prototype.toString = function toString() { return withZone(this, dToString.call(this)); };\n" - " Date.prototype.toTimeString = function toTimeString() { return withZone(this, dToTimeString.call(this)); };\n" - " }\n" - "}\n"; - -/* ── island timers (AbortSignal.timeout) ────────────────────────────── - * One-shot engine callbacks on the loop's monotonic clock, armed by the - * prelude's host.timer(fn, ms). UNREF'd like Node's AbortSignal.timeout - * timer: an armed timer never keeps the loop alive (it joins neither the - * exhaustion test nor io-pending unless already DUE); the island's io - * poll caps its sleeps at the earliest deadline and fires due timers, so - * a fetch timeout fires on time while the transfer keeps the loop - * running. Fired on the main stack from the io hook — isl_entry already - * re-anchored the engine. Unfired callbacks are freed at teardown. */ - -typedef struct WebTimer { - double deadline_ms; - JSContext *ctx; - JSValue fn; /* owned */ - struct WebTimer *next; -} WebTimer; - -static WebTimer *web_timers = NULL; - -/* ── the setTimeout/setInterval bridge (the prelude's host.setTimer) ── - * Entries live on the STATIC timer heap (scr_async.c): ref'd liveness, - * FIFO ordering against static timers, and clearing all come from there. - * Each entry's closure captures the engine callback through a SCR_BOX_OBJ - * whose retain/release manage this little handle. */ - -typedef struct { - size_t rc; - JSContext *ctx; - JSValue fn; /* owned */ -} WebTimerFn; - -static void *web_timerfn_retain(void *p) { - WebTimerFn *h = p; - h->rc++; - return p; -} - -static void web_timerfn_release(void *p) { - WebTimerFn *h = p; - if (--h->rc == 0) { - JS_FreeValue(h->ctx, h->fn); - free(h); - } -} - -/* The static-heap closure body: calls the engine callback on the main - * stack (where the loop fires every timer), then drains the engine jobs - * it queued (Node runs microtasks right after the macrotask). A throw - * bridges into the loop's uncaught path, exactly like a static timer - * callback's throw. */ -static void web_timer_fire_cb(ScrClosure *env) { - WebTimerFn *h = scr_box_get_ref(env->caps[0]); /* +1 */ - JSValue r = JS_Call(h->ctx, h->fn, JS_UNDEFINED, 0, NULL); - if (JS_IsException(r)) { - scr_island_bridge_exception(); - } else { - JS_FreeValue(h->ctx, r); - scr_island_drain_jobs(); - } - web_timerfn_release(h); -} - -static JSValue web_host_set_timer(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) { - (void)this_val; - double ms = 0; - if (JS_ToFloat64(ctx, &ms, argv[1])) return JS_EXCEPTION; - bool repeat = JS_ToBool(ctx, argv[2]) > 0; - WebTimerFn *h = malloc(sizeof *h); - if (!h) { - fprintf(stderr, "scriptc: out of memory\n"); - abort(); - } - h->rc = 1; - h->ctx = ctx; - h->fn = JS_DupValue(ctx, argv[0]); - ScrBox *box = scr_box_new_obj(web_timerfn_retain, web_timerfn_release, NULL); - scr_box_set_ref(box, h); /* the box owns the +1 */ - ScrClosure *cb = scr_closure_new((void *)web_timer_fire_cb, 1); - cb->caps[0] = box; - bool immediate = argc > 3 && JS_ToBool(ctx, argv[3]) > 0; - double id = immediate ? scr_set_immediate(cb) - : repeat ? scr_set_interval(cb, ms) : scr_set_timeout_handle(cb, ms); - return JS_NewFloat64(ctx, id); -} - -static JSValue web_host_clear_timer(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) { - (void)this_val; - double id = 0; - if (JS_ToFloat64(ctx, &id, argv[0])) return JS_EXCEPTION; - if (argc > 1 && JS_ToBool(ctx, argv[1]) > 0) scr_clear_immediate(id); - else scr_clear_interval(id); - return JS_UNDEFINED; -} - -static JSValue web_host_ref_timer(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) { - (void)this_val; - (void)argc; - double id = 0; - if (JS_ToFloat64(ctx, &id, argv[0])) return JS_EXCEPTION; - bool reffed = JS_ToBool(ctx, argv[1]) > 0; - bool immediate = JS_ToBool(ctx, argv[2]) > 0; - if (immediate) { - if (reffed) scr_immediate_ref(id); else scr_immediate_unref(id); - } else { - if (reffed) scr_timer_ref(id); else scr_timer_unref(id); - } - return JS_UNDEFINED; -} - -static JSValue web_host_refresh_timer(JSContext *ctx, JSValueConst this_val, - int argc, JSValueConst *argv) { - (void)this_val; - (void)argc; - double id = 0; - if (JS_ToFloat64(ctx, &id, argv[0])) return JS_EXCEPTION; - scr_timer_refresh(id); - return JS_UNDEFINED; -} - -static JSValue web_host_timer(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - double ms = 0; - if (JS_ToFloat64(ctx, &ms, argv[1])) return JS_EXCEPTION; - if (!(ms >= 0)) ms = 0; /* NaN/negative clamp, like the static setTimeout */ - WebTimer *t = malloc(sizeof *t); - if (!t) { - fprintf(stderr, "scriptc: out of memory\n"); - abort(); - } - t->deadline_ms = scr_now_ms() + ms; - t->ctx = ctx; - t->fn = JS_DupValue(ctx, argv[0]); - t->next = web_timers; - web_timers = t; - return JS_UNDEFINED; -} - -double scr_island_timers_deadline(void) { - double best = HUGE_VAL; - for (WebTimer *t = web_timers; t; t = t->next) { - if (t->deadline_ms < best) best = t->deadline_ms; - } - return best; -} - -bool scr_island_timers_due(void) { - return web_timers != NULL && scr_island_timers_deadline() <= scr_now_ms(); -} - -/* Fires every due timer (a callback may arm new ones — the scan restarts - * after each firing, so late arrivals with passed deadlines fire too). - * A throwing callback is our own glue misbehaving: reported, never fatal, - * the remaining timers still fire. */ -bool scr_island_timers_fire_due(void) { - bool fired = false; - double now = scr_now_ms(); - for (;;) { - WebTimer **link = &web_timers; - WebTimer *due = NULL; - while (*link) { - if ((*link)->deadline_ms <= now) { - due = *link; - *link = due->next; - break; - } - link = &(*link)->next; - } - if (!due) break; - JSValue r = JS_Call(due->ctx, due->fn, JS_UNDEFINED, 0, NULL); - if (JS_IsException(r)) { - JSValue e = JS_GetException(due->ctx); - const char *msg = JS_ToCString(due->ctx, e); - fprintf(stderr, "scriptc: island timer callback threw: %s\n", msg ? msg : "?"); - if (msg) JS_FreeCString(due->ctx, msg); - JS_FreeValue(due->ctx, e); - } else { - JS_FreeValue(due->ctx, r); - } - JS_FreeValue(due->ctx, due->fn); - free(due); - fired = true; - } - return fired; -} - -void scr_island_timers_teardown(void) { - while (web_timers) { - WebTimer *t = web_timers; - web_timers = t->next; - JS_FreeValue(t->ctx, t->fn); - free(t); - } -} - -/* ── host functions ─────────────────────────────────────────────────── - * The prelude's I/O-free exceptions: randomness (bridged to the SAME - * arc4random_buf CSPRNG behind the static crypto lowerings — one source - * of truth), console's fd writes (the real stdio buffers, interleaving - * correctly with static console.log), and the timer above. Engine - * ownership rules as ever: argv borrowed, results owned. */ - -/* host.fill(typedArray): fill the view's bytes with CSPRNG output. The - * JS side already validated the view kind and the 65536-byte quota. */ -static JSValue web_host_fill(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - size_t off = 0, len = 0, bpe = 0; - JSValue ab = JS_GetTypedArrayBuffer(ctx, argv[0], &off, &len, &bpe); - if (JS_IsException(ab)) return JS_EXCEPTION; - size_t absize = 0; - uint8_t *buf = JS_GetArrayBuffer(ctx, &absize, ab); - JS_FreeValue(ctx, ab); - if (!buf) return JS_EXCEPTION; - if (len > 0) arc4random_buf(buf + off, len); - return JS_UNDEFINED; -} - -static JSValue web_host_uuid(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - (void)argv; - ScrStr *s = scr_crypto_random_uuid(); /* +1 */ - JSValue r = JS_NewStringLen(ctx, s->data, s->len); - scr_str_release(s); - return r; -} - -/* Date#toString's timezone-name suffix (the prelude's Date patch): Node - * prints the zone's CLDR long name ("Coordinated Universal Time"); without - * ICU data the C library only knows the zone's own name for the instant - * (tm_zone: "UTC", "CST" — DST-correct via localtime). UTC maps to its - * exact CLDR spelling; every other zone renders the C library name — the - * documented divergence in SEMANTICS.md. */ -static JSValue web_host_tzname(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - double ms = 0; - if (JS_ToFloat64(ctx, &ms, argv[0])) return JS_EXCEPTION; - if (!isfinite(ms)) return JS_NewString(ctx, ""); - time_t t = (time_t)floor(ms / 1000.0); -#if defined(_WIN32) - /* MinGW's struct tm carries no tm_zone; tzname[] (after tzset) holds the - * CRT's zone names — full names on Windows ("Central Standard Time"). */ - struct tm *lt = localtime(&t); - if (lt == NULL) return JS_NewString(ctx, ""); - tzset(); - const char *name = tzname[lt->tm_isdst > 0 ? 1 : 0]; -#else - struct tm tmv; - if (localtime_r(&t, &tmv) == NULL) return JS_NewString(ctx, ""); - const char *name = tmv.tm_zone; -#endif - if (name == NULL) name = ""; - if (strcmp(name, "UTC") == 0) name = "Coordinated Universal Time"; - return JS_NewString(ctx, name); -} - -static JSValue web_host_write(JSContext *ctx, JSValueConst this_val, int argc, - JSValueConst *argv) { - (void)this_val; - (void)argc; - int32_t fd = 1; - JS_ToInt32(ctx, &fd, argv[0]); - size_t len; - const char *s = JS_ToCStringLen(ctx, &len, argv[1]); - if (!s) return JS_EXCEPTION; - scr_stdio_write(fd, s, len); - JS_FreeCString(ctx, s); - return JS_UNDEFINED; -} - -void scr_island_web_boot(void *jsctx) { - JSContext *ctx = (JSContext *)jsctx; - JSValue fn = JS_Eval(ctx, web_prelude, sizeof web_prelude - 1, - "", JS_EVAL_TYPE_GLOBAL); - if (JS_IsException(fn)) { - fprintf(stderr, "scriptc: island web prelude failed to evaluate\n"); - JSValue e = JS_GetException(ctx); - JS_FreeValue(ctx, e); - abort(); - } - JSValue host = JS_NewObject(ctx); - /* JS_SetPropertyStr consumes the function values. */ - JS_SetPropertyStr(ctx, host, "fill", JS_NewCFunction(ctx, web_host_fill, "fill", 1)); - JS_SetPropertyStr(ctx, host, "uuid", JS_NewCFunction(ctx, web_host_uuid, "uuid", 0)); - JS_SetPropertyStr(ctx, host, "write", JS_NewCFunction(ctx, web_host_write, "write", 2)); - JS_SetPropertyStr(ctx, host, "tzname", JS_NewCFunction(ctx, web_host_tzname, "tzname", 1)); - JS_SetPropertyStr(ctx, host, "timer", JS_NewCFunction(ctx, web_host_timer, "timer", 2)); - JS_SetPropertyStr(ctx, host, "setTimer", JS_NewCFunction(ctx, web_host_set_timer, "setTimer", 4)); - JS_SetPropertyStr(ctx, host, "clearTimer", JS_NewCFunction(ctx, web_host_clear_timer, "clearTimer", 2)); - JS_SetPropertyStr(ctx, host, "refTimer", JS_NewCFunction(ctx, web_host_ref_timer, "refTimer", 3)); - JS_SetPropertyStr(ctx, host, "refreshTimer", JS_NewCFunction(ctx, web_host_refresh_timer, "refreshTimer", 1)); - JSValue r = JS_Call(ctx, fn, JS_UNDEFINED, 1, (JSValueConst *)&host); - JS_FreeValue(ctx, host); - JS_FreeValue(ctx, fn); - if (JS_IsException(r)) { - fprintf(stderr, "scriptc: island web prelude failed to run\n"); - JSValue e = JS_GetException(ctx); - JS_FreeValue(ctx, e); - abort(); - } - JS_FreeValue(ctx, r); -} - -#endif /* SCR_DYNAMIC */ diff --git a/packages/runtime/src/scr_zlib.c b/packages/runtime/src/scr_zlib.c index 8599d5fd9..87a7b1524 100644 --- a/packages/runtime/src/scr_zlib.c +++ b/packages/runtime/src/scr_zlib.c @@ -86,12 +86,6 @@ ScrBytes *scr_zlib_inflate(const ScrBytes *data) { return out; } -/* ── format-mode variants (static raw/gzip/unzip calls use these directly; - * scr_zlib_island.c also bridges them into the embedded engine's node:zlib - * shim) ─────────────────────────────────────────────────────────────── - * mode: 0 zlib (windowBits 15), 1 raw (-15), 2 gzip (15+16); inflate - * additionally takes 3 = auto-detect zlib/gzip (15+32, Node's unzip). */ - static int scr_zlib_window_bits(int mode, bool inflating) { switch (mode) { case 1: return -15; @@ -342,12 +336,6 @@ void scr_zlib_codec_async(const ScrBytes *data, double mode, bool compressing, } #endif -/* One-shot raw-DEFLATE inflate into a caller-sized buffer: the island's - * compressed embedded module text (the emitter stores big npm sources - * deflated and their exact inflated length in the table row — the emitted - * main installs this through scr_island_set_inflate). True only when the - * stream ends exactly at dst_len; any mismatch is a build/runtime bug the - * caller surfaces, never a silent truncation. */ bool scr_zlib_inflate_exact(const unsigned char *src, size_t src_len, unsigned char *dst, size_t dst_len) { z_stream zs; diff --git a/packages/runtime/src/scr_zlib_island.c b/packages/runtime/src/scr_zlib_island.c deleted file mode 100644 index 9e1a1e0fd..000000000 --- a/packages/runtime/src/scr_zlib_island.c +++ /dev/null @@ -1,15 +0,0 @@ -/* The zlib ↔ island bridge — the one translation unit referencing BOTH - * scr_zlib.c and the island (the scr_inspect_island.c precedent): native-toolchain.ts - * compiles it exactly when a --dynamic build's embedded npm graph - * imports node:zlib, and the emitted main calls scr_zlib_island_install - * before any island entry. zlib-free dynamic builds keep the island's - * "zlib is not linked" refusal; island-free zlib builds never load this - * file. */ -#include "scr_runtime.h" - -void scr_island_set_zlib(ScrBytes *(*deflate)(const ScrBytes *, double, double), - ScrBytes *(*inflate)(const ScrBytes *, double)); - -void scr_zlib_island_install(void) { - scr_island_set_zlib(scr_zlib_deflate_mode, scr_zlib_inflate_mode); -} diff --git a/packages/runtime/vendor/README.md b/packages/runtime/vendor/README.md index c9078560b..977179609 100644 --- a/packages/runtime/vendor/README.md +++ b/packages/runtime/vendor/README.md @@ -23,11 +23,11 @@ The double-to-shortest-decimal core of Ryū (d2s and its headers only — the fl - Commit: 3c8f3d68953955950074c41c6e4d999562ae82a7 - License: MIT (see quickjs-ng/LICENSE) -The QuickJS-ng JavaScript engine, embedded by the opt-in `--dynamic` build mode (see packages/runtime/src/scr_island.c). Static builds never compile or link any of this. +The QuickJS-ng engine is used only by the native compiler's isolated `comptime` evaluator. Compiled user programs never link it. The standalone regex and Unicode libraries from this tree still support native RegExp and string operations. The tree is a plain snapshot of the upstream commit with directories the library build does not need removed (tests/, docs/, examples/, test262 fixtures, CI config, generator scripts). No vendored file is modified; to update, re-clone upstream at the new commit, delete its .git directory, apply the same trim, and update this file. -The engine archive (libqjs.a) is prebuilt best-effort during npm installation (or explicitly by `scriptc cache warm`) and otherwise built lazily on the first `--dynamic` compile. It lives under the per-user build cache's `vendor/---/` directory — one flavor per lane (plain, asan), native platform/architecture or explicit cross target, and compiler environment/identity. +The native runtime pack build produces `libscriptc-quickjs.a` for the compiler bootstrap. It is excluded from executable runtime-pack selection. ## zlib/ @@ -39,16 +39,6 @@ The CROSS-target arm of node:zlib (see packages/runtime/src/scr_zlib.c): host bu The objects build lazily on the first zlib-using cross compile into the per-user build cache's `vendor/zlib----/` directory — one flavor per driver/target and compiler environment/identity (the lre-objects pattern). Zlib-free binaries never compile any of this; compressed OUTPUT bytes are zlib-version-dependent, which is why the corpus only compares round-trips and fixed-blob inflation. -## curl/ - -- Project: https://curl.se/ (Debian bookworm's libcurl4-openssl-dev 7.88.1, the exact library the Linux lane's pinned container image ships) -- Version: 7.88.1 (headers copied byte-for-byte from `node:24.15.0-bookworm`'s `/usr/include/aarch64-linux-gnu/curl/`; the arch-specific include dir is Debian multiarch layout — the headers themselves are architecture-independent, `system.h` selects per-arch typedefs at preprocessing time) -- License: curl (see curl/COPYRIGHT — the Debian machine-readable copyright file for the package the headers came from) - -HEADERS ONLY — no curl C source is vendored and none is ever compiled. These headers now serve ONLY the RETIRED curl reference implementation of fetch (packages/runtime/src/scr_fetch_curl.c, selected by `SCRIPTC_FETCH_CURL=1`; kept compilable for one release as the native flip's reference — see scr_fetch.c, the default, which rides scr_net/scr_tls/scr_http/zlib and touches nothing here). Under the flag: host builds link the system `-lcurl` (macOS ships libcurl), and linux-gnu CROSS builds compile scr_fetch_curl.c against these headers, then link against a generated STUB `libcurl.so` (soname `libcurl.so.4`, empty definitions of exactly the symbols scr_fetch_curl.c calls — see CURL_STUB_SYMBOLS in packages/compiler/src/backend/vendor-archives.ts) so the produced binary records a plain `DT_NEEDED libcurl.so.4` that the TARGET system's real libcurl satisfies at load time, the standard cross-link import-stub technique. The 7.88.1 pin is a floor, not a lock: scr_fetch_curl.c's newest requirement is CURLOPT_PROTOCOLS_STR (7.85.0) and the unversioned symbol references bind to any libcurl.so.4. This whole directory leaves with scr_fetch_curl.c when the reference retires for good. - -The stub builds lazily on the first flag-selected fetch cross compile into the per-user build cache's `vendor/curl-stub--/` directory (the zlib-objects pattern). Default builds never see any of this, and no build ever compiles curl itself. - ## mbedtls/ - Project: https://github.com/Mbed-TLS/mbedtls diff --git a/packages/runtime/vendor/curl/COPYRIGHT b/packages/runtime/vendor/curl/COPYRIGHT deleted file mode 100644 index a9cbd5a1f..000000000 --- a/packages/runtime/vendor/curl/COPYRIGHT +++ /dev/null @@ -1,534 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: curl -Source: https://curl.se/ - -Files: * -Copyright: 1997-2022, Daniel Stenberg, , et al. -License: curl - -Files: debian/* -Copyright: 1999, Leon Breedt - 2005, Luk Claes - 2005, LaMont Jones - 2004-2005, Matthias Klose - 2005-2006, Martin Pitt - 2008, Andreas Schuldei - 2000-2010, Domenico Andreoli - 1999-2010, Domenico Andreoli - 2010-2011, Ramakrishnan Muthukrishnan - 2007, 2011, 2018, Steve Langasek - 2011-2020, Alessandro Ghedini - 2021, Bruno Kleinert - 2021, Jeremy Bicha - 2014-2011, Helmut Grohne - 2022, Paul Gevers - 2013, 2022, Salvatore Bonaccorso - 2022, Sergio Durigan Junior - 2021-2022, Samuel Henrique - 2023 John Scott -License: curl - -Files: debian/tests/LDAP-bindata.c -Copyright: 2019 Ryan Tandy - 2023 John Scott -License: OLDAP-2.8 - -Files: packages/vms/backup_gnv_curl_src.com - packages/vms/build_curl-config_script.com - packages/vms/build_gnv_curl.com - packages/vms/build_gnv_curl_pcsi_desc.com - packages/vms/build_gnv_curl_pcsi_text.com - packages/vms/build_gnv_curl_release_notes.com - packages/vms/build_libcurl_pc.com - packages/vms/clean_gnv_curl.com - packages/vms/config_h.com - packages/vms/curl_gnv_build_steps.txt - packages/vms/curl_startup.com - packages/vms/generate_config_vms_h_curl.com - packages/vms/generate_vax_transfer.com - packages/vms/gnv_conftest.c_first - packages/vms/gnv_curl_configure.sh - packages/vms/gnv_libcurl_symbols.opt - packages/vms/gnv_link_curl.com - packages/vms/make_gnv_curl_install.sh - packages/vms/make_pcsi_curl_kit_name.com - packages/vms/pcsi_gnv_curl_file_list.txt - packages/vms/pcsi_product_gnv_curl.com - packages/vms/report_openssl_version.c - packages/vms/setup_gnv_curl_build.com - packages/vms/stage_curl_install.com - packages/vms/vms_eco_level.h -Copyright: 2009-2022, John Malmberg -License: ISC - -Files: lib/curl_des.c - lib/curl_des.h - lib/system_win32.c - lib/system_win32.h - lib/vauth/krb5_sspi.c - lib/vauth/vauth.c - lib/vauth/vauth.h - lib/version_win32.c - lib/version_win32.h - projects/build-openssl.bat - projects/checksrc.bat - projects/generate.bat - tests/libtest/lib1520.c -Copyright: 2012-2022, Steve Holme, -License: curl - -Files: m4/xc-am-iface.m4 - m4/xc-cc-check.m4 - m4/xc-lt-iface.m4 - m4/xc-translit.m4 - m4/xc-val-flgs.m4 - m4/zz40-xc-ovr.m4 - m4/zz50-xc-ovr.m4 - m4/zz60-xc-ovr.m4 -Copyright: 2011-2022, Daniel Stenberg -License: ISC - -Files: compile - depcomp - missing - test-driver -Copyright: 1996-2021, Free Software Foundation, Inc. -License: GPL-2+ with Autoconf-data exception - -Files: lib/vtls/mbedtls.c - lib/vtls/mbedtls.h - lib/vtls/mbedtls_threadlock.c - lib/vtls/mbedtls_threadlock.h -Copyright: 2010-2011, Hoi-Ho Chan, - 2012-2022, Daniel Stenberg, , et al. -License: curl - -Files: tests/libtest/lib1506.c - tests/libtest/lib1508.c - tests/libtest/lib1510.c - tests/libtest/lib1512.c -Copyright: 2013-2022, Linus Nielsen Feltzing -License: curl - -Files: config.guess - config.sub -Copyright: 1992-2022, Free Software Foundation, Inc. -License: GPL-3+ with Autoconf-data exception - -Files: lib/inet_ntop.c - lib/inet_pton.c -Copyright: 1996-2022, Internet Software Consortium. -License: ISC - -Files: tests/certs/scripts/genroot.sh - tests/certs/scripts/genserv.sh -Copyright: 2000-2020, EdelWeb for EdelKey and OpenEvidence -License: curl - -Files: lib/smb.c - lib/smb.h -Copyright: 2014, 2018, Bill Nagel , Exacq Technologies - 2018-2022, Daniel Stenberg, , et al. -License: curl - -Files: lib/curl_sha256.h - lib/sha256.c -Copyright: 2017, Florin Petriuc, - 2018-2022, Daniel Stenberg, , et al. -License: curl - -Files: lib/conncache.c - lib/conncache.h -Copyright: 2012-2016, Linus Nielsen Feltzing, - 2012-2022, Daniel Stenberg, , et al. -License: curl - -Files: tests/appveyor.pm - tests/azure.pm -Copyright: 2020-2022, Daniel Stenberg, , et al. - 2020-2022, Marc Hoersken, -License: curl - -Files: lib/vtls/schannel.c - lib/vtls/schannel_verify.c -Copyright: 2012, Mark Salisbury, - 2012-2016, Marc Hoersken, - 2012-2022, Daniel Stenberg, , et al. -License: curl - -Files: lib/socks_gssapi.c - lib/socks_sspi.c -Copyright: 2011-2012, Markus Moeller, - 2012-2022, Daniel Stenberg, , et al. -License: curl - -Files: lib/vtls/sectransp.c - lib/vtls/sectransp.h -Copyright: 2012-2017, Nick Zitzmann, . - 2012-2022, Daniel Stenberg, , et al. -License: curl - -Files: lib/vauth/digest_sspi.c - lib/vauth/krb5_gssapi.c -Copyright: 2014-2019, Steve Holme, . - 2015-2022, Daniel Stenberg, , et al. -License: curl - -Files: lib/vtls/rustls.c - lib/vtls/rustls.h -Copyright: 2020-2022, Jacob Hoffman-Andrews, -License: curl - -Files: tests/libtest/lib1908.c - tests/libtest/lib1910.c -Copyright: 2013-2022, Linus Nielsen Feltzing, -License: curl - -Files: docs/libcurl/opts/CURLOPT_PREREQDATA.3 - docs/libcurl/opts/CURLOPT_PREREQFUNCTION.3 -Copyright: 2022, Max Dymond, , et al. -License: curl - -Files: lib/vtls/bearssl.c - lib/vtls/bearssl.h -Copyright: 2019-2022, Michael Forney, -License: curl - -Files: tests/libtest/lib1526.c - tests/libtest/lib1527.c -Copyright: 1998-2022, Vijay Panghal, , et al. -License: curl - -Files: m4/libtool.m4 - ltmain.sh -Copyright: 1996-2022, Free Software Foundation, Inc. -License: GPL-2+ with Libtool exception - -Files: lib/krb5.c -Copyright: 1995-1999, Kungliga Tekniska Högskolan - 2004-2022, Daniel Stenberg -License: BSD-3-clause - -Files: tests/server/tftpd.c -Copyright: 1983, Regents of the University of California. - 2005-2022, Daniel Stenberg, , et al. -License: BSD-4-Clause-UC - -Files: aclocal.m4 - m4/ltsugar.m4 - m4/ltversion.m4 - m4/ltoptions.m4 - m4/lt~obsolete.m4 -Copyright: 1996-2022, Free Software Foundation, Inc. -License: FSFULLR - -Files: install-sh -Copyright: 1994, X Consortium -License: X11 - -Files: lib/mqtt.h -Copyright: 2019-2022, Björn Stenberg, -License: curl - -Files: lib/mqtt.c -Copyright: 2019, Björn Stenberg, - 2020-2022, Daniel Stenberg, , et al. -License: curl - -Files: lib/curl_rtmp.c -Copyright: 2012, Howard Chu, - 2012-2022, Daniel Stenberg, , et al. -License: curl - -Files: lib/openldap.c -Copyright: 2010, Howard Chu, - 2011-2022, Daniel Stenberg, , et al. -License: curl - -Files: tests/server/fake_ntlm.c -Copyright: 2010, Mandy Wu, - 2011-2022, Daniel Stenberg, , et al. -License: curl - -Files: lib/vtls/schannel.h -Copyright: 2012, Marc Hoersken, , et al. - 2012-2022, Daniel Stenberg, , et al. -License: curl - -Files: tests/libtest/lib1525.c -Copyright: 1998, Vijay Panghal, , et al. - 1998-2022, Daniel Stenberg, , et al. -License: curl - -Files: docs/libcurl/libcurl.m4 -Copyright: 2006-2022, David Shaw -License: curl - -Files: tests/pathhelp.pm -Copyright: 2016-2022, Evgeny Grin (Karlson2k), . -License: curl - -Files: lib/curl_rtmp.h -Copyright: 2010-2022, Howard Chu, -License: curl - -Files: projects/build-wolfssl.bat -Copyright: 2012-2020, Steve Holme, . - 2015-2022, Jay Satiro, . -License: curl - -Files: docs/examples/crawler.c -Copyright: 2018-2022, Jeroen Ooms -License: curl - -Files: tests/libtest/libprereq.c -Copyright: 2021-2022, Max Dymond, -License: curl - -Files: tests/libtest/lib3010.c -Copyright: 2020-2022, Nicolas Sterchele, -License: curl - -Files: lib/vssh/libssh.c -Copyright: 2017-2022, Red Hat, Inc. -License: curl - -Files: lib/vauth/gsasl.c -Copyright: 2020-2022, Simon Josefsson, , et al. -License: curl - -License: curl - All rights reserved. - . - Permission to use, copy, modify, and distribute this software for any purpose - with or without fee is hereby granted, provided that the above copyright - notice and this permission notice appear in all copies. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE - OR OTHER DEALINGS IN THE SOFTWARE. - . - Except as contained in this notice, the name of a copyright holder shall not - be used in advertising or otherwise to promote the sale, use or other dealings - in this Software without prior written authorization of the copyright holder. - -License: BSD-3-Clause - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - . - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - . - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - . - 3. Neither the name of the Institute nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -License: BSD-4-Clause-UC - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed by the University of - California, Berkeley and its contributors. - 4. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. -Comment: Clause 3 has been deleted: - July 22, 1999 - . - To All Licensees, Distributors of Any Version of BSD: - . - As you know, certain of the Berkeley Software Distribution ("BSD") source - code files require that further distributions of products containing all or - portions of the software, acknowledge within their advertising materials - that such products contain software developed by UC Berkeley and its - contributors. - . - Specifically, the provision reads: - . - " * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors." - . - Effective immediately, licensees and distributors are no longer required to - include the acknowledgement within advertising materials. Accordingly, the - foregoing paragraph of those BSD Unix files containing it is hereby deleted - in its entirety. - . - William Hoskins - Director, Office of Technology Licensing - University of California, Berkeley - -License: ISC - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - . - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -License: GPL-2+ with Autoconf-data exception - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - . - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program. If not, see . - As a special exception to the GNU General Public License, if you - distribute this file as part of a program that contains a - configuration script generated by Autoconf, you may include it under - the same distribution terms that you use for the rest of that program. - -License: X11 - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to - deal in the Software without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - . - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- - TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - . - Except as contained in this notice, the name of the X Consortium shall not - be used in advertising or otherwise to promote the sale, use or other deal- - ings in this Software without prior written authorization from the X Consor- - tium. - -License: GPL-2+ with Libtool exception - GNU Libtool is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - As a special exception to the GNU General Public License, - if you distribute this file as part of a program or library that - is built using GNU Libtool, you may include this file under the - same distribution terms that you use for the rest of that program. - . - GNU Libtool is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with GNU Libtool; see the file COPYING. If not, a copy - can be downloaded from http://www.gnu.org/licenses/gpl.html, - or obtained by writing to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - . - On Debian systems, the full text of the GNU General Public - License version 2 can be found in the file - `/usr/share/common-licenses/GPL-2'. - -License: GPL-3+ with Autoconf-data exception - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation, either version 3 of the License, or (at your - option) any later version. - . - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General - Public License for more details. - . - You should have received a copy of the GNU General Public License along - with this program. If not, see . - . - As a special exception, the respective Autoconf Macro's copyright owner - gives unlimited permission to copy, distribute and modify the configure - scripts that are the output of Autoconf when processing the Macro. You - need not follow the terms of the GNU General Public License when using - or distributing such scripts, even though portions of the text of the - Macro appear in them. The GNU General Public License (GPL) does govern - all other use of the material that constitutes the Autoconf Macro. - . - This special exception to the GPL applies to versions of the Autoconf - Macro released by the Autoconf Archive. When you make and distribute a - modified version of the Autoconf Macro, you may extend this special - exception to the GPL to apply to your modified version as well. - -License: FSFULLR - This file is free software; the Free Software Foundation - gives unlimited permission to copy and/or distribute it, - with or without modifications, as long as this notice is preserved. - -License: OLDAP-2.8 - The OpenLDAP Public License - Version 2.8, 17 August 2003 - . - Redistribution and use of this software and associated documentation ("Software"), with or without modification, are permitted provided that the following conditions are met: - . - 1. Redistributions in source form must retain copyright statements and notices, - . - 2. Redistributions in binary form must reproduce applicable copyright statements and notices, this list of conditions, and the following disclaimer in the documentation and/or other materials provided with the distribution, and - . - 3. Redistributions must contain a verbatim copy of this document. - . - The OpenLDAP Foundation may revise this license from time to time. Each revision is distinguished by a version number. You may use this Software under terms of this license revision or under the terms of any subsequent revision of the license. - , - THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S) OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - . - The names of the authors and copyright holders must not be used in advertising or otherwise to promote the sale, use or other dealing in this Software without specific, written prior permission. Title to copyright in this Software shall at all times remain with copyright holders. - . - OpenLDAP is a registered trademark of the OpenLDAP Foundation. - . - Permission to copy and distribute verbatim copies of this document is granted. diff --git a/packages/runtime/vendor/curl/include/curl/curl.h b/packages/runtime/vendor/curl/include/curl/curl.h deleted file mode 100644 index 8cc0b6ffe..000000000 --- a/packages/runtime/vendor/curl/include/curl/curl.h +++ /dev/null @@ -1,3214 +0,0 @@ -#ifndef CURLINC_CURL_H -#define CURLINC_CURL_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ - -/* - * If you have libcurl problems, all docs and details are found here: - * https://curl.se/libcurl/ - */ - -#ifdef CURL_NO_OLDIES -#define CURL_STRICTER -#endif - -/* Compile-time deprecation macros. */ -#if defined(__GNUC__) && (__GNUC__ >= 6) && \ - !defined(__INTEL_COMPILER) && \ - !defined(CURL_DISABLE_DEPRECATION) && !defined(BUILDING_LIBCURL) -#define CURL_DEPRECATED(version, message) \ - __attribute__((deprecated("since " # version ". " message))) -#define CURL_IGNORE_DEPRECATION(statements) \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \ - statements \ - _Pragma("GCC diagnostic pop") -#else -#define CURL_DEPRECATED(version, message) -#define CURL_IGNORE_DEPRECATION(statements) statements -#endif - -#include "curlver.h" /* libcurl version defines */ -#include "system.h" /* determine things run-time */ - -/* - * Define CURL_WIN32 when build target is Win32 API - */ - -#if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && \ - !defined(__SYMBIAN32__) -#define CURL_WIN32 -#endif - -#include -#include - -#if (defined(__FreeBSD__) && (__FreeBSD__ >= 2)) || defined(__MidnightBSD__) -/* Needed for __FreeBSD_version or __MidnightBSD_version symbol definition */ -#include -#endif - -/* The include stuff here below is mainly for time_t! */ -#include -#include - -#if defined(CURL_WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__) -#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || \ - defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H)) -/* The check above prevents the winsock2 inclusion if winsock.h already was - included, since they can't co-exist without problems */ -#include -#include -#endif -#endif - -/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish - libc5-based Linux systems. Only include it on systems that are known to - require it! */ -#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ - defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ - defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \ - defined(__CYGWIN__) || defined(AMIGA) || defined(__NuttX__) || \ - (defined(__FreeBSD_version) && (__FreeBSD_version < 800000)) || \ - (defined(__MidnightBSD_version) && (__MidnightBSD_version < 100000)) || \ - defined(__sun__) || defined(__serenity__) -#include -#endif - -#if !defined(CURL_WIN32) && !defined(_WIN32_WCE) -#include -#endif - -#if !defined(CURL_WIN32) -#include -#endif - -/* Compatibility for non-Clang compilers */ -#ifndef __has_declspec_attribute -# define __has_declspec_attribute(x) 0 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) -typedef struct Curl_easy CURL; -typedef struct Curl_share CURLSH; -#else -typedef void CURL; -typedef void CURLSH; -#endif - -/* - * libcurl external API function linkage decorations. - */ - -#ifdef CURL_STATICLIB -# define CURL_EXTERN -#elif defined(CURL_WIN32) || defined(__SYMBIAN32__) || \ - (__has_declspec_attribute(dllexport) && \ - __has_declspec_attribute(dllimport)) -# if defined(BUILDING_LIBCURL) -# define CURL_EXTERN __declspec(dllexport) -# else -# define CURL_EXTERN __declspec(dllimport) -# endif -#elif defined(BUILDING_LIBCURL) && defined(CURL_HIDDEN_SYMBOLS) -# define CURL_EXTERN CURL_EXTERN_SYMBOL -#else -# define CURL_EXTERN -#endif - -#ifndef curl_socket_typedef -/* socket typedef */ -#if defined(CURL_WIN32) && !defined(__LWIP_OPT_H__) && !defined(LWIP_HDR_OPT_H) -typedef SOCKET curl_socket_t; -#define CURL_SOCKET_BAD INVALID_SOCKET -#else -typedef int curl_socket_t; -#define CURL_SOCKET_BAD -1 -#endif -#define curl_socket_typedef -#endif /* curl_socket_typedef */ - -/* enum for the different supported SSL backends */ -typedef enum { - CURLSSLBACKEND_NONE = 0, - CURLSSLBACKEND_OPENSSL = 1, - CURLSSLBACKEND_GNUTLS = 2, - CURLSSLBACKEND_NSS = 3, - CURLSSLBACKEND_OBSOLETE4 = 4, /* Was QSOSSL. */ - CURLSSLBACKEND_GSKIT = 5, - CURLSSLBACKEND_POLARSSL CURL_DEPRECATED(7.69.0, "") = 6, - CURLSSLBACKEND_WOLFSSL = 7, - CURLSSLBACKEND_SCHANNEL = 8, - CURLSSLBACKEND_SECURETRANSPORT = 9, - CURLSSLBACKEND_AXTLS CURL_DEPRECATED(7.61.0, "") = 10, - CURLSSLBACKEND_MBEDTLS = 11, - CURLSSLBACKEND_MESALINK CURL_DEPRECATED(7.82.0, "") = 12, - CURLSSLBACKEND_BEARSSL = 13, - CURLSSLBACKEND_RUSTLS = 14 -} curl_sslbackend; - -/* aliases for library clones and renames */ -#define CURLSSLBACKEND_LIBRESSL CURLSSLBACKEND_OPENSSL -#define CURLSSLBACKEND_BORINGSSL CURLSSLBACKEND_OPENSSL - -/* deprecated names: */ -#define CURLSSLBACKEND_CYASSL CURLSSLBACKEND_WOLFSSL -#define CURLSSLBACKEND_DARWINSSL CURLSSLBACKEND_SECURETRANSPORT - -struct curl_httppost { - struct curl_httppost *next; /* next entry in the list */ - char *name; /* pointer to allocated name */ - long namelength; /* length of name length */ - char *contents; /* pointer to allocated data contents */ - long contentslength; /* length of contents field, see also - CURL_HTTPPOST_LARGE */ - char *buffer; /* pointer to allocated buffer contents */ - long bufferlength; /* length of buffer field */ - char *contenttype; /* Content-Type */ - struct curl_slist *contentheader; /* list of extra headers for this form */ - struct curl_httppost *more; /* if one field name has more than one - file, this link should link to following - files */ - long flags; /* as defined below */ - -/* specified content is a file name */ -#define CURL_HTTPPOST_FILENAME (1<<0) -/* specified content is a file name */ -#define CURL_HTTPPOST_READFILE (1<<1) -/* name is only stored pointer do not free in formfree */ -#define CURL_HTTPPOST_PTRNAME (1<<2) -/* contents is only stored pointer do not free in formfree */ -#define CURL_HTTPPOST_PTRCONTENTS (1<<3) -/* upload file from buffer */ -#define CURL_HTTPPOST_BUFFER (1<<4) -/* upload file from pointer contents */ -#define CURL_HTTPPOST_PTRBUFFER (1<<5) -/* upload file contents by using the regular read callback to get the data and - pass the given pointer as custom pointer */ -#define CURL_HTTPPOST_CALLBACK (1<<6) -/* use size in 'contentlen', added in 7.46.0 */ -#define CURL_HTTPPOST_LARGE (1<<7) - - char *showfilename; /* The file name to show. If not set, the - actual file name will be used (if this - is a file part) */ - void *userp; /* custom pointer used for - HTTPPOST_CALLBACK posts */ - curl_off_t contentlen; /* alternative length of contents - field. Used if CURL_HTTPPOST_LARGE is - set. Added in 7.46.0 */ -}; - - -/* This is a return code for the progress callback that, when returned, will - signal libcurl to continue executing the default progress function */ -#define CURL_PROGRESSFUNC_CONTINUE 0x10000001 - -/* This is the CURLOPT_PROGRESSFUNCTION callback prototype. It is now - considered deprecated but was the only choice up until 7.31.0 */ -typedef int (*curl_progress_callback)(void *clientp, - double dltotal, - double dlnow, - double ultotal, - double ulnow); - -/* This is the CURLOPT_XFERINFOFUNCTION callback prototype. It was introduced - in 7.32.0, avoids the use of floating point numbers and provides more - detailed information. */ -typedef int (*curl_xferinfo_callback)(void *clientp, - curl_off_t dltotal, - curl_off_t dlnow, - curl_off_t ultotal, - curl_off_t ulnow); - -#ifndef CURL_MAX_READ_SIZE - /* The maximum receive buffer size configurable via CURLOPT_BUFFERSIZE. */ -#define CURL_MAX_READ_SIZE (10*1024*1024) -#endif - -#ifndef CURL_MAX_WRITE_SIZE - /* Tests have proven that 20K is a very bad buffer size for uploads on - Windows, while 16K for some odd reason performed a lot better. - We do the ifndef check to allow this value to easier be changed at build - time for those who feel adventurous. The practical minimum is about - 400 bytes since libcurl uses a buffer of this size as a scratch area - (unrelated to network send operations). */ -#define CURL_MAX_WRITE_SIZE 16384 -#endif - -#ifndef CURL_MAX_HTTP_HEADER -/* The only reason to have a max limit for this is to avoid the risk of a bad - server feeding libcurl with a never-ending header that will cause reallocs - infinitely */ -#define CURL_MAX_HTTP_HEADER (100*1024) -#endif - -/* This is a magic return code for the write callback that, when returned, - will signal libcurl to pause receiving on the current transfer. */ -#define CURL_WRITEFUNC_PAUSE 0x10000001 - -/* This is a magic return code for the write callback that, when returned, - will signal an error from the callback. */ -#define CURL_WRITEFUNC_ERROR 0xFFFFFFFF - -typedef size_t (*curl_write_callback)(char *buffer, - size_t size, - size_t nitems, - void *outstream); - -/* This callback will be called when a new resolver request is made */ -typedef int (*curl_resolver_start_callback)(void *resolver_state, - void *reserved, void *userdata); - -/* enumeration of file types */ -typedef enum { - CURLFILETYPE_FILE = 0, - CURLFILETYPE_DIRECTORY, - CURLFILETYPE_SYMLINK, - CURLFILETYPE_DEVICE_BLOCK, - CURLFILETYPE_DEVICE_CHAR, - CURLFILETYPE_NAMEDPIPE, - CURLFILETYPE_SOCKET, - CURLFILETYPE_DOOR, /* is possible only on Sun Solaris now */ - - CURLFILETYPE_UNKNOWN /* should never occur */ -} curlfiletype; - -#define CURLFINFOFLAG_KNOWN_FILENAME (1<<0) -#define CURLFINFOFLAG_KNOWN_FILETYPE (1<<1) -#define CURLFINFOFLAG_KNOWN_TIME (1<<2) -#define CURLFINFOFLAG_KNOWN_PERM (1<<3) -#define CURLFINFOFLAG_KNOWN_UID (1<<4) -#define CURLFINFOFLAG_KNOWN_GID (1<<5) -#define CURLFINFOFLAG_KNOWN_SIZE (1<<6) -#define CURLFINFOFLAG_KNOWN_HLINKCOUNT (1<<7) - -/* Information about a single file, used when doing FTP wildcard matching */ -struct curl_fileinfo { - char *filename; - curlfiletype filetype; - time_t time; /* always zero! */ - unsigned int perm; - int uid; - int gid; - curl_off_t size; - long int hardlinks; - - struct { - /* If some of these fields is not NULL, it is a pointer to b_data. */ - char *time; - char *perm; - char *user; - char *group; - char *target; /* pointer to the target filename of a symlink */ - } strings; - - unsigned int flags; - - /* used internally */ - char *b_data; - size_t b_size; - size_t b_used; -}; - -/* return codes for CURLOPT_CHUNK_BGN_FUNCTION */ -#define CURL_CHUNK_BGN_FUNC_OK 0 -#define CURL_CHUNK_BGN_FUNC_FAIL 1 /* tell the lib to end the task */ -#define CURL_CHUNK_BGN_FUNC_SKIP 2 /* skip this chunk over */ - -/* if splitting of data transfer is enabled, this callback is called before - download of an individual chunk started. Note that parameter "remains" works - only for FTP wildcard downloading (for now), otherwise is not used */ -typedef long (*curl_chunk_bgn_callback)(const void *transfer_info, - void *ptr, - int remains); - -/* return codes for CURLOPT_CHUNK_END_FUNCTION */ -#define CURL_CHUNK_END_FUNC_OK 0 -#define CURL_CHUNK_END_FUNC_FAIL 1 /* tell the lib to end the task */ - -/* If splitting of data transfer is enabled this callback is called after - download of an individual chunk finished. - Note! After this callback was set then it have to be called FOR ALL chunks. - Even if downloading of this chunk was skipped in CHUNK_BGN_FUNC. - This is the reason why we don't need "transfer_info" parameter in this - callback and we are not interested in "remains" parameter too. */ -typedef long (*curl_chunk_end_callback)(void *ptr); - -/* return codes for FNMATCHFUNCTION */ -#define CURL_FNMATCHFUNC_MATCH 0 /* string corresponds to the pattern */ -#define CURL_FNMATCHFUNC_NOMATCH 1 /* pattern doesn't match the string */ -#define CURL_FNMATCHFUNC_FAIL 2 /* an error occurred */ - -/* callback type for wildcard downloading pattern matching. If the - string matches the pattern, return CURL_FNMATCHFUNC_MATCH value, etc. */ -typedef int (*curl_fnmatch_callback)(void *ptr, - const char *pattern, - const char *string); - -/* These are the return codes for the seek callbacks */ -#define CURL_SEEKFUNC_OK 0 -#define CURL_SEEKFUNC_FAIL 1 /* fail the entire transfer */ -#define CURL_SEEKFUNC_CANTSEEK 2 /* tell libcurl seeking can't be done, so - libcurl might try other means instead */ -typedef int (*curl_seek_callback)(void *instream, - curl_off_t offset, - int origin); /* 'whence' */ - -/* This is a return code for the read callback that, when returned, will - signal libcurl to immediately abort the current transfer. */ -#define CURL_READFUNC_ABORT 0x10000000 -/* This is a return code for the read callback that, when returned, will - signal libcurl to pause sending data on the current transfer. */ -#define CURL_READFUNC_PAUSE 0x10000001 - -/* Return code for when the trailing headers' callback has terminated - without any errors */ -#define CURL_TRAILERFUNC_OK 0 -/* Return code for when was an error in the trailing header's list and we - want to abort the request */ -#define CURL_TRAILERFUNC_ABORT 1 - -typedef size_t (*curl_read_callback)(char *buffer, - size_t size, - size_t nitems, - void *instream); - -typedef int (*curl_trailer_callback)(struct curl_slist **list, - void *userdata); - -typedef enum { - CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */ - CURLSOCKTYPE_ACCEPT, /* socket created by accept() call */ - CURLSOCKTYPE_LAST /* never use */ -} curlsocktype; - -/* The return code from the sockopt_callback can signal information back - to libcurl: */ -#define CURL_SOCKOPT_OK 0 -#define CURL_SOCKOPT_ERROR 1 /* causes libcurl to abort and return - CURLE_ABORTED_BY_CALLBACK */ -#define CURL_SOCKOPT_ALREADY_CONNECTED 2 - -typedef int (*curl_sockopt_callback)(void *clientp, - curl_socket_t curlfd, - curlsocktype purpose); - -struct curl_sockaddr { - int family; - int socktype; - int protocol; - unsigned int addrlen; /* addrlen was a socklen_t type before 7.18.0 but it - turned really ugly and painful on the systems that - lack this type */ - struct sockaddr addr; -}; - -typedef curl_socket_t -(*curl_opensocket_callback)(void *clientp, - curlsocktype purpose, - struct curl_sockaddr *address); - -typedef int -(*curl_closesocket_callback)(void *clientp, curl_socket_t item); - -typedef enum { - CURLIOE_OK, /* I/O operation successful */ - CURLIOE_UNKNOWNCMD, /* command was unknown to callback */ - CURLIOE_FAILRESTART, /* failed to restart the read */ - CURLIOE_LAST /* never use */ -} curlioerr; - -typedef enum { - CURLIOCMD_NOP, /* no operation */ - CURLIOCMD_RESTARTREAD, /* restart the read stream from start */ - CURLIOCMD_LAST /* never use */ -} curliocmd; - -typedef curlioerr (*curl_ioctl_callback)(CURL *handle, - int cmd, - void *clientp); - -#ifndef CURL_DID_MEMORY_FUNC_TYPEDEFS -/* - * The following typedef's are signatures of malloc, free, realloc, strdup and - * calloc respectively. Function pointers of these types can be passed to the - * curl_global_init_mem() function to set user defined memory management - * callback routines. - */ -typedef void *(*curl_malloc_callback)(size_t size); -typedef void (*curl_free_callback)(void *ptr); -typedef void *(*curl_realloc_callback)(void *ptr, size_t size); -typedef char *(*curl_strdup_callback)(const char *str); -typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size); - -#define CURL_DID_MEMORY_FUNC_TYPEDEFS -#endif - -/* the kind of data that is passed to information_callback */ -typedef enum { - CURLINFO_TEXT = 0, - CURLINFO_HEADER_IN, /* 1 */ - CURLINFO_HEADER_OUT, /* 2 */ - CURLINFO_DATA_IN, /* 3 */ - CURLINFO_DATA_OUT, /* 4 */ - CURLINFO_SSL_DATA_IN, /* 5 */ - CURLINFO_SSL_DATA_OUT, /* 6 */ - CURLINFO_END -} curl_infotype; - -typedef int (*curl_debug_callback) - (CURL *handle, /* the handle/transfer this concerns */ - curl_infotype type, /* what kind of data */ - char *data, /* points to the data */ - size_t size, /* size of the data pointed to */ - void *userptr); /* whatever the user please */ - -/* This is the CURLOPT_PREREQFUNCTION callback prototype. */ -typedef int (*curl_prereq_callback)(void *clientp, - char *conn_primary_ip, - char *conn_local_ip, - int conn_primary_port, - int conn_local_port); - -/* Return code for when the pre-request callback has terminated without - any errors */ -#define CURL_PREREQFUNC_OK 0 -/* Return code for when the pre-request callback wants to abort the - request */ -#define CURL_PREREQFUNC_ABORT 1 - -/* All possible error codes from all sorts of curl functions. Future versions - may return other values, stay prepared. - - Always add new return codes last. Never *EVER* remove any. The return - codes must remain the same! - */ - -typedef enum { - CURLE_OK = 0, - CURLE_UNSUPPORTED_PROTOCOL, /* 1 */ - CURLE_FAILED_INIT, /* 2 */ - CURLE_URL_MALFORMAT, /* 3 */ - CURLE_NOT_BUILT_IN, /* 4 - [was obsoleted in August 2007 for - 7.17.0, reused in April 2011 for 7.21.5] */ - CURLE_COULDNT_RESOLVE_PROXY, /* 5 */ - CURLE_COULDNT_RESOLVE_HOST, /* 6 */ - CURLE_COULDNT_CONNECT, /* 7 */ - CURLE_WEIRD_SERVER_REPLY, /* 8 */ - CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server - due to lack of access - when login fails - this is not returned. */ - CURLE_FTP_ACCEPT_FAILED, /* 10 - [was obsoleted in April 2006 for - 7.15.4, reused in Dec 2011 for 7.24.0]*/ - CURLE_FTP_WEIRD_PASS_REPLY, /* 11 */ - CURLE_FTP_ACCEPT_TIMEOUT, /* 12 - timeout occurred accepting server - [was obsoleted in August 2007 for 7.17.0, - reused in Dec 2011 for 7.24.0]*/ - CURLE_FTP_WEIRD_PASV_REPLY, /* 13 */ - CURLE_FTP_WEIRD_227_FORMAT, /* 14 */ - CURLE_FTP_CANT_GET_HOST, /* 15 */ - CURLE_HTTP2, /* 16 - A problem in the http2 framing layer. - [was obsoleted in August 2007 for 7.17.0, - reused in July 2014 for 7.38.0] */ - CURLE_FTP_COULDNT_SET_TYPE, /* 17 */ - CURLE_PARTIAL_FILE, /* 18 */ - CURLE_FTP_COULDNT_RETR_FILE, /* 19 */ - CURLE_OBSOLETE20, /* 20 - NOT USED */ - CURLE_QUOTE_ERROR, /* 21 - quote command failure */ - CURLE_HTTP_RETURNED_ERROR, /* 22 */ - CURLE_WRITE_ERROR, /* 23 */ - CURLE_OBSOLETE24, /* 24 - NOT USED */ - CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */ - CURLE_READ_ERROR, /* 26 - couldn't open/read from file */ - CURLE_OUT_OF_MEMORY, /* 27 */ - CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was reached */ - CURLE_OBSOLETE29, /* 29 - NOT USED */ - CURLE_FTP_PORT_FAILED, /* 30 - FTP PORT operation failed */ - CURLE_FTP_COULDNT_USE_REST, /* 31 - the REST command failed */ - CURLE_OBSOLETE32, /* 32 - NOT USED */ - CURLE_RANGE_ERROR, /* 33 - RANGE "command" didn't work */ - CURLE_HTTP_POST_ERROR, /* 34 */ - CURLE_SSL_CONNECT_ERROR, /* 35 - wrong when connecting with SSL */ - CURLE_BAD_DOWNLOAD_RESUME, /* 36 - couldn't resume download */ - CURLE_FILE_COULDNT_READ_FILE, /* 37 */ - CURLE_LDAP_CANNOT_BIND, /* 38 */ - CURLE_LDAP_SEARCH_FAILED, /* 39 */ - CURLE_OBSOLETE40, /* 40 - NOT USED */ - CURLE_FUNCTION_NOT_FOUND, /* 41 - NOT USED starting with 7.53.0 */ - CURLE_ABORTED_BY_CALLBACK, /* 42 */ - CURLE_BAD_FUNCTION_ARGUMENT, /* 43 */ - CURLE_OBSOLETE44, /* 44 - NOT USED */ - CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */ - CURLE_OBSOLETE46, /* 46 - NOT USED */ - CURLE_TOO_MANY_REDIRECTS, /* 47 - catch endless re-direct loops */ - CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */ - CURLE_SETOPT_OPTION_SYNTAX, /* 49 - Malformed setopt option */ - CURLE_OBSOLETE50, /* 50 - NOT USED */ - CURLE_OBSOLETE51, /* 51 - NOT USED */ - CURLE_GOT_NOTHING, /* 52 - when this is a specific error */ - CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */ - CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as - default */ - CURLE_SEND_ERROR, /* 55 - failed sending network data */ - CURLE_RECV_ERROR, /* 56 - failure in receiving network data */ - CURLE_OBSOLETE57, /* 57 - NOT IN USE */ - CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */ - CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */ - CURLE_PEER_FAILED_VERIFICATION, /* 60 - peer's certificate or fingerprint - wasn't verified fine */ - CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized/bad encoding */ - CURLE_OBSOLETE62, /* 62 - NOT IN USE since 7.82.0 */ - CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */ - CURLE_USE_SSL_FAILED, /* 64 - Requested FTP SSL level failed */ - CURLE_SEND_FAIL_REWIND, /* 65 - Sending the data requires a rewind - that failed */ - CURLE_SSL_ENGINE_INITFAILED, /* 66 - failed to initialise ENGINE */ - CURLE_LOGIN_DENIED, /* 67 - user, password or similar was not - accepted and we failed to login */ - CURLE_TFTP_NOTFOUND, /* 68 - file not found on server */ - CURLE_TFTP_PERM, /* 69 - permission problem on server */ - CURLE_REMOTE_DISK_FULL, /* 70 - out of disk space on server */ - CURLE_TFTP_ILLEGAL, /* 71 - Illegal TFTP operation */ - CURLE_TFTP_UNKNOWNID, /* 72 - Unknown transfer ID */ - CURLE_REMOTE_FILE_EXISTS, /* 73 - File already exists */ - CURLE_TFTP_NOSUCHUSER, /* 74 - No such user */ - CURLE_OBSOLETE75, /* 75 - NOT IN USE since 7.82.0 */ - CURLE_OBSOLETE76, /* 76 - NOT IN USE since 7.82.0 */ - CURLE_SSL_CACERT_BADFILE, /* 77 - could not load CACERT file, missing - or wrong format */ - CURLE_REMOTE_FILE_NOT_FOUND, /* 78 - remote file not found */ - CURLE_SSH, /* 79 - error from the SSH layer, somewhat - generic so the error message will be of - interest when this has happened */ - - CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL - connection */ - CURLE_AGAIN, /* 81 - socket is not ready for send/recv, - wait till it's ready and try again (Added - in 7.18.2) */ - CURLE_SSL_CRL_BADFILE, /* 82 - could not load CRL file, missing or - wrong format (Added in 7.19.0) */ - CURLE_SSL_ISSUER_ERROR, /* 83 - Issuer check failed. (Added in - 7.19.0) */ - CURLE_FTP_PRET_FAILED, /* 84 - a PRET command failed */ - CURLE_RTSP_CSEQ_ERROR, /* 85 - mismatch of RTSP CSeq numbers */ - CURLE_RTSP_SESSION_ERROR, /* 86 - mismatch of RTSP Session Ids */ - CURLE_FTP_BAD_FILE_LIST, /* 87 - unable to parse FTP file list */ - CURLE_CHUNK_FAILED, /* 88 - chunk callback reported error */ - CURLE_NO_CONNECTION_AVAILABLE, /* 89 - No connection available, the - session will be queued */ - CURLE_SSL_PINNEDPUBKEYNOTMATCH, /* 90 - specified pinned public key did not - match */ - CURLE_SSL_INVALIDCERTSTATUS, /* 91 - invalid certificate status */ - CURLE_HTTP2_STREAM, /* 92 - stream error in HTTP/2 framing layer - */ - CURLE_RECURSIVE_API_CALL, /* 93 - an api function was called from - inside a callback */ - CURLE_AUTH_ERROR, /* 94 - an authentication function returned an - error */ - CURLE_HTTP3, /* 95 - An HTTP/3 layer problem */ - CURLE_QUIC_CONNECT_ERROR, /* 96 - QUIC connection error */ - CURLE_PROXY, /* 97 - proxy handshake error */ - CURLE_SSL_CLIENTCERT, /* 98 - client-side certificate required */ - CURLE_UNRECOVERABLE_POLL, /* 99 - poll/select returned fatal error */ - CURL_LAST /* never use! */ -} CURLcode; - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Previously obsolete error code re-used in 7.38.0 */ -#define CURLE_OBSOLETE16 CURLE_HTTP2 - -/* Previously obsolete error codes re-used in 7.24.0 */ -#define CURLE_OBSOLETE10 CURLE_FTP_ACCEPT_FAILED -#define CURLE_OBSOLETE12 CURLE_FTP_ACCEPT_TIMEOUT - -/* compatibility with older names */ -#define CURLOPT_ENCODING CURLOPT_ACCEPT_ENCODING -#define CURLE_FTP_WEIRD_SERVER_REPLY CURLE_WEIRD_SERVER_REPLY - -/* The following were added in 7.62.0 */ -#define CURLE_SSL_CACERT CURLE_PEER_FAILED_VERIFICATION - -/* The following were added in 7.21.5, April 2011 */ -#define CURLE_UNKNOWN_TELNET_OPTION CURLE_UNKNOWN_OPTION - -/* Added for 7.78.0 */ -#define CURLE_TELNET_OPTION_SYNTAX CURLE_SETOPT_OPTION_SYNTAX - -/* The following were added in 7.17.1 */ -/* These are scheduled to disappear by 2009 */ -#define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION - -/* The following were added in 7.17.0 */ -/* These are scheduled to disappear by 2009 */ -#define CURLE_OBSOLETE CURLE_OBSOLETE50 /* no one should be using this! */ -#define CURLE_BAD_PASSWORD_ENTERED CURLE_OBSOLETE46 -#define CURLE_BAD_CALLING_ORDER CURLE_OBSOLETE44 -#define CURLE_FTP_USER_PASSWORD_INCORRECT CURLE_OBSOLETE10 -#define CURLE_FTP_CANT_RECONNECT CURLE_OBSOLETE16 -#define CURLE_FTP_COULDNT_GET_SIZE CURLE_OBSOLETE32 -#define CURLE_FTP_COULDNT_SET_ASCII CURLE_OBSOLETE29 -#define CURLE_FTP_WEIRD_USER_REPLY CURLE_OBSOLETE12 -#define CURLE_FTP_WRITE_ERROR CURLE_OBSOLETE20 -#define CURLE_LIBRARY_NOT_FOUND CURLE_OBSOLETE40 -#define CURLE_MALFORMAT_USER CURLE_OBSOLETE24 -#define CURLE_SHARE_IN_USE CURLE_OBSOLETE57 -#define CURLE_URL_MALFORMAT_USER CURLE_NOT_BUILT_IN - -#define CURLE_FTP_ACCESS_DENIED CURLE_REMOTE_ACCESS_DENIED -#define CURLE_FTP_COULDNT_SET_BINARY CURLE_FTP_COULDNT_SET_TYPE -#define CURLE_FTP_QUOTE_ERROR CURLE_QUOTE_ERROR -#define CURLE_TFTP_DISKFULL CURLE_REMOTE_DISK_FULL -#define CURLE_TFTP_EXISTS CURLE_REMOTE_FILE_EXISTS -#define CURLE_HTTP_RANGE_ERROR CURLE_RANGE_ERROR -#define CURLE_FTP_SSL_FAILED CURLE_USE_SSL_FAILED - -/* The following were added earlier */ - -#define CURLE_OPERATION_TIMEOUTED CURLE_OPERATION_TIMEDOUT -#define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR -#define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED -#define CURLE_FTP_COULDNT_STOR_FILE CURLE_UPLOAD_FAILED -#define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE -#define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME -#define CURLE_LDAP_INVALID_URL CURLE_OBSOLETE62 -#define CURLE_CONV_REQD CURLE_OBSOLETE76 -#define CURLE_CONV_FAILED CURLE_OBSOLETE75 - -/* This was the error code 50 in 7.7.3 and a few earlier versions, this - is no longer used by libcurl but is instead #defined here only to not - make programs break */ -#define CURLE_ALREADY_COMPLETE 99999 - -/* Provide defines for really old option names */ -#define CURLOPT_FILE CURLOPT_WRITEDATA /* name changed in 7.9.7 */ -#define CURLOPT_INFILE CURLOPT_READDATA /* name changed in 7.9.7 */ -#define CURLOPT_WRITEHEADER CURLOPT_HEADERDATA - -/* Since long deprecated options with no code in the lib that does anything - with them. */ -#define CURLOPT_WRITEINFO CURLOPT_OBSOLETE40 -#define CURLOPT_CLOSEPOLICY CURLOPT_OBSOLETE72 - -#endif /* !CURL_NO_OLDIES */ - -/* - * Proxy error codes. Returned in CURLINFO_PROXY_ERROR if CURLE_PROXY was - * return for the transfers. - */ -typedef enum { - CURLPX_OK, - CURLPX_BAD_ADDRESS_TYPE, - CURLPX_BAD_VERSION, - CURLPX_CLOSED, - CURLPX_GSSAPI, - CURLPX_GSSAPI_PERMSG, - CURLPX_GSSAPI_PROTECTION, - CURLPX_IDENTD, - CURLPX_IDENTD_DIFFER, - CURLPX_LONG_HOSTNAME, - CURLPX_LONG_PASSWD, - CURLPX_LONG_USER, - CURLPX_NO_AUTH, - CURLPX_RECV_ADDRESS, - CURLPX_RECV_AUTH, - CURLPX_RECV_CONNECT, - CURLPX_RECV_REQACK, - CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED, - CURLPX_REPLY_COMMAND_NOT_SUPPORTED, - CURLPX_REPLY_CONNECTION_REFUSED, - CURLPX_REPLY_GENERAL_SERVER_FAILURE, - CURLPX_REPLY_HOST_UNREACHABLE, - CURLPX_REPLY_NETWORK_UNREACHABLE, - CURLPX_REPLY_NOT_ALLOWED, - CURLPX_REPLY_TTL_EXPIRED, - CURLPX_REPLY_UNASSIGNED, - CURLPX_REQUEST_FAILED, - CURLPX_RESOLVE_HOST, - CURLPX_SEND_AUTH, - CURLPX_SEND_CONNECT, - CURLPX_SEND_REQUEST, - CURLPX_UNKNOWN_FAIL, - CURLPX_UNKNOWN_MODE, - CURLPX_USER_REJECTED, - CURLPX_LAST /* never use */ -} CURLproxycode; - -/* This prototype applies to all conversion callbacks */ -typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length); - -typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */ - void *ssl_ctx, /* actually an OpenSSL - or WolfSSL SSL_CTX, - or an mbedTLS - mbedtls_ssl_config */ - void *userptr); - -typedef enum { - CURLPROXY_HTTP = 0, /* added in 7.10, new in 7.19.4 default is to use - CONNECT HTTP/1.1 */ - CURLPROXY_HTTP_1_0 = 1, /* added in 7.19.4, force to use CONNECT - HTTP/1.0 */ - CURLPROXY_HTTPS = 2, /* added in 7.52.0 */ - CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already - in 7.10 */ - CURLPROXY_SOCKS5 = 5, /* added in 7.10 */ - CURLPROXY_SOCKS4A = 6, /* added in 7.18.0 */ - CURLPROXY_SOCKS5_HOSTNAME = 7 /* Use the SOCKS5 protocol but pass along the - host name rather than the IP address. added - in 7.18.0 */ -} curl_proxytype; /* this enum was added in 7.10 */ - -/* - * Bitmasks for CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH options: - * - * CURLAUTH_NONE - No HTTP authentication - * CURLAUTH_BASIC - HTTP Basic authentication (default) - * CURLAUTH_DIGEST - HTTP Digest authentication - * CURLAUTH_NEGOTIATE - HTTP Negotiate (SPNEGO) authentication - * CURLAUTH_GSSNEGOTIATE - Alias for CURLAUTH_NEGOTIATE (deprecated) - * CURLAUTH_NTLM - HTTP NTLM authentication - * CURLAUTH_DIGEST_IE - HTTP Digest authentication with IE flavour - * CURLAUTH_NTLM_WB - HTTP NTLM authentication delegated to winbind helper - * CURLAUTH_BEARER - HTTP Bearer token authentication - * CURLAUTH_ONLY - Use together with a single other type to force no - * authentication or just that single type - * CURLAUTH_ANY - All fine types set - * CURLAUTH_ANYSAFE - All fine types except Basic - */ - -#define CURLAUTH_NONE ((unsigned long)0) -#define CURLAUTH_BASIC (((unsigned long)1)<<0) -#define CURLAUTH_DIGEST (((unsigned long)1)<<1) -#define CURLAUTH_NEGOTIATE (((unsigned long)1)<<2) -/* Deprecated since the advent of CURLAUTH_NEGOTIATE */ -#define CURLAUTH_GSSNEGOTIATE CURLAUTH_NEGOTIATE -/* Used for CURLOPT_SOCKS5_AUTH to stay terminologically correct */ -#define CURLAUTH_GSSAPI CURLAUTH_NEGOTIATE -#define CURLAUTH_NTLM (((unsigned long)1)<<3) -#define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4) -#define CURLAUTH_NTLM_WB (((unsigned long)1)<<5) -#define CURLAUTH_BEARER (((unsigned long)1)<<6) -#define CURLAUTH_AWS_SIGV4 (((unsigned long)1)<<7) -#define CURLAUTH_ONLY (((unsigned long)1)<<31) -#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) -#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) - -#define CURLSSH_AUTH_ANY ~0 /* all types supported by the server */ -#define CURLSSH_AUTH_NONE 0 /* none allowed, silly but complete */ -#define CURLSSH_AUTH_PUBLICKEY (1<<0) /* public/private key files */ -#define CURLSSH_AUTH_PASSWORD (1<<1) /* password */ -#define CURLSSH_AUTH_HOST (1<<2) /* host key files */ -#define CURLSSH_AUTH_KEYBOARD (1<<3) /* keyboard interactive */ -#define CURLSSH_AUTH_AGENT (1<<4) /* agent (ssh-agent, pageant...) */ -#define CURLSSH_AUTH_GSSAPI (1<<5) /* gssapi (kerberos, ...) */ -#define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY - -#define CURLGSSAPI_DELEGATION_NONE 0 /* no delegation (default) */ -#define CURLGSSAPI_DELEGATION_POLICY_FLAG (1<<0) /* if permitted by policy */ -#define CURLGSSAPI_DELEGATION_FLAG (1<<1) /* delegate always */ - -#define CURL_ERROR_SIZE 256 - -enum curl_khtype { - CURLKHTYPE_UNKNOWN, - CURLKHTYPE_RSA1, - CURLKHTYPE_RSA, - CURLKHTYPE_DSS, - CURLKHTYPE_ECDSA, - CURLKHTYPE_ED25519 -}; - -struct curl_khkey { - const char *key; /* points to a null-terminated string encoded with base64 - if len is zero, otherwise to the "raw" data */ - size_t len; - enum curl_khtype keytype; -}; - -/* this is the set of return values expected from the curl_sshkeycallback - callback */ -enum curl_khstat { - CURLKHSTAT_FINE_ADD_TO_FILE, - CURLKHSTAT_FINE, - CURLKHSTAT_REJECT, /* reject the connection, return an error */ - CURLKHSTAT_DEFER, /* do not accept it, but we can't answer right now. - Causes a CURLE_PEER_FAILED_VERIFICATION error but the - connection will be left intact etc */ - CURLKHSTAT_FINE_REPLACE, /* accept and replace the wrong key */ - CURLKHSTAT_LAST /* not for use, only a marker for last-in-list */ -}; - -/* this is the set of status codes pass in to the callback */ -enum curl_khmatch { - CURLKHMATCH_OK, /* match */ - CURLKHMATCH_MISMATCH, /* host found, key mismatch! */ - CURLKHMATCH_MISSING, /* no matching host/key found */ - CURLKHMATCH_LAST /* not for use, only a marker for last-in-list */ -}; - -typedef int - (*curl_sshkeycallback) (CURL *easy, /* easy handle */ - const struct curl_khkey *knownkey, /* known */ - const struct curl_khkey *foundkey, /* found */ - enum curl_khmatch, /* libcurl's view on the keys */ - void *clientp); /* custom pointer passed with */ - /* CURLOPT_SSH_KEYDATA */ - -typedef int - (*curl_sshhostkeycallback) (void *clientp,/* custom pointer passed */ - /* with CURLOPT_SSH_HOSTKEYDATA */ - int keytype, /* CURLKHTYPE */ - const char *key, /* hostkey to check */ - size_t keylen); /* length of the key */ - /* return CURLE_OK to accept */ - /* or something else to refuse */ - - -/* parameter for the CURLOPT_USE_SSL option */ -typedef enum { - CURLUSESSL_NONE, /* do not attempt to use SSL */ - CURLUSESSL_TRY, /* try using SSL, proceed anyway otherwise */ - CURLUSESSL_CONTROL, /* SSL for the control connection or fail */ - CURLUSESSL_ALL, /* SSL for all communication or fail */ - CURLUSESSL_LAST /* not an option, never use */ -} curl_usessl; - -/* Definition of bits for the CURLOPT_SSL_OPTIONS argument: */ - -/* - ALLOW_BEAST tells libcurl to allow the BEAST SSL vulnerability in the - name of improving interoperability with older servers. Some SSL libraries - have introduced work-arounds for this flaw but those work-arounds sometimes - make the SSL communication fail. To regain functionality with those broken - servers, a user can this way allow the vulnerability back. */ -#define CURLSSLOPT_ALLOW_BEAST (1<<0) - -/* - NO_REVOKE tells libcurl to disable certificate revocation checks for those - SSL backends where such behavior is present. */ -#define CURLSSLOPT_NO_REVOKE (1<<1) - -/* - NO_PARTIALCHAIN tells libcurl to *NOT* accept a partial certificate chain - if possible. The OpenSSL backend has this ability. */ -#define CURLSSLOPT_NO_PARTIALCHAIN (1<<2) - -/* - REVOKE_BEST_EFFORT tells libcurl to ignore certificate revocation offline - checks and ignore missing revocation list for those SSL backends where such - behavior is present. */ -#define CURLSSLOPT_REVOKE_BEST_EFFORT (1<<3) - -/* - CURLSSLOPT_NATIVE_CA tells libcurl to use standard certificate store of - operating system. Currently implemented under MS-Windows. */ -#define CURLSSLOPT_NATIVE_CA (1<<4) - -/* - CURLSSLOPT_AUTO_CLIENT_CERT tells libcurl to automatically locate and use - a client certificate for authentication. (Schannel) */ -#define CURLSSLOPT_AUTO_CLIENT_CERT (1<<5) - -/* The default connection attempt delay in milliseconds for happy eyeballs. - CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 and happy-eyeballs-timeout-ms.d document - this value, keep them in sync. */ -#define CURL_HET_DEFAULT 200L - -/* The default connection upkeep interval in milliseconds. */ -#define CURL_UPKEEP_INTERVAL_DEFAULT 60000L - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Backwards compatibility with older names */ -/* These are scheduled to disappear by 2009 */ - -#define CURLFTPSSL_NONE CURLUSESSL_NONE -#define CURLFTPSSL_TRY CURLUSESSL_TRY -#define CURLFTPSSL_CONTROL CURLUSESSL_CONTROL -#define CURLFTPSSL_ALL CURLUSESSL_ALL -#define CURLFTPSSL_LAST CURLUSESSL_LAST -#define curl_ftpssl curl_usessl -#endif /* !CURL_NO_OLDIES */ - -/* parameter for the CURLOPT_FTP_SSL_CCC option */ -typedef enum { - CURLFTPSSL_CCC_NONE, /* do not send CCC */ - CURLFTPSSL_CCC_PASSIVE, /* Let the server initiate the shutdown */ - CURLFTPSSL_CCC_ACTIVE, /* Initiate the shutdown */ - CURLFTPSSL_CCC_LAST /* not an option, never use */ -} curl_ftpccc; - -/* parameter for the CURLOPT_FTPSSLAUTH option */ -typedef enum { - CURLFTPAUTH_DEFAULT, /* let libcurl decide */ - CURLFTPAUTH_SSL, /* use "AUTH SSL" */ - CURLFTPAUTH_TLS, /* use "AUTH TLS" */ - CURLFTPAUTH_LAST /* not an option, never use */ -} curl_ftpauth; - -/* parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */ -typedef enum { - CURLFTP_CREATE_DIR_NONE, /* do NOT create missing dirs! */ - CURLFTP_CREATE_DIR, /* (FTP/SFTP) if CWD fails, try MKD and then CWD - again if MKD succeeded, for SFTP this does - similar magic */ - CURLFTP_CREATE_DIR_RETRY, /* (FTP only) if CWD fails, try MKD and then CWD - again even if MKD failed! */ - CURLFTP_CREATE_DIR_LAST /* not an option, never use */ -} curl_ftpcreatedir; - -/* parameter for the CURLOPT_FTP_FILEMETHOD option */ -typedef enum { - CURLFTPMETHOD_DEFAULT, /* let libcurl pick */ - CURLFTPMETHOD_MULTICWD, /* single CWD operation for each path part */ - CURLFTPMETHOD_NOCWD, /* no CWD at all */ - CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */ - CURLFTPMETHOD_LAST /* not an option, never use */ -} curl_ftpmethod; - -/* bitmask defines for CURLOPT_HEADEROPT */ -#define CURLHEADER_UNIFIED 0 -#define CURLHEADER_SEPARATE (1<<0) - -/* CURLALTSVC_* are bits for the CURLOPT_ALTSVC_CTRL option */ -#define CURLALTSVC_READONLYFILE (1<<2) -#define CURLALTSVC_H1 (1<<3) -#define CURLALTSVC_H2 (1<<4) -#define CURLALTSVC_H3 (1<<5) - - -struct curl_hstsentry { - char *name; - size_t namelen; - unsigned int includeSubDomains:1; - char expire[18]; /* YYYYMMDD HH:MM:SS [null-terminated] */ -}; - -struct curl_index { - size_t index; /* the provided entry's "index" or count */ - size_t total; /* total number of entries to save */ -}; - -typedef enum { - CURLSTS_OK, - CURLSTS_DONE, - CURLSTS_FAIL -} CURLSTScode; - -typedef CURLSTScode (*curl_hstsread_callback)(CURL *easy, - struct curl_hstsentry *e, - void *userp); -typedef CURLSTScode (*curl_hstswrite_callback)(CURL *easy, - struct curl_hstsentry *e, - struct curl_index *i, - void *userp); - -/* CURLHSTS_* are bits for the CURLOPT_HSTS option */ -#define CURLHSTS_ENABLE (long)(1<<0) -#define CURLHSTS_READONLYFILE (long)(1<<1) - -/* The CURLPROTO_ defines below are for the **deprecated** CURLOPT_*PROTOCOLS - options. Do not use. */ -#define CURLPROTO_HTTP (1<<0) -#define CURLPROTO_HTTPS (1<<1) -#define CURLPROTO_FTP (1<<2) -#define CURLPROTO_FTPS (1<<3) -#define CURLPROTO_SCP (1<<4) -#define CURLPROTO_SFTP (1<<5) -#define CURLPROTO_TELNET (1<<6) -#define CURLPROTO_LDAP (1<<7) -#define CURLPROTO_LDAPS (1<<8) -#define CURLPROTO_DICT (1<<9) -#define CURLPROTO_FILE (1<<10) -#define CURLPROTO_TFTP (1<<11) -#define CURLPROTO_IMAP (1<<12) -#define CURLPROTO_IMAPS (1<<13) -#define CURLPROTO_POP3 (1<<14) -#define CURLPROTO_POP3S (1<<15) -#define CURLPROTO_SMTP (1<<16) -#define CURLPROTO_SMTPS (1<<17) -#define CURLPROTO_RTSP (1<<18) -#define CURLPROTO_RTMP (1<<19) -#define CURLPROTO_RTMPT (1<<20) -#define CURLPROTO_RTMPE (1<<21) -#define CURLPROTO_RTMPTE (1<<22) -#define CURLPROTO_RTMPS (1<<23) -#define CURLPROTO_RTMPTS (1<<24) -#define CURLPROTO_GOPHER (1<<25) -#define CURLPROTO_SMB (1<<26) -#define CURLPROTO_SMBS (1<<27) -#define CURLPROTO_MQTT (1<<28) -#define CURLPROTO_GOPHERS (1<<29) -#define CURLPROTO_ALL (~0) /* enable everything */ - -/* long may be 32 or 64 bits, but we should never depend on anything else - but 32 */ -#define CURLOPTTYPE_LONG 0 -#define CURLOPTTYPE_OBJECTPOINT 10000 -#define CURLOPTTYPE_FUNCTIONPOINT 20000 -#define CURLOPTTYPE_OFF_T 30000 -#define CURLOPTTYPE_BLOB 40000 - -/* *STRINGPOINT is an alias for OBJECTPOINT to allow tools to extract the - string options from the header file */ - - -#define CURLOPT(na,t,nu) na = t + nu -#define CURLOPTDEPRECATED(na,t,nu,v,m) na CURL_DEPRECATED(v,m) = t + nu - -/* CURLOPT aliases that make no run-time difference */ - -/* 'char *' argument to a string with a trailing zero */ -#define CURLOPTTYPE_STRINGPOINT CURLOPTTYPE_OBJECTPOINT - -/* 'struct curl_slist *' argument */ -#define CURLOPTTYPE_SLISTPOINT CURLOPTTYPE_OBJECTPOINT - -/* 'void *' argument passed untouched to callback */ -#define CURLOPTTYPE_CBPOINT CURLOPTTYPE_OBJECTPOINT - -/* 'long' argument with a set of values/bitmask */ -#define CURLOPTTYPE_VALUES CURLOPTTYPE_LONG - -/* - * All CURLOPT_* values. - */ - -typedef enum { - /* This is the FILE * or void * the regular output should be written to. */ - CURLOPT(CURLOPT_WRITEDATA, CURLOPTTYPE_CBPOINT, 1), - - /* The full URL to get/put */ - CURLOPT(CURLOPT_URL, CURLOPTTYPE_STRINGPOINT, 2), - - /* Port number to connect to, if other than default. */ - CURLOPT(CURLOPT_PORT, CURLOPTTYPE_LONG, 3), - - /* Name of proxy to use. */ - CURLOPT(CURLOPT_PROXY, CURLOPTTYPE_STRINGPOINT, 4), - - /* "user:password;options" to use when fetching. */ - CURLOPT(CURLOPT_USERPWD, CURLOPTTYPE_STRINGPOINT, 5), - - /* "user:password" to use with proxy. */ - CURLOPT(CURLOPT_PROXYUSERPWD, CURLOPTTYPE_STRINGPOINT, 6), - - /* Range to get, specified as an ASCII string. */ - CURLOPT(CURLOPT_RANGE, CURLOPTTYPE_STRINGPOINT, 7), - - /* not used */ - - /* Specified file stream to upload from (use as input): */ - CURLOPT(CURLOPT_READDATA, CURLOPTTYPE_CBPOINT, 9), - - /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE - * bytes big. */ - CURLOPT(CURLOPT_ERRORBUFFER, CURLOPTTYPE_OBJECTPOINT, 10), - - /* Function that will be called to store the output (instead of fwrite). The - * parameters will use fwrite() syntax, make sure to follow them. */ - CURLOPT(CURLOPT_WRITEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 11), - - /* Function that will be called to read the input (instead of fread). The - * parameters will use fread() syntax, make sure to follow them. */ - CURLOPT(CURLOPT_READFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 12), - - /* Time-out the read operation after this amount of seconds */ - CURLOPT(CURLOPT_TIMEOUT, CURLOPTTYPE_LONG, 13), - - /* If CURLOPT_READDATA is used, this can be used to inform libcurl about - * how large the file being sent really is. That allows better error - * checking and better verifies that the upload was successful. -1 means - * unknown size. - * - * For large file support, there is also a _LARGE version of the key - * which takes an off_t type, allowing platforms with larger off_t - * sizes to handle larger files. See below for INFILESIZE_LARGE. - */ - CURLOPT(CURLOPT_INFILESIZE, CURLOPTTYPE_LONG, 14), - - /* POST static input fields. */ - CURLOPT(CURLOPT_POSTFIELDS, CURLOPTTYPE_OBJECTPOINT, 15), - - /* Set the referrer page (needed by some CGIs) */ - CURLOPT(CURLOPT_REFERER, CURLOPTTYPE_STRINGPOINT, 16), - - /* Set the FTP PORT string (interface name, named or numerical IP address) - Use i.e '-' to use default address. */ - CURLOPT(CURLOPT_FTPPORT, CURLOPTTYPE_STRINGPOINT, 17), - - /* Set the User-Agent string (examined by some CGIs) */ - CURLOPT(CURLOPT_USERAGENT, CURLOPTTYPE_STRINGPOINT, 18), - - /* If the download receives less than "low speed limit" bytes/second - * during "low speed time" seconds, the operations is aborted. - * You could i.e if you have a pretty high speed connection, abort if - * it is less than 2000 bytes/sec during 20 seconds. - */ - - /* Set the "low speed limit" */ - CURLOPT(CURLOPT_LOW_SPEED_LIMIT, CURLOPTTYPE_LONG, 19), - - /* Set the "low speed time" */ - CURLOPT(CURLOPT_LOW_SPEED_TIME, CURLOPTTYPE_LONG, 20), - - /* Set the continuation offset. - * - * Note there is also a _LARGE version of this key which uses - * off_t types, allowing for large file offsets on platforms which - * use larger-than-32-bit off_t's. Look below for RESUME_FROM_LARGE. - */ - CURLOPT(CURLOPT_RESUME_FROM, CURLOPTTYPE_LONG, 21), - - /* Set cookie in request: */ - CURLOPT(CURLOPT_COOKIE, CURLOPTTYPE_STRINGPOINT, 22), - - /* This points to a linked list of headers, struct curl_slist kind. This - list is also used for RTSP (in spite of its name) */ - CURLOPT(CURLOPT_HTTPHEADER, CURLOPTTYPE_SLISTPOINT, 23), - - /* This points to a linked list of post entries, struct curl_httppost */ - CURLOPTDEPRECATED(CURLOPT_HTTPPOST, CURLOPTTYPE_OBJECTPOINT, 24, - 7.56.0, "Use CURLOPT_MIMEPOST"), - - /* name of the file keeping your private SSL-certificate */ - CURLOPT(CURLOPT_SSLCERT, CURLOPTTYPE_STRINGPOINT, 25), - - /* password for the SSL or SSH private key */ - CURLOPT(CURLOPT_KEYPASSWD, CURLOPTTYPE_STRINGPOINT, 26), - - /* send TYPE parameter? */ - CURLOPT(CURLOPT_CRLF, CURLOPTTYPE_LONG, 27), - - /* send linked-list of QUOTE commands */ - CURLOPT(CURLOPT_QUOTE, CURLOPTTYPE_SLISTPOINT, 28), - - /* send FILE * or void * to store headers to, if you use a callback it - is simply passed to the callback unmodified */ - CURLOPT(CURLOPT_HEADERDATA, CURLOPTTYPE_CBPOINT, 29), - - /* point to a file to read the initial cookies from, also enables - "cookie awareness" */ - CURLOPT(CURLOPT_COOKIEFILE, CURLOPTTYPE_STRINGPOINT, 31), - - /* What version to specifically try to use. - See CURL_SSLVERSION defines below. */ - CURLOPT(CURLOPT_SSLVERSION, CURLOPTTYPE_VALUES, 32), - - /* What kind of HTTP time condition to use, see defines */ - CURLOPT(CURLOPT_TIMECONDITION, CURLOPTTYPE_VALUES, 33), - - /* Time to use with the above condition. Specified in number of seconds - since 1 Jan 1970 */ - CURLOPT(CURLOPT_TIMEVALUE, CURLOPTTYPE_LONG, 34), - - /* 35 = OBSOLETE */ - - /* Custom request, for customizing the get command like - HTTP: DELETE, TRACE and others - FTP: to use a different list command - */ - CURLOPT(CURLOPT_CUSTOMREQUEST, CURLOPTTYPE_STRINGPOINT, 36), - - /* FILE handle to use instead of stderr */ - CURLOPT(CURLOPT_STDERR, CURLOPTTYPE_OBJECTPOINT, 37), - - /* 38 is not used */ - - /* send linked-list of post-transfer QUOTE commands */ - CURLOPT(CURLOPT_POSTQUOTE, CURLOPTTYPE_SLISTPOINT, 39), - - /* OBSOLETE, do not use! */ - CURLOPT(CURLOPT_OBSOLETE40, CURLOPTTYPE_OBJECTPOINT, 40), - - /* talk a lot */ - CURLOPT(CURLOPT_VERBOSE, CURLOPTTYPE_LONG, 41), - - /* throw the header out too */ - CURLOPT(CURLOPT_HEADER, CURLOPTTYPE_LONG, 42), - - /* shut off the progress meter */ - CURLOPT(CURLOPT_NOPROGRESS, CURLOPTTYPE_LONG, 43), - - /* use HEAD to get http document */ - CURLOPT(CURLOPT_NOBODY, CURLOPTTYPE_LONG, 44), - - /* no output on http error codes >= 400 */ - CURLOPT(CURLOPT_FAILONERROR, CURLOPTTYPE_LONG, 45), - - /* this is an upload */ - CURLOPT(CURLOPT_UPLOAD, CURLOPTTYPE_LONG, 46), - - /* HTTP POST method */ - CURLOPT(CURLOPT_POST, CURLOPTTYPE_LONG, 47), - - /* bare names when listing directories */ - CURLOPT(CURLOPT_DIRLISTONLY, CURLOPTTYPE_LONG, 48), - - /* Append instead of overwrite on upload! */ - CURLOPT(CURLOPT_APPEND, CURLOPTTYPE_LONG, 50), - - /* Specify whether to read the user+password from the .netrc or the URL. - * This must be one of the CURL_NETRC_* enums below. */ - CURLOPT(CURLOPT_NETRC, CURLOPTTYPE_VALUES, 51), - - /* use Location: Luke! */ - CURLOPT(CURLOPT_FOLLOWLOCATION, CURLOPTTYPE_LONG, 52), - - /* transfer data in text/ASCII format */ - CURLOPT(CURLOPT_TRANSFERTEXT, CURLOPTTYPE_LONG, 53), - - /* HTTP PUT */ - CURLOPTDEPRECATED(CURLOPT_PUT, CURLOPTTYPE_LONG, 54, - 7.12.1, "Use CURLOPT_UPLOAD"), - - /* 55 = OBSOLETE */ - - /* DEPRECATED - * Function that will be called instead of the internal progress display - * function. This function should be defined as the curl_progress_callback - * prototype defines. */ - CURLOPTDEPRECATED(CURLOPT_PROGRESSFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 56, - 7.32.0, "Use CURLOPT_XFERINFOFUNCTION"), - - /* Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION - callbacks */ - CURLOPT(CURLOPT_XFERINFODATA, CURLOPTTYPE_CBPOINT, 57), -#define CURLOPT_PROGRESSDATA CURLOPT_XFERINFODATA - - /* We want the referrer field set automatically when following locations */ - CURLOPT(CURLOPT_AUTOREFERER, CURLOPTTYPE_LONG, 58), - - /* Port of the proxy, can be set in the proxy string as well with: - "[host]:[port]" */ - CURLOPT(CURLOPT_PROXYPORT, CURLOPTTYPE_LONG, 59), - - /* size of the POST input data, if strlen() is not good to use */ - CURLOPT(CURLOPT_POSTFIELDSIZE, CURLOPTTYPE_LONG, 60), - - /* tunnel non-http operations through an HTTP proxy */ - CURLOPT(CURLOPT_HTTPPROXYTUNNEL, CURLOPTTYPE_LONG, 61), - - /* Set the interface string to use as outgoing network interface */ - CURLOPT(CURLOPT_INTERFACE, CURLOPTTYPE_STRINGPOINT, 62), - - /* Set the krb4/5 security level, this also enables krb4/5 awareness. This - * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string - * is set but doesn't match one of these, 'private' will be used. */ - CURLOPT(CURLOPT_KRBLEVEL, CURLOPTTYPE_STRINGPOINT, 63), - - /* Set if we should verify the peer in ssl handshake, set 1 to verify. */ - CURLOPT(CURLOPT_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 64), - - /* The CApath or CAfile used to validate the peer certificate - this option is used only if SSL_VERIFYPEER is true */ - CURLOPT(CURLOPT_CAINFO, CURLOPTTYPE_STRINGPOINT, 65), - - /* 66 = OBSOLETE */ - /* 67 = OBSOLETE */ - - /* Maximum number of http redirects to follow */ - CURLOPT(CURLOPT_MAXREDIRS, CURLOPTTYPE_LONG, 68), - - /* Pass a long set to 1 to get the date of the requested document (if - possible)! Pass a zero to shut it off. */ - CURLOPT(CURLOPT_FILETIME, CURLOPTTYPE_LONG, 69), - - /* This points to a linked list of telnet options */ - CURLOPT(CURLOPT_TELNETOPTIONS, CURLOPTTYPE_SLISTPOINT, 70), - - /* Max amount of cached alive connections */ - CURLOPT(CURLOPT_MAXCONNECTS, CURLOPTTYPE_LONG, 71), - - /* OBSOLETE, do not use! */ - CURLOPT(CURLOPT_OBSOLETE72, CURLOPTTYPE_LONG, 72), - - /* 73 = OBSOLETE */ - - /* Set to explicitly use a new connection for the upcoming transfer. - Do not use this unless you're absolutely sure of this, as it makes the - operation slower and is less friendly for the network. */ - CURLOPT(CURLOPT_FRESH_CONNECT, CURLOPTTYPE_LONG, 74), - - /* Set to explicitly forbid the upcoming transfer's connection to be re-used - when done. Do not use this unless you're absolutely sure of this, as it - makes the operation slower and is less friendly for the network. */ - CURLOPT(CURLOPT_FORBID_REUSE, CURLOPTTYPE_LONG, 75), - - /* Set to a file name that contains random data for libcurl to use to - seed the random engine when doing SSL connects. */ - CURLOPTDEPRECATED(CURLOPT_RANDOM_FILE, CURLOPTTYPE_STRINGPOINT, 76, - 7.84.0, "Serves no purpose anymore"), - - /* Set to the Entropy Gathering Daemon socket pathname */ - CURLOPTDEPRECATED(CURLOPT_EGDSOCKET, CURLOPTTYPE_STRINGPOINT, 77, - 7.84.0, "Serves no purpose anymore"), - - /* Time-out connect operations after this amount of seconds, if connects are - OK within this time, then fine... This only aborts the connect phase. */ - CURLOPT(CURLOPT_CONNECTTIMEOUT, CURLOPTTYPE_LONG, 78), - - /* Function that will be called to store headers (instead of fwrite). The - * parameters will use fwrite() syntax, make sure to follow them. */ - CURLOPT(CURLOPT_HEADERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 79), - - /* Set this to force the HTTP request to get back to GET. Only really usable - if POST, PUT or a custom request have been used first. - */ - CURLOPT(CURLOPT_HTTPGET, CURLOPTTYPE_LONG, 80), - - /* Set if we should verify the Common name from the peer certificate in ssl - * handshake, set 1 to check existence, 2 to ensure that it matches the - * provided hostname. */ - CURLOPT(CURLOPT_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 81), - - /* Specify which file name to write all known cookies in after completed - operation. Set file name to "-" (dash) to make it go to stdout. */ - CURLOPT(CURLOPT_COOKIEJAR, CURLOPTTYPE_STRINGPOINT, 82), - - /* Specify which SSL ciphers to use */ - CURLOPT(CURLOPT_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 83), - - /* Specify which HTTP version to use! This must be set to one of the - CURL_HTTP_VERSION* enums set below. */ - CURLOPT(CURLOPT_HTTP_VERSION, CURLOPTTYPE_VALUES, 84), - - /* Specifically switch on or off the FTP engine's use of the EPSV command. By - default, that one will always be attempted before the more traditional - PASV command. */ - CURLOPT(CURLOPT_FTP_USE_EPSV, CURLOPTTYPE_LONG, 85), - - /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */ - CURLOPT(CURLOPT_SSLCERTTYPE, CURLOPTTYPE_STRINGPOINT, 86), - - /* name of the file keeping your private SSL-key */ - CURLOPT(CURLOPT_SSLKEY, CURLOPTTYPE_STRINGPOINT, 87), - - /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */ - CURLOPT(CURLOPT_SSLKEYTYPE, CURLOPTTYPE_STRINGPOINT, 88), - - /* crypto engine for the SSL-sub system */ - CURLOPT(CURLOPT_SSLENGINE, CURLOPTTYPE_STRINGPOINT, 89), - - /* set the crypto engine for the SSL-sub system as default - the param has no meaning... - */ - CURLOPT(CURLOPT_SSLENGINE_DEFAULT, CURLOPTTYPE_LONG, 90), - - /* Non-zero value means to use the global dns cache */ - /* DEPRECATED, do not use! */ - CURLOPTDEPRECATED(CURLOPT_DNS_USE_GLOBAL_CACHE, CURLOPTTYPE_LONG, 91, - 7.11.1, "Use CURLOPT_SHARE"), - - /* DNS cache timeout */ - CURLOPT(CURLOPT_DNS_CACHE_TIMEOUT, CURLOPTTYPE_LONG, 92), - - /* send linked-list of pre-transfer QUOTE commands */ - CURLOPT(CURLOPT_PREQUOTE, CURLOPTTYPE_SLISTPOINT, 93), - - /* set the debug function */ - CURLOPT(CURLOPT_DEBUGFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 94), - - /* set the data for the debug function */ - CURLOPT(CURLOPT_DEBUGDATA, CURLOPTTYPE_CBPOINT, 95), - - /* mark this as start of a cookie session */ - CURLOPT(CURLOPT_COOKIESESSION, CURLOPTTYPE_LONG, 96), - - /* The CApath directory used to validate the peer certificate - this option is used only if SSL_VERIFYPEER is true */ - CURLOPT(CURLOPT_CAPATH, CURLOPTTYPE_STRINGPOINT, 97), - - /* Instruct libcurl to use a smaller receive buffer */ - CURLOPT(CURLOPT_BUFFERSIZE, CURLOPTTYPE_LONG, 98), - - /* Instruct libcurl to not use any signal/alarm handlers, even when using - timeouts. This option is useful for multi-threaded applications. - See libcurl-the-guide for more background information. */ - CURLOPT(CURLOPT_NOSIGNAL, CURLOPTTYPE_LONG, 99), - - /* Provide a CURLShare for mutexing non-ts data */ - CURLOPT(CURLOPT_SHARE, CURLOPTTYPE_OBJECTPOINT, 100), - - /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default), - CURLPROXY_HTTPS, CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and - CURLPROXY_SOCKS5. */ - CURLOPT(CURLOPT_PROXYTYPE, CURLOPTTYPE_VALUES, 101), - - /* Set the Accept-Encoding string. Use this to tell a server you would like - the response to be compressed. Before 7.21.6, this was known as - CURLOPT_ENCODING */ - CURLOPT(CURLOPT_ACCEPT_ENCODING, CURLOPTTYPE_STRINGPOINT, 102), - - /* Set pointer to private data */ - CURLOPT(CURLOPT_PRIVATE, CURLOPTTYPE_OBJECTPOINT, 103), - - /* Set aliases for HTTP 200 in the HTTP Response header */ - CURLOPT(CURLOPT_HTTP200ALIASES, CURLOPTTYPE_SLISTPOINT, 104), - - /* Continue to send authentication (user+password) when following locations, - even when hostname changed. This can potentially send off the name - and password to whatever host the server decides. */ - CURLOPT(CURLOPT_UNRESTRICTED_AUTH, CURLOPTTYPE_LONG, 105), - - /* Specifically switch on or off the FTP engine's use of the EPRT command ( - it also disables the LPRT attempt). By default, those ones will always be - attempted before the good old traditional PORT command. */ - CURLOPT(CURLOPT_FTP_USE_EPRT, CURLOPTTYPE_LONG, 106), - - /* Set this to a bitmask value to enable the particular authentications - methods you like. Use this in combination with CURLOPT_USERPWD. - Note that setting multiple bits may cause extra network round-trips. */ - CURLOPT(CURLOPT_HTTPAUTH, CURLOPTTYPE_VALUES, 107), - - /* Set the ssl context callback function, currently only for OpenSSL or - WolfSSL ssl_ctx, or mbedTLS mbedtls_ssl_config in the second argument. - The function must match the curl_ssl_ctx_callback prototype. */ - CURLOPT(CURLOPT_SSL_CTX_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 108), - - /* Set the userdata for the ssl context callback function's third - argument */ - CURLOPT(CURLOPT_SSL_CTX_DATA, CURLOPTTYPE_CBPOINT, 109), - - /* FTP Option that causes missing dirs to be created on the remote server. - In 7.19.4 we introduced the convenience enums for this option using the - CURLFTP_CREATE_DIR prefix. - */ - CURLOPT(CURLOPT_FTP_CREATE_MISSING_DIRS, CURLOPTTYPE_LONG, 110), - - /* Set this to a bitmask value to enable the particular authentications - methods you like. Use this in combination with CURLOPT_PROXYUSERPWD. - Note that setting multiple bits may cause extra network round-trips. */ - CURLOPT(CURLOPT_PROXYAUTH, CURLOPTTYPE_VALUES, 111), - - /* Option that changes the timeout, in seconds, associated with getting a - response. This is different from transfer timeout time and essentially - places a demand on the server to acknowledge commands in a timely - manner. For FTP, SMTP, IMAP and POP3. */ - CURLOPT(CURLOPT_SERVER_RESPONSE_TIMEOUT, CURLOPTTYPE_LONG, 112), - - /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to - tell libcurl to use those IP versions only. This only has effect on - systems with support for more than one, i.e IPv4 _and_ IPv6. */ - CURLOPT(CURLOPT_IPRESOLVE, CURLOPTTYPE_VALUES, 113), - - /* Set this option to limit the size of a file that will be downloaded from - an HTTP or FTP server. - - Note there is also _LARGE version which adds large file support for - platforms which have larger off_t sizes. See MAXFILESIZE_LARGE below. */ - CURLOPT(CURLOPT_MAXFILESIZE, CURLOPTTYPE_LONG, 114), - - /* See the comment for INFILESIZE above, but in short, specifies - * the size of the file being uploaded. -1 means unknown. - */ - CURLOPT(CURLOPT_INFILESIZE_LARGE, CURLOPTTYPE_OFF_T, 115), - - /* Sets the continuation offset. There is also a CURLOPTTYPE_LONG version - * of this; look above for RESUME_FROM. - */ - CURLOPT(CURLOPT_RESUME_FROM_LARGE, CURLOPTTYPE_OFF_T, 116), - - /* Sets the maximum size of data that will be downloaded from - * an HTTP or FTP server. See MAXFILESIZE above for the LONG version. - */ - CURLOPT(CURLOPT_MAXFILESIZE_LARGE, CURLOPTTYPE_OFF_T, 117), - - /* Set this option to the file name of your .netrc file you want libcurl - to parse (using the CURLOPT_NETRC option). If not set, libcurl will do - a poor attempt to find the user's home directory and check for a .netrc - file in there. */ - CURLOPT(CURLOPT_NETRC_FILE, CURLOPTTYPE_STRINGPOINT, 118), - - /* Enable SSL/TLS for FTP, pick one of: - CURLUSESSL_TRY - try using SSL, proceed anyway otherwise - CURLUSESSL_CONTROL - SSL for the control connection or fail - CURLUSESSL_ALL - SSL for all communication or fail - */ - CURLOPT(CURLOPT_USE_SSL, CURLOPTTYPE_VALUES, 119), - - /* The _LARGE version of the standard POSTFIELDSIZE option */ - CURLOPT(CURLOPT_POSTFIELDSIZE_LARGE, CURLOPTTYPE_OFF_T, 120), - - /* Enable/disable the TCP Nagle algorithm */ - CURLOPT(CURLOPT_TCP_NODELAY, CURLOPTTYPE_LONG, 121), - - /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 123 OBSOLETE. Gone in 7.16.0 */ - /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 127 OBSOLETE. Gone in 7.16.0 */ - /* 128 OBSOLETE. Gone in 7.16.0 */ - - /* When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option - can be used to change libcurl's default action which is to first try - "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK - response has been received. - - Available parameters are: - CURLFTPAUTH_DEFAULT - let libcurl decide - CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS - CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL - */ - CURLOPT(CURLOPT_FTPSSLAUTH, CURLOPTTYPE_VALUES, 129), - - CURLOPTDEPRECATED(CURLOPT_IOCTLFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 130, - 7.18.0, "Use CURLOPT_SEEKFUNCTION"), - CURLOPTDEPRECATED(CURLOPT_IOCTLDATA, CURLOPTTYPE_CBPOINT, 131, - 7.18.0, "Use CURLOPT_SEEKDATA"), - - /* 132 OBSOLETE. Gone in 7.16.0 */ - /* 133 OBSOLETE. Gone in 7.16.0 */ - - /* null-terminated string for pass on to the FTP server when asked for - "account" info */ - CURLOPT(CURLOPT_FTP_ACCOUNT, CURLOPTTYPE_STRINGPOINT, 134), - - /* feed cookie into cookie engine */ - CURLOPT(CURLOPT_COOKIELIST, CURLOPTTYPE_STRINGPOINT, 135), - - /* ignore Content-Length */ - CURLOPT(CURLOPT_IGNORE_CONTENT_LENGTH, CURLOPTTYPE_LONG, 136), - - /* Set to non-zero to skip the IP address received in a 227 PASV FTP server - response. Typically used for FTP-SSL purposes but is not restricted to - that. libcurl will then instead use the same IP address it used for the - control connection. */ - CURLOPT(CURLOPT_FTP_SKIP_PASV_IP, CURLOPTTYPE_LONG, 137), - - /* Select "file method" to use when doing FTP, see the curl_ftpmethod - above. */ - CURLOPT(CURLOPT_FTP_FILEMETHOD, CURLOPTTYPE_VALUES, 138), - - /* Local port number to bind the socket to */ - CURLOPT(CURLOPT_LOCALPORT, CURLOPTTYPE_LONG, 139), - - /* Number of ports to try, including the first one set with LOCALPORT. - Thus, setting it to 1 will make no additional attempts but the first. - */ - CURLOPT(CURLOPT_LOCALPORTRANGE, CURLOPTTYPE_LONG, 140), - - /* no transfer, set up connection and let application use the socket by - extracting it with CURLINFO_LASTSOCKET */ - CURLOPT(CURLOPT_CONNECT_ONLY, CURLOPTTYPE_LONG, 141), - - /* Function that will be called to convert from the - network encoding (instead of using the iconv calls in libcurl) */ - CURLOPTDEPRECATED(CURLOPT_CONV_FROM_NETWORK_FUNCTION, - CURLOPTTYPE_FUNCTIONPOINT, 142, - 7.82.0, "Serves no purpose anymore"), - - /* Function that will be called to convert to the - network encoding (instead of using the iconv calls in libcurl) */ - CURLOPTDEPRECATED(CURLOPT_CONV_TO_NETWORK_FUNCTION, - CURLOPTTYPE_FUNCTIONPOINT, 143, - 7.82.0, "Serves no purpose anymore"), - - /* Function that will be called to convert from UTF8 - (instead of using the iconv calls in libcurl) - Note that this is used only for SSL certificate processing */ - CURLOPTDEPRECATED(CURLOPT_CONV_FROM_UTF8_FUNCTION, - CURLOPTTYPE_FUNCTIONPOINT, 144, - 7.82.0, "Serves no purpose anymore"), - - /* if the connection proceeds too quickly then need to slow it down */ - /* limit-rate: maximum number of bytes per second to send or receive */ - CURLOPT(CURLOPT_MAX_SEND_SPEED_LARGE, CURLOPTTYPE_OFF_T, 145), - CURLOPT(CURLOPT_MAX_RECV_SPEED_LARGE, CURLOPTTYPE_OFF_T, 146), - - /* Pointer to command string to send if USER/PASS fails. */ - CURLOPT(CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPTTYPE_STRINGPOINT, 147), - - /* callback function for setting socket options */ - CURLOPT(CURLOPT_SOCKOPTFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 148), - CURLOPT(CURLOPT_SOCKOPTDATA, CURLOPTTYPE_CBPOINT, 149), - - /* set to 0 to disable session ID re-use for this transfer, default is - enabled (== 1) */ - CURLOPT(CURLOPT_SSL_SESSIONID_CACHE, CURLOPTTYPE_LONG, 150), - - /* allowed SSH authentication methods */ - CURLOPT(CURLOPT_SSH_AUTH_TYPES, CURLOPTTYPE_VALUES, 151), - - /* Used by scp/sftp to do public/private key authentication */ - CURLOPT(CURLOPT_SSH_PUBLIC_KEYFILE, CURLOPTTYPE_STRINGPOINT, 152), - CURLOPT(CURLOPT_SSH_PRIVATE_KEYFILE, CURLOPTTYPE_STRINGPOINT, 153), - - /* Send CCC (Clear Command Channel) after authentication */ - CURLOPT(CURLOPT_FTP_SSL_CCC, CURLOPTTYPE_LONG, 154), - - /* Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */ - CURLOPT(CURLOPT_TIMEOUT_MS, CURLOPTTYPE_LONG, 155), - CURLOPT(CURLOPT_CONNECTTIMEOUT_MS, CURLOPTTYPE_LONG, 156), - - /* set to zero to disable the libcurl's decoding and thus pass the raw body - data to the application even when it is encoded/compressed */ - CURLOPT(CURLOPT_HTTP_TRANSFER_DECODING, CURLOPTTYPE_LONG, 157), - CURLOPT(CURLOPT_HTTP_CONTENT_DECODING, CURLOPTTYPE_LONG, 158), - - /* Permission used when creating new files and directories on the remote - server for protocols that support it, SFTP/SCP/FILE */ - CURLOPT(CURLOPT_NEW_FILE_PERMS, CURLOPTTYPE_LONG, 159), - CURLOPT(CURLOPT_NEW_DIRECTORY_PERMS, CURLOPTTYPE_LONG, 160), - - /* Set the behavior of POST when redirecting. Values must be set to one - of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */ - CURLOPT(CURLOPT_POSTREDIR, CURLOPTTYPE_VALUES, 161), - - /* used by scp/sftp to verify the host's public key */ - CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_MD5, CURLOPTTYPE_STRINGPOINT, 162), - - /* Callback function for opening socket (instead of socket(2)). Optionally, - callback is able change the address or refuse to connect returning - CURL_SOCKET_BAD. The callback should have type - curl_opensocket_callback */ - CURLOPT(CURLOPT_OPENSOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 163), - CURLOPT(CURLOPT_OPENSOCKETDATA, CURLOPTTYPE_CBPOINT, 164), - - /* POST volatile input fields. */ - CURLOPT(CURLOPT_COPYPOSTFIELDS, CURLOPTTYPE_OBJECTPOINT, 165), - - /* set transfer mode (;type=) when doing FTP via an HTTP proxy */ - CURLOPT(CURLOPT_PROXY_TRANSFER_MODE, CURLOPTTYPE_LONG, 166), - - /* Callback function for seeking in the input stream */ - CURLOPT(CURLOPT_SEEKFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 167), - CURLOPT(CURLOPT_SEEKDATA, CURLOPTTYPE_CBPOINT, 168), - - /* CRL file */ - CURLOPT(CURLOPT_CRLFILE, CURLOPTTYPE_STRINGPOINT, 169), - - /* Issuer certificate */ - CURLOPT(CURLOPT_ISSUERCERT, CURLOPTTYPE_STRINGPOINT, 170), - - /* (IPv6) Address scope */ - CURLOPT(CURLOPT_ADDRESS_SCOPE, CURLOPTTYPE_LONG, 171), - - /* Collect certificate chain info and allow it to get retrievable with - CURLINFO_CERTINFO after the transfer is complete. */ - CURLOPT(CURLOPT_CERTINFO, CURLOPTTYPE_LONG, 172), - - /* "name" and "pwd" to use when fetching. */ - CURLOPT(CURLOPT_USERNAME, CURLOPTTYPE_STRINGPOINT, 173), - CURLOPT(CURLOPT_PASSWORD, CURLOPTTYPE_STRINGPOINT, 174), - - /* "name" and "pwd" to use with Proxy when fetching. */ - CURLOPT(CURLOPT_PROXYUSERNAME, CURLOPTTYPE_STRINGPOINT, 175), - CURLOPT(CURLOPT_PROXYPASSWORD, CURLOPTTYPE_STRINGPOINT, 176), - - /* Comma separated list of hostnames defining no-proxy zones. These should - match both hostnames directly, and hostnames within a domain. For - example, local.com will match local.com and www.local.com, but NOT - notlocal.com or www.notlocal.com. For compatibility with other - implementations of this, .local.com will be considered to be the same as - local.com. A single * is the only valid wildcard, and effectively - disables the use of proxy. */ - CURLOPT(CURLOPT_NOPROXY, CURLOPTTYPE_STRINGPOINT, 177), - - /* block size for TFTP transfers */ - CURLOPT(CURLOPT_TFTP_BLKSIZE, CURLOPTTYPE_LONG, 178), - - /* Socks Service */ - /* DEPRECATED, do not use! */ - CURLOPTDEPRECATED(CURLOPT_SOCKS5_GSSAPI_SERVICE, - CURLOPTTYPE_STRINGPOINT, 179, - 7.49.0, "Use CURLOPT_PROXY_SERVICE_NAME"), - - /* Socks Service */ - CURLOPT(CURLOPT_SOCKS5_GSSAPI_NEC, CURLOPTTYPE_LONG, 180), - - /* set the bitmask for the protocols that are allowed to be used for the - transfer, which thus helps the app which takes URLs from users or other - external inputs and want to restrict what protocol(s) to deal - with. Defaults to CURLPROTO_ALL. */ - CURLOPTDEPRECATED(CURLOPT_PROTOCOLS, CURLOPTTYPE_LONG, 181, - 7.85.0, "Use CURLOPT_PROTOCOLS_STR"), - - /* set the bitmask for the protocols that libcurl is allowed to follow to, - as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs - to be set in both bitmasks to be allowed to get redirected to. */ - CURLOPTDEPRECATED(CURLOPT_REDIR_PROTOCOLS, CURLOPTTYPE_LONG, 182, - 7.85.0, "Use CURLOPT_REDIR_PROTOCOLS_STR"), - - /* set the SSH knownhost file name to use */ - CURLOPT(CURLOPT_SSH_KNOWNHOSTS, CURLOPTTYPE_STRINGPOINT, 183), - - /* set the SSH host key callback, must point to a curl_sshkeycallback - function */ - CURLOPT(CURLOPT_SSH_KEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 184), - - /* set the SSH host key callback custom pointer */ - CURLOPT(CURLOPT_SSH_KEYDATA, CURLOPTTYPE_CBPOINT, 185), - - /* set the SMTP mail originator */ - CURLOPT(CURLOPT_MAIL_FROM, CURLOPTTYPE_STRINGPOINT, 186), - - /* set the list of SMTP mail receiver(s) */ - CURLOPT(CURLOPT_MAIL_RCPT, CURLOPTTYPE_SLISTPOINT, 187), - - /* FTP: send PRET before PASV */ - CURLOPT(CURLOPT_FTP_USE_PRET, CURLOPTTYPE_LONG, 188), - - /* RTSP request method (OPTIONS, SETUP, PLAY, etc...) */ - CURLOPT(CURLOPT_RTSP_REQUEST, CURLOPTTYPE_VALUES, 189), - - /* The RTSP session identifier */ - CURLOPT(CURLOPT_RTSP_SESSION_ID, CURLOPTTYPE_STRINGPOINT, 190), - - /* The RTSP stream URI */ - CURLOPT(CURLOPT_RTSP_STREAM_URI, CURLOPTTYPE_STRINGPOINT, 191), - - /* The Transport: header to use in RTSP requests */ - CURLOPT(CURLOPT_RTSP_TRANSPORT, CURLOPTTYPE_STRINGPOINT, 192), - - /* Manually initialize the client RTSP CSeq for this handle */ - CURLOPT(CURLOPT_RTSP_CLIENT_CSEQ, CURLOPTTYPE_LONG, 193), - - /* Manually initialize the server RTSP CSeq for this handle */ - CURLOPT(CURLOPT_RTSP_SERVER_CSEQ, CURLOPTTYPE_LONG, 194), - - /* The stream to pass to INTERLEAVEFUNCTION. */ - CURLOPT(CURLOPT_INTERLEAVEDATA, CURLOPTTYPE_CBPOINT, 195), - - /* Let the application define a custom write method for RTP data */ - CURLOPT(CURLOPT_INTERLEAVEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 196), - - /* Turn on wildcard matching */ - CURLOPT(CURLOPT_WILDCARDMATCH, CURLOPTTYPE_LONG, 197), - - /* Directory matching callback called before downloading of an - individual file (chunk) started */ - CURLOPT(CURLOPT_CHUNK_BGN_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 198), - - /* Directory matching callback called after the file (chunk) - was downloaded, or skipped */ - CURLOPT(CURLOPT_CHUNK_END_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 199), - - /* Change match (fnmatch-like) callback for wildcard matching */ - CURLOPT(CURLOPT_FNMATCH_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 200), - - /* Let the application define custom chunk data pointer */ - CURLOPT(CURLOPT_CHUNK_DATA, CURLOPTTYPE_CBPOINT, 201), - - /* FNMATCH_FUNCTION user pointer */ - CURLOPT(CURLOPT_FNMATCH_DATA, CURLOPTTYPE_CBPOINT, 202), - - /* send linked-list of name:port:address sets */ - CURLOPT(CURLOPT_RESOLVE, CURLOPTTYPE_SLISTPOINT, 203), - - /* Set a username for authenticated TLS */ - CURLOPT(CURLOPT_TLSAUTH_USERNAME, CURLOPTTYPE_STRINGPOINT, 204), - - /* Set a password for authenticated TLS */ - CURLOPT(CURLOPT_TLSAUTH_PASSWORD, CURLOPTTYPE_STRINGPOINT, 205), - - /* Set authentication type for authenticated TLS */ - CURLOPT(CURLOPT_TLSAUTH_TYPE, CURLOPTTYPE_STRINGPOINT, 206), - - /* Set to 1 to enable the "TE:" header in HTTP requests to ask for - compressed transfer-encoded responses. Set to 0 to disable the use of TE: - in outgoing requests. The current default is 0, but it might change in a - future libcurl release. - - libcurl will ask for the compressed methods it knows of, and if that - isn't any, it will not ask for transfer-encoding at all even if this - option is set to 1. - - */ - CURLOPT(CURLOPT_TRANSFER_ENCODING, CURLOPTTYPE_LONG, 207), - - /* Callback function for closing socket (instead of close(2)). The callback - should have type curl_closesocket_callback */ - CURLOPT(CURLOPT_CLOSESOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 208), - CURLOPT(CURLOPT_CLOSESOCKETDATA, CURLOPTTYPE_CBPOINT, 209), - - /* allow GSSAPI credential delegation */ - CURLOPT(CURLOPT_GSSAPI_DELEGATION, CURLOPTTYPE_VALUES, 210), - - /* Set the name servers to use for DNS resolution */ - CURLOPT(CURLOPT_DNS_SERVERS, CURLOPTTYPE_STRINGPOINT, 211), - - /* Time-out accept operations (currently for FTP only) after this amount - of milliseconds. */ - CURLOPT(CURLOPT_ACCEPTTIMEOUT_MS, CURLOPTTYPE_LONG, 212), - - /* Set TCP keepalive */ - CURLOPT(CURLOPT_TCP_KEEPALIVE, CURLOPTTYPE_LONG, 213), - - /* non-universal keepalive knobs (Linux, AIX, HP-UX, more) */ - CURLOPT(CURLOPT_TCP_KEEPIDLE, CURLOPTTYPE_LONG, 214), - CURLOPT(CURLOPT_TCP_KEEPINTVL, CURLOPTTYPE_LONG, 215), - - /* Enable/disable specific SSL features with a bitmask, see CURLSSLOPT_* */ - CURLOPT(CURLOPT_SSL_OPTIONS, CURLOPTTYPE_VALUES, 216), - - /* Set the SMTP auth originator */ - CURLOPT(CURLOPT_MAIL_AUTH, CURLOPTTYPE_STRINGPOINT, 217), - - /* Enable/disable SASL initial response */ - CURLOPT(CURLOPT_SASL_IR, CURLOPTTYPE_LONG, 218), - - /* Function that will be called instead of the internal progress display - * function. This function should be defined as the curl_xferinfo_callback - * prototype defines. (Deprecates CURLOPT_PROGRESSFUNCTION) */ - CURLOPT(CURLOPT_XFERINFOFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 219), - - /* The XOAUTH2 bearer token */ - CURLOPT(CURLOPT_XOAUTH2_BEARER, CURLOPTTYPE_STRINGPOINT, 220), - - /* Set the interface string to use as outgoing network - * interface for DNS requests. - * Only supported by the c-ares DNS backend */ - CURLOPT(CURLOPT_DNS_INTERFACE, CURLOPTTYPE_STRINGPOINT, 221), - - /* Set the local IPv4 address to use for outgoing DNS requests. - * Only supported by the c-ares DNS backend */ - CURLOPT(CURLOPT_DNS_LOCAL_IP4, CURLOPTTYPE_STRINGPOINT, 222), - - /* Set the local IPv6 address to use for outgoing DNS requests. - * Only supported by the c-ares DNS backend */ - CURLOPT(CURLOPT_DNS_LOCAL_IP6, CURLOPTTYPE_STRINGPOINT, 223), - - /* Set authentication options directly */ - CURLOPT(CURLOPT_LOGIN_OPTIONS, CURLOPTTYPE_STRINGPOINT, 224), - - /* Enable/disable TLS NPN extension (http2 over ssl might fail without) */ - CURLOPTDEPRECATED(CURLOPT_SSL_ENABLE_NPN, CURLOPTTYPE_LONG, 225, - 7.86.0, "Has no function"), - - /* Enable/disable TLS ALPN extension (http2 over ssl might fail without) */ - CURLOPT(CURLOPT_SSL_ENABLE_ALPN, CURLOPTTYPE_LONG, 226), - - /* Time to wait for a response to an HTTP request containing an - * Expect: 100-continue header before sending the data anyway. */ - CURLOPT(CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPTTYPE_LONG, 227), - - /* This points to a linked list of headers used for proxy requests only, - struct curl_slist kind */ - CURLOPT(CURLOPT_PROXYHEADER, CURLOPTTYPE_SLISTPOINT, 228), - - /* Pass in a bitmask of "header options" */ - CURLOPT(CURLOPT_HEADEROPT, CURLOPTTYPE_VALUES, 229), - - /* The public key in DER form used to validate the peer public key - this option is used only if SSL_VERIFYPEER is true */ - CURLOPT(CURLOPT_PINNEDPUBLICKEY, CURLOPTTYPE_STRINGPOINT, 230), - - /* Path to Unix domain socket */ - CURLOPT(CURLOPT_UNIX_SOCKET_PATH, CURLOPTTYPE_STRINGPOINT, 231), - - /* Set if we should verify the certificate status. */ - CURLOPT(CURLOPT_SSL_VERIFYSTATUS, CURLOPTTYPE_LONG, 232), - - /* Set if we should enable TLS false start. */ - CURLOPT(CURLOPT_SSL_FALSESTART, CURLOPTTYPE_LONG, 233), - - /* Do not squash dot-dot sequences */ - CURLOPT(CURLOPT_PATH_AS_IS, CURLOPTTYPE_LONG, 234), - - /* Proxy Service Name */ - CURLOPT(CURLOPT_PROXY_SERVICE_NAME, CURLOPTTYPE_STRINGPOINT, 235), - - /* Service Name */ - CURLOPT(CURLOPT_SERVICE_NAME, CURLOPTTYPE_STRINGPOINT, 236), - - /* Wait/don't wait for pipe/mutex to clarify */ - CURLOPT(CURLOPT_PIPEWAIT, CURLOPTTYPE_LONG, 237), - - /* Set the protocol used when curl is given a URL without a protocol */ - CURLOPT(CURLOPT_DEFAULT_PROTOCOL, CURLOPTTYPE_STRINGPOINT, 238), - - /* Set stream weight, 1 - 256 (default is 16) */ - CURLOPT(CURLOPT_STREAM_WEIGHT, CURLOPTTYPE_LONG, 239), - - /* Set stream dependency on another CURL handle */ - CURLOPT(CURLOPT_STREAM_DEPENDS, CURLOPTTYPE_OBJECTPOINT, 240), - - /* Set E-xclusive stream dependency on another CURL handle */ - CURLOPT(CURLOPT_STREAM_DEPENDS_E, CURLOPTTYPE_OBJECTPOINT, 241), - - /* Do not send any tftp option requests to the server */ - CURLOPT(CURLOPT_TFTP_NO_OPTIONS, CURLOPTTYPE_LONG, 242), - - /* Linked-list of host:port:connect-to-host:connect-to-port, - overrides the URL's host:port (only for the network layer) */ - CURLOPT(CURLOPT_CONNECT_TO, CURLOPTTYPE_SLISTPOINT, 243), - - /* Set TCP Fast Open */ - CURLOPT(CURLOPT_TCP_FASTOPEN, CURLOPTTYPE_LONG, 244), - - /* Continue to send data if the server responds early with an - * HTTP status code >= 300 */ - CURLOPT(CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPTTYPE_LONG, 245), - - /* The CApath or CAfile used to validate the proxy certificate - this option is used only if PROXY_SSL_VERIFYPEER is true */ - CURLOPT(CURLOPT_PROXY_CAINFO, CURLOPTTYPE_STRINGPOINT, 246), - - /* The CApath directory used to validate the proxy certificate - this option is used only if PROXY_SSL_VERIFYPEER is true */ - CURLOPT(CURLOPT_PROXY_CAPATH, CURLOPTTYPE_STRINGPOINT, 247), - - /* Set if we should verify the proxy in ssl handshake, - set 1 to verify. */ - CURLOPT(CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 248), - - /* Set if we should verify the Common name from the proxy certificate in ssl - * handshake, set 1 to check existence, 2 to ensure that it matches - * the provided hostname. */ - CURLOPT(CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 249), - - /* What version to specifically try to use for proxy. - See CURL_SSLVERSION defines below. */ - CURLOPT(CURLOPT_PROXY_SSLVERSION, CURLOPTTYPE_VALUES, 250), - - /* Set a username for authenticated TLS for proxy */ - CURLOPT(CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPTTYPE_STRINGPOINT, 251), - - /* Set a password for authenticated TLS for proxy */ - CURLOPT(CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPTTYPE_STRINGPOINT, 252), - - /* Set authentication type for authenticated TLS for proxy */ - CURLOPT(CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPTTYPE_STRINGPOINT, 253), - - /* name of the file keeping your private SSL-certificate for proxy */ - CURLOPT(CURLOPT_PROXY_SSLCERT, CURLOPTTYPE_STRINGPOINT, 254), - - /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") for - proxy */ - CURLOPT(CURLOPT_PROXY_SSLCERTTYPE, CURLOPTTYPE_STRINGPOINT, 255), - - /* name of the file keeping your private SSL-key for proxy */ - CURLOPT(CURLOPT_PROXY_SSLKEY, CURLOPTTYPE_STRINGPOINT, 256), - - /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") for - proxy */ - CURLOPT(CURLOPT_PROXY_SSLKEYTYPE, CURLOPTTYPE_STRINGPOINT, 257), - - /* password for the SSL private key for proxy */ - CURLOPT(CURLOPT_PROXY_KEYPASSWD, CURLOPTTYPE_STRINGPOINT, 258), - - /* Specify which SSL ciphers to use for proxy */ - CURLOPT(CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 259), - - /* CRL file for proxy */ - CURLOPT(CURLOPT_PROXY_CRLFILE, CURLOPTTYPE_STRINGPOINT, 260), - - /* Enable/disable specific SSL features with a bitmask for proxy, see - CURLSSLOPT_* */ - CURLOPT(CURLOPT_PROXY_SSL_OPTIONS, CURLOPTTYPE_LONG, 261), - - /* Name of pre proxy to use. */ - CURLOPT(CURLOPT_PRE_PROXY, CURLOPTTYPE_STRINGPOINT, 262), - - /* The public key in DER form used to validate the proxy public key - this option is used only if PROXY_SSL_VERIFYPEER is true */ - CURLOPT(CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPTTYPE_STRINGPOINT, 263), - - /* Path to an abstract Unix domain socket */ - CURLOPT(CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPTTYPE_STRINGPOINT, 264), - - /* Suppress proxy CONNECT response headers from user callbacks */ - CURLOPT(CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPTTYPE_LONG, 265), - - /* The request target, instead of extracted from the URL */ - CURLOPT(CURLOPT_REQUEST_TARGET, CURLOPTTYPE_STRINGPOINT, 266), - - /* bitmask of allowed auth methods for connections to SOCKS5 proxies */ - CURLOPT(CURLOPT_SOCKS5_AUTH, CURLOPTTYPE_LONG, 267), - - /* Enable/disable SSH compression */ - CURLOPT(CURLOPT_SSH_COMPRESSION, CURLOPTTYPE_LONG, 268), - - /* Post MIME data. */ - CURLOPT(CURLOPT_MIMEPOST, CURLOPTTYPE_OBJECTPOINT, 269), - - /* Time to use with the CURLOPT_TIMECONDITION. Specified in number of - seconds since 1 Jan 1970. */ - CURLOPT(CURLOPT_TIMEVALUE_LARGE, CURLOPTTYPE_OFF_T, 270), - - /* Head start in milliseconds to give happy eyeballs. */ - CURLOPT(CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPTTYPE_LONG, 271), - - /* Function that will be called before a resolver request is made */ - CURLOPT(CURLOPT_RESOLVER_START_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 272), - - /* User data to pass to the resolver start callback. */ - CURLOPT(CURLOPT_RESOLVER_START_DATA, CURLOPTTYPE_CBPOINT, 273), - - /* send HAProxy PROXY protocol header? */ - CURLOPT(CURLOPT_HAPROXYPROTOCOL, CURLOPTTYPE_LONG, 274), - - /* shuffle addresses before use when DNS returns multiple */ - CURLOPT(CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPTTYPE_LONG, 275), - - /* Specify which TLS 1.3 ciphers suites to use */ - CURLOPT(CURLOPT_TLS13_CIPHERS, CURLOPTTYPE_STRINGPOINT, 276), - CURLOPT(CURLOPT_PROXY_TLS13_CIPHERS, CURLOPTTYPE_STRINGPOINT, 277), - - /* Disallow specifying username/login in URL. */ - CURLOPT(CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPTTYPE_LONG, 278), - - /* DNS-over-HTTPS URL */ - CURLOPT(CURLOPT_DOH_URL, CURLOPTTYPE_STRINGPOINT, 279), - - /* Preferred buffer size to use for uploads */ - CURLOPT(CURLOPT_UPLOAD_BUFFERSIZE, CURLOPTTYPE_LONG, 280), - - /* Time in ms between connection upkeep calls for long-lived connections. */ - CURLOPT(CURLOPT_UPKEEP_INTERVAL_MS, CURLOPTTYPE_LONG, 281), - - /* Specify URL using CURL URL API. */ - CURLOPT(CURLOPT_CURLU, CURLOPTTYPE_OBJECTPOINT, 282), - - /* add trailing data just after no more data is available */ - CURLOPT(CURLOPT_TRAILERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 283), - - /* pointer to be passed to HTTP_TRAILER_FUNCTION */ - CURLOPT(CURLOPT_TRAILERDATA, CURLOPTTYPE_CBPOINT, 284), - - /* set this to 1L to allow HTTP/0.9 responses or 0L to disallow */ - CURLOPT(CURLOPT_HTTP09_ALLOWED, CURLOPTTYPE_LONG, 285), - - /* alt-svc control bitmask */ - CURLOPT(CURLOPT_ALTSVC_CTRL, CURLOPTTYPE_LONG, 286), - - /* alt-svc cache file name to possibly read from/write to */ - CURLOPT(CURLOPT_ALTSVC, CURLOPTTYPE_STRINGPOINT, 287), - - /* maximum age (idle time) of a connection to consider it for reuse - * (in seconds) */ - CURLOPT(CURLOPT_MAXAGE_CONN, CURLOPTTYPE_LONG, 288), - - /* SASL authorization identity */ - CURLOPT(CURLOPT_SASL_AUTHZID, CURLOPTTYPE_STRINGPOINT, 289), - - /* allow RCPT TO command to fail for some recipients */ - CURLOPT(CURLOPT_MAIL_RCPT_ALLLOWFAILS, CURLOPTTYPE_LONG, 290), - - /* the private SSL-certificate as a "blob" */ - CURLOPT(CURLOPT_SSLCERT_BLOB, CURLOPTTYPE_BLOB, 291), - CURLOPT(CURLOPT_SSLKEY_BLOB, CURLOPTTYPE_BLOB, 292), - CURLOPT(CURLOPT_PROXY_SSLCERT_BLOB, CURLOPTTYPE_BLOB, 293), - CURLOPT(CURLOPT_PROXY_SSLKEY_BLOB, CURLOPTTYPE_BLOB, 294), - CURLOPT(CURLOPT_ISSUERCERT_BLOB, CURLOPTTYPE_BLOB, 295), - - /* Issuer certificate for proxy */ - CURLOPT(CURLOPT_PROXY_ISSUERCERT, CURLOPTTYPE_STRINGPOINT, 296), - CURLOPT(CURLOPT_PROXY_ISSUERCERT_BLOB, CURLOPTTYPE_BLOB, 297), - - /* the EC curves requested by the TLS client (RFC 8422, 5.1); - * OpenSSL support via 'set_groups'/'set_curves': - * https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set1_groups.html - */ - CURLOPT(CURLOPT_SSL_EC_CURVES, CURLOPTTYPE_STRINGPOINT, 298), - - /* HSTS bitmask */ - CURLOPT(CURLOPT_HSTS_CTRL, CURLOPTTYPE_LONG, 299), - /* HSTS file name */ - CURLOPT(CURLOPT_HSTS, CURLOPTTYPE_STRINGPOINT, 300), - - /* HSTS read callback */ - CURLOPT(CURLOPT_HSTSREADFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 301), - CURLOPT(CURLOPT_HSTSREADDATA, CURLOPTTYPE_CBPOINT, 302), - - /* HSTS write callback */ - CURLOPT(CURLOPT_HSTSWRITEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 303), - CURLOPT(CURLOPT_HSTSWRITEDATA, CURLOPTTYPE_CBPOINT, 304), - - /* Parameters for V4 signature */ - CURLOPT(CURLOPT_AWS_SIGV4, CURLOPTTYPE_STRINGPOINT, 305), - - /* Same as CURLOPT_SSL_VERIFYPEER but for DoH (DNS-over-HTTPS) servers. */ - CURLOPT(CURLOPT_DOH_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 306), - - /* Same as CURLOPT_SSL_VERIFYHOST but for DoH (DNS-over-HTTPS) servers. */ - CURLOPT(CURLOPT_DOH_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 307), - - /* Same as CURLOPT_SSL_VERIFYSTATUS but for DoH (DNS-over-HTTPS) servers. */ - CURLOPT(CURLOPT_DOH_SSL_VERIFYSTATUS, CURLOPTTYPE_LONG, 308), - - /* The CA certificates as "blob" used to validate the peer certificate - this option is used only if SSL_VERIFYPEER is true */ - CURLOPT(CURLOPT_CAINFO_BLOB, CURLOPTTYPE_BLOB, 309), - - /* The CA certificates as "blob" used to validate the proxy certificate - this option is used only if PROXY_SSL_VERIFYPEER is true */ - CURLOPT(CURLOPT_PROXY_CAINFO_BLOB, CURLOPTTYPE_BLOB, 310), - - /* used by scp/sftp to verify the host's public key */ - CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256, CURLOPTTYPE_STRINGPOINT, 311), - - /* Function that will be called immediately before the initial request - is made on a connection (after any protocol negotiation step). */ - CURLOPT(CURLOPT_PREREQFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 312), - - /* Data passed to the CURLOPT_PREREQFUNCTION callback */ - CURLOPT(CURLOPT_PREREQDATA, CURLOPTTYPE_CBPOINT, 313), - - /* maximum age (since creation) of a connection to consider it for reuse - * (in seconds) */ - CURLOPT(CURLOPT_MAXLIFETIME_CONN, CURLOPTTYPE_LONG, 314), - - /* Set MIME option flags. */ - CURLOPT(CURLOPT_MIME_OPTIONS, CURLOPTTYPE_LONG, 315), - - /* set the SSH host key callback, must point to a curl_sshkeycallback - function */ - CURLOPT(CURLOPT_SSH_HOSTKEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 316), - - /* set the SSH host key callback custom pointer */ - CURLOPT(CURLOPT_SSH_HOSTKEYDATA, CURLOPTTYPE_CBPOINT, 317), - - /* specify which protocols that are allowed to be used for the transfer, - which thus helps the app which takes URLs from users or other external - inputs and want to restrict what protocol(s) to deal with. Defaults to - all built-in protocols. */ - CURLOPT(CURLOPT_PROTOCOLS_STR, CURLOPTTYPE_STRINGPOINT, 318), - - /* specify which protocols that libcurl is allowed to follow directs to */ - CURLOPT(CURLOPT_REDIR_PROTOCOLS_STR, CURLOPTTYPE_STRINGPOINT, 319), - - /* websockets options */ - CURLOPT(CURLOPT_WS_OPTIONS, CURLOPTTYPE_LONG, 320), - - /* CA cache timeout */ - CURLOPT(CURLOPT_CA_CACHE_TIMEOUT, CURLOPTTYPE_LONG, 321), - - /* Can leak things, gonna exit() soon */ - CURLOPT(CURLOPT_QUICK_EXIT, CURLOPTTYPE_LONG, 322), - - CURLOPT_LASTENTRY /* the last unused */ -} CURLoption; - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Backwards compatibility with older names */ -/* These are scheduled to disappear by 2011 */ - -/* This was added in version 7.19.1 */ -#define CURLOPT_POST301 CURLOPT_POSTREDIR - -/* These are scheduled to disappear by 2009 */ - -/* The following were added in 7.17.0 */ -#define CURLOPT_SSLKEYPASSWD CURLOPT_KEYPASSWD -#define CURLOPT_FTPAPPEND CURLOPT_APPEND -#define CURLOPT_FTPLISTONLY CURLOPT_DIRLISTONLY -#define CURLOPT_FTP_SSL CURLOPT_USE_SSL - -/* The following were added earlier */ - -#define CURLOPT_SSLCERTPASSWD CURLOPT_KEYPASSWD -#define CURLOPT_KRB4LEVEL CURLOPT_KRBLEVEL - -/* */ -#define CURLOPT_FTP_RESPONSE_TIMEOUT CURLOPT_SERVER_RESPONSE_TIMEOUT - -#else -/* This is set if CURL_NO_OLDIES is defined at compile-time */ -#undef CURLOPT_DNS_USE_GLOBAL_CACHE /* soon obsolete */ -#endif - - - /* Below here follows defines for the CURLOPT_IPRESOLVE option. If a host - name resolves addresses using more than one IP protocol version, this - option might be handy to force libcurl to use a specific IP version. */ -#define CURL_IPRESOLVE_WHATEVER 0 /* default, uses addresses to all IP - versions that your system allows */ -#define CURL_IPRESOLVE_V4 1 /* uses only IPv4 addresses/connections */ -#define CURL_IPRESOLVE_V6 2 /* uses only IPv6 addresses/connections */ - - /* Convenient "aliases" */ -#define CURLOPT_RTSPHEADER CURLOPT_HTTPHEADER - - /* These enums are for use with the CURLOPT_HTTP_VERSION option. */ -enum { - CURL_HTTP_VERSION_NONE, /* setting this means we don't care, and that we'd - like the library to choose the best possible - for us! */ - CURL_HTTP_VERSION_1_0, /* please use HTTP 1.0 in the request */ - CURL_HTTP_VERSION_1_1, /* please use HTTP 1.1 in the request */ - CURL_HTTP_VERSION_2_0, /* please use HTTP 2 in the request */ - CURL_HTTP_VERSION_2TLS, /* use version 2 for HTTPS, version 1.1 for HTTP */ - CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, /* please use HTTP 2 without HTTP/1.1 - Upgrade */ - CURL_HTTP_VERSION_3 = 30, /* Use HTTP/3, fallback to HTTP/2 or HTTP/1 if - needed. For HTTPS only. For HTTP, this option - makes libcurl return error. */ - CURL_HTTP_VERSION_3ONLY = 31, /* Use HTTP/3 without fallback. For HTTPS - only. For HTTP, this makes libcurl - return error. */ - - CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */ -}; - -/* Convenience definition simple because the name of the version is HTTP/2 and - not 2.0. The 2_0 version of the enum name was set while the version was - still planned to be 2.0 and we stick to it for compatibility. */ -#define CURL_HTTP_VERSION_2 CURL_HTTP_VERSION_2_0 - -/* - * Public API enums for RTSP requests - */ -enum { - CURL_RTSPREQ_NONE, /* first in list */ - CURL_RTSPREQ_OPTIONS, - CURL_RTSPREQ_DESCRIBE, - CURL_RTSPREQ_ANNOUNCE, - CURL_RTSPREQ_SETUP, - CURL_RTSPREQ_PLAY, - CURL_RTSPREQ_PAUSE, - CURL_RTSPREQ_TEARDOWN, - CURL_RTSPREQ_GET_PARAMETER, - CURL_RTSPREQ_SET_PARAMETER, - CURL_RTSPREQ_RECORD, - CURL_RTSPREQ_RECEIVE, - CURL_RTSPREQ_LAST /* last in list */ -}; - - /* These enums are for use with the CURLOPT_NETRC option. */ -enum CURL_NETRC_OPTION { - CURL_NETRC_IGNORED, /* The .netrc will never be read. - * This is the default. */ - CURL_NETRC_OPTIONAL, /* A user:password in the URL will be preferred - * to one in the .netrc. */ - CURL_NETRC_REQUIRED, /* A user:password in the URL will be ignored. - * Unless one is set programmatically, the .netrc - * will be queried. */ - CURL_NETRC_LAST -}; - -enum { - CURL_SSLVERSION_DEFAULT, - CURL_SSLVERSION_TLSv1, /* TLS 1.x */ - CURL_SSLVERSION_SSLv2, - CURL_SSLVERSION_SSLv3, - CURL_SSLVERSION_TLSv1_0, - CURL_SSLVERSION_TLSv1_1, - CURL_SSLVERSION_TLSv1_2, - CURL_SSLVERSION_TLSv1_3, - - CURL_SSLVERSION_LAST /* never use, keep last */ -}; - -enum { - CURL_SSLVERSION_MAX_NONE = 0, - CURL_SSLVERSION_MAX_DEFAULT = (CURL_SSLVERSION_TLSv1 << 16), - CURL_SSLVERSION_MAX_TLSv1_0 = (CURL_SSLVERSION_TLSv1_0 << 16), - CURL_SSLVERSION_MAX_TLSv1_1 = (CURL_SSLVERSION_TLSv1_1 << 16), - CURL_SSLVERSION_MAX_TLSv1_2 = (CURL_SSLVERSION_TLSv1_2 << 16), - CURL_SSLVERSION_MAX_TLSv1_3 = (CURL_SSLVERSION_TLSv1_3 << 16), - - /* never use, keep last */ - CURL_SSLVERSION_MAX_LAST = (CURL_SSLVERSION_LAST << 16) -}; - -enum CURL_TLSAUTH { - CURL_TLSAUTH_NONE, - CURL_TLSAUTH_SRP, - CURL_TLSAUTH_LAST /* never use, keep last */ -}; - -/* symbols to use with CURLOPT_POSTREDIR. - CURL_REDIR_POST_301, CURL_REDIR_POST_302 and CURL_REDIR_POST_303 - can be bitwise ORed so that CURL_REDIR_POST_301 | CURL_REDIR_POST_302 - | CURL_REDIR_POST_303 == CURL_REDIR_POST_ALL */ - -#define CURL_REDIR_GET_ALL 0 -#define CURL_REDIR_POST_301 1 -#define CURL_REDIR_POST_302 2 -#define CURL_REDIR_POST_303 4 -#define CURL_REDIR_POST_ALL \ - (CURL_REDIR_POST_301|CURL_REDIR_POST_302|CURL_REDIR_POST_303) - -typedef enum { - CURL_TIMECOND_NONE, - - CURL_TIMECOND_IFMODSINCE, - CURL_TIMECOND_IFUNMODSINCE, - CURL_TIMECOND_LASTMOD, - - CURL_TIMECOND_LAST -} curl_TimeCond; - -/* Special size_t value signaling a null-terminated string. */ -#define CURL_ZERO_TERMINATED ((size_t) -1) - -/* curl_strequal() and curl_strnequal() are subject for removal in a future - release */ -CURL_EXTERN int curl_strequal(const char *s1, const char *s2); -CURL_EXTERN int curl_strnequal(const char *s1, const char *s2, size_t n); - -/* Mime/form handling support. */ -typedef struct curl_mime curl_mime; /* Mime context. */ -typedef struct curl_mimepart curl_mimepart; /* Mime part context. */ - -/* CURLMIMEOPT_ defines are for the CURLOPT_MIME_OPTIONS option. */ -#define CURLMIMEOPT_FORMESCAPE (1<<0) /* Use backslash-escaping for forms. */ - -/* - * NAME curl_mime_init() - * - * DESCRIPTION - * - * Create a mime context and return its handle. The easy parameter is the - * target handle. - */ -CURL_EXTERN curl_mime *curl_mime_init(CURL *easy); - -/* - * NAME curl_mime_free() - * - * DESCRIPTION - * - * release a mime handle and its substructures. - */ -CURL_EXTERN void curl_mime_free(curl_mime *mime); - -/* - * NAME curl_mime_addpart() - * - * DESCRIPTION - * - * Append a new empty part to the given mime context and return a handle to - * the created part. - */ -CURL_EXTERN curl_mimepart *curl_mime_addpart(curl_mime *mime); - -/* - * NAME curl_mime_name() - * - * DESCRIPTION - * - * Set mime/form part name. - */ -CURL_EXTERN CURLcode curl_mime_name(curl_mimepart *part, const char *name); - -/* - * NAME curl_mime_filename() - * - * DESCRIPTION - * - * Set mime part remote file name. - */ -CURL_EXTERN CURLcode curl_mime_filename(curl_mimepart *part, - const char *filename); - -/* - * NAME curl_mime_type() - * - * DESCRIPTION - * - * Set mime part type. - */ -CURL_EXTERN CURLcode curl_mime_type(curl_mimepart *part, const char *mimetype); - -/* - * NAME curl_mime_encoder() - * - * DESCRIPTION - * - * Set mime data transfer encoder. - */ -CURL_EXTERN CURLcode curl_mime_encoder(curl_mimepart *part, - const char *encoding); - -/* - * NAME curl_mime_data() - * - * DESCRIPTION - * - * Set mime part data source from memory data, - */ -CURL_EXTERN CURLcode curl_mime_data(curl_mimepart *part, - const char *data, size_t datasize); - -/* - * NAME curl_mime_filedata() - * - * DESCRIPTION - * - * Set mime part data source from named file. - */ -CURL_EXTERN CURLcode curl_mime_filedata(curl_mimepart *part, - const char *filename); - -/* - * NAME curl_mime_data_cb() - * - * DESCRIPTION - * - * Set mime part data source from callback function. - */ -CURL_EXTERN CURLcode curl_mime_data_cb(curl_mimepart *part, - curl_off_t datasize, - curl_read_callback readfunc, - curl_seek_callback seekfunc, - curl_free_callback freefunc, - void *arg); - -/* - * NAME curl_mime_subparts() - * - * DESCRIPTION - * - * Set mime part data source from subparts. - */ -CURL_EXTERN CURLcode curl_mime_subparts(curl_mimepart *part, - curl_mime *subparts); -/* - * NAME curl_mime_headers() - * - * DESCRIPTION - * - * Set mime part headers. - */ -CURL_EXTERN CURLcode curl_mime_headers(curl_mimepart *part, - struct curl_slist *headers, - int take_ownership); - -typedef enum { - /********* the first one is unused ************/ - CURLFORM_NOTHING CURL_DEPRECATED(7.56.0, ""), - CURLFORM_COPYNAME CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"), - CURLFORM_PTRNAME CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"), - CURLFORM_NAMELENGTH CURL_DEPRECATED(7.56.0, ""), - CURLFORM_COPYCONTENTS CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), - CURLFORM_PTRCONTENTS CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), - CURLFORM_CONTENTSLENGTH CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), - CURLFORM_FILECONTENT CURL_DEPRECATED(7.56.0, "Use curl_mime_data_cb()"), - CURLFORM_ARRAY CURL_DEPRECATED(7.56.0, ""), - CURLFORM_OBSOLETE, - CURLFORM_FILE CURL_DEPRECATED(7.56.0, "Use curl_mime_filedata()"), - - CURLFORM_BUFFER CURL_DEPRECATED(7.56.0, "Use curl_mime_filename()"), - CURLFORM_BUFFERPTR CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), - CURLFORM_BUFFERLENGTH CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), - - CURLFORM_CONTENTTYPE CURL_DEPRECATED(7.56.0, "Use curl_mime_type()"), - CURLFORM_CONTENTHEADER CURL_DEPRECATED(7.56.0, "Use curl_mime_headers()"), - CURLFORM_FILENAME CURL_DEPRECATED(7.56.0, "Use curl_mime_filename()"), - CURLFORM_END, - CURLFORM_OBSOLETE2, - - CURLFORM_STREAM CURL_DEPRECATED(7.56.0, "Use curl_mime_data_cb()"), - CURLFORM_CONTENTLEN /* added in 7.46.0, provide a curl_off_t length */ - CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"), - - CURLFORM_LASTENTRY /* the last unused */ -} CURLformoption; - -/* structure to be used as parameter for CURLFORM_ARRAY */ -struct curl_forms { - CURLformoption option; - const char *value; -}; - -/* use this for multipart formpost building */ -/* Returns code for curl_formadd() - * - * Returns: - * CURL_FORMADD_OK on success - * CURL_FORMADD_MEMORY if the FormInfo allocation fails - * CURL_FORMADD_OPTION_TWICE if one option is given twice for one Form - * CURL_FORMADD_NULL if a null pointer was given for a char - * CURL_FORMADD_MEMORY if the allocation of a FormInfo struct failed - * CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used - * CURL_FORMADD_INCOMPLETE if the some FormInfo is not complete (or error) - * CURL_FORMADD_MEMORY if a curl_httppost struct cannot be allocated - * CURL_FORMADD_MEMORY if some allocation for string copying failed. - * CURL_FORMADD_ILLEGAL_ARRAY if an illegal option is used in an array - * - ***************************************************************************/ -typedef enum { - CURL_FORMADD_OK CURL_DEPRECATED(7.56.0, ""), /* 1st, no error */ - - CURL_FORMADD_MEMORY CURL_DEPRECATED(7.56.0, ""), - CURL_FORMADD_OPTION_TWICE CURL_DEPRECATED(7.56.0, ""), - CURL_FORMADD_NULL CURL_DEPRECATED(7.56.0, ""), - CURL_FORMADD_UNKNOWN_OPTION CURL_DEPRECATED(7.56.0, ""), - CURL_FORMADD_INCOMPLETE CURL_DEPRECATED(7.56.0, ""), - CURL_FORMADD_ILLEGAL_ARRAY CURL_DEPRECATED(7.56.0, ""), - /* libcurl was built with form api disabled */ - CURL_FORMADD_DISABLED CURL_DEPRECATED(7.56.0, ""), - - CURL_FORMADD_LAST /* last */ -} CURLFORMcode; - -/* - * NAME curl_formadd() - * - * DESCRIPTION - * - * Pretty advanced function for building multi-part formposts. Each invoke - * adds one part that together construct a full post. Then use - * CURLOPT_HTTPPOST to send it off to libcurl. - */ -CURL_EXTERN CURLFORMcode CURL_DEPRECATED(7.56.0, "Use curl_mime_init()") -curl_formadd(struct curl_httppost **httppost, - struct curl_httppost **last_post, - ...); - -/* - * callback function for curl_formget() - * The void *arg pointer will be the one passed as second argument to - * curl_formget(). - * The character buffer passed to it must not be freed. - * Should return the buffer length passed to it as the argument "len" on - * success. - */ -typedef size_t (*curl_formget_callback)(void *arg, const char *buf, - size_t len); - -/* - * NAME curl_formget() - * - * DESCRIPTION - * - * Serialize a curl_httppost struct built with curl_formadd(). - * Accepts a void pointer as second argument which will be passed to - * the curl_formget_callback function. - * Returns 0 on success. - */ -CURL_EXTERN int CURL_DEPRECATED(7.56.0, "") -curl_formget(struct curl_httppost *form, void *arg, - curl_formget_callback append); -/* - * NAME curl_formfree() - * - * DESCRIPTION - * - * Free a multipart formpost previously built with curl_formadd(). - */ -CURL_EXTERN void CURL_DEPRECATED(7.56.0, "Use curl_mime_free()") -curl_formfree(struct curl_httppost *form); - -/* - * NAME curl_getenv() - * - * DESCRIPTION - * - * Returns a malloc()'ed string that MUST be curl_free()ed after usage is - * complete. DEPRECATED - see lib/README.curlx - */ -CURL_EXTERN char *curl_getenv(const char *variable); - -/* - * NAME curl_version() - * - * DESCRIPTION - * - * Returns a static ascii string of the libcurl version. - */ -CURL_EXTERN char *curl_version(void); - -/* - * NAME curl_easy_escape() - * - * DESCRIPTION - * - * Escapes URL strings (converts all letters consider illegal in URLs to their - * %XX versions). This function returns a new allocated string or NULL if an - * error occurred. - */ -CURL_EXTERN char *curl_easy_escape(CURL *handle, - const char *string, - int length); - -/* the previous version: */ -CURL_EXTERN char *curl_escape(const char *string, - int length); - - -/* - * NAME curl_easy_unescape() - * - * DESCRIPTION - * - * Unescapes URL encoding in strings (converts all %XX codes to their 8bit - * versions). This function returns a new allocated string or NULL if an error - * occurred. - * Conversion Note: On non-ASCII platforms the ASCII %XX codes are - * converted into the host encoding. - */ -CURL_EXTERN char *curl_easy_unescape(CURL *handle, - const char *string, - int length, - int *outlength); - -/* the previous version */ -CURL_EXTERN char *curl_unescape(const char *string, - int length); - -/* - * NAME curl_free() - * - * DESCRIPTION - * - * Provided for de-allocation in the same translation unit that did the - * allocation. Added in libcurl 7.10 - */ -CURL_EXTERN void curl_free(void *p); - -/* - * NAME curl_global_init() - * - * DESCRIPTION - * - * curl_global_init() should be invoked exactly once for each application that - * uses libcurl and before any call of other libcurl functions. - - * This function is thread-safe if CURL_VERSION_THREADSAFE is set in the - * curl_version_info_data.features flag (fetch by curl_version_info()). - - */ -CURL_EXTERN CURLcode curl_global_init(long flags); - -/* - * NAME curl_global_init_mem() - * - * DESCRIPTION - * - * curl_global_init() or curl_global_init_mem() should be invoked exactly once - * for each application that uses libcurl. This function can be used to - * initialize libcurl and set user defined memory management callback - * functions. Users can implement memory management routines to check for - * memory leaks, check for mis-use of the curl library etc. User registered - * callback routines will be invoked by this library instead of the system - * memory management routines like malloc, free etc. - */ -CURL_EXTERN CURLcode curl_global_init_mem(long flags, - curl_malloc_callback m, - curl_free_callback f, - curl_realloc_callback r, - curl_strdup_callback s, - curl_calloc_callback c); - -/* - * NAME curl_global_cleanup() - * - * DESCRIPTION - * - * curl_global_cleanup() should be invoked exactly once for each application - * that uses libcurl - */ -CURL_EXTERN void curl_global_cleanup(void); - -/* linked-list structure for the CURLOPT_QUOTE option (and other) */ -struct curl_slist { - char *data; - struct curl_slist *next; -}; - -/* - * NAME curl_global_sslset() - * - * DESCRIPTION - * - * When built with multiple SSL backends, curl_global_sslset() allows to - * choose one. This function can only be called once, and it must be called - * *before* curl_global_init(). - * - * The backend can be identified by the id (e.g. CURLSSLBACKEND_OPENSSL). The - * backend can also be specified via the name parameter (passing -1 as id). - * If both id and name are specified, the name will be ignored. If neither id - * nor name are specified, the function will fail with - * CURLSSLSET_UNKNOWN_BACKEND and set the "avail" pointer to the - * NULL-terminated list of available backends. - * - * Upon success, the function returns CURLSSLSET_OK. - * - * If the specified SSL backend is not available, the function returns - * CURLSSLSET_UNKNOWN_BACKEND and sets the "avail" pointer to a NULL-terminated - * list of available SSL backends. - * - * The SSL backend can be set only once. If it has already been set, a - * subsequent attempt to change it will result in a CURLSSLSET_TOO_LATE. - */ - -struct curl_ssl_backend { - curl_sslbackend id; - const char *name; -}; -typedef struct curl_ssl_backend curl_ssl_backend; - -typedef enum { - CURLSSLSET_OK = 0, - CURLSSLSET_UNKNOWN_BACKEND, - CURLSSLSET_TOO_LATE, - CURLSSLSET_NO_BACKENDS /* libcurl was built without any SSL support */ -} CURLsslset; - -CURL_EXTERN CURLsslset curl_global_sslset(curl_sslbackend id, const char *name, - const curl_ssl_backend ***avail); - -/* - * NAME curl_slist_append() - * - * DESCRIPTION - * - * Appends a string to a linked list. If no list exists, it will be created - * first. Returns the new list, after appending. - */ -CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *list, - const char *data); - -/* - * NAME curl_slist_free_all() - * - * DESCRIPTION - * - * free a previously built curl_slist. - */ -CURL_EXTERN void curl_slist_free_all(struct curl_slist *list); - -/* - * NAME curl_getdate() - * - * DESCRIPTION - * - * Returns the time, in seconds since 1 Jan 1970 of the time string given in - * the first argument. The time argument in the second parameter is unused - * and should be set to NULL. - */ -CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused); - -/* info about the certificate chain, only for OpenSSL, GnuTLS, Schannel, NSS - and GSKit builds. Asked for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */ -struct curl_certinfo { - int num_of_certs; /* number of certificates with information */ - struct curl_slist **certinfo; /* for each index in this array, there's a - linked list with textual information in the - format "name: value" */ -}; - -/* Information about the SSL library used and the respective internal SSL - handle, which can be used to obtain further information regarding the - connection. Asked for with CURLINFO_TLS_SSL_PTR or CURLINFO_TLS_SESSION. */ -struct curl_tlssessioninfo { - curl_sslbackend backend; - void *internals; -}; - -#define CURLINFO_STRING 0x100000 -#define CURLINFO_LONG 0x200000 -#define CURLINFO_DOUBLE 0x300000 -#define CURLINFO_SLIST 0x400000 -#define CURLINFO_PTR 0x400000 /* same as SLIST */ -#define CURLINFO_SOCKET 0x500000 -#define CURLINFO_OFF_T 0x600000 -#define CURLINFO_MASK 0x0fffff -#define CURLINFO_TYPEMASK 0xf00000 - -typedef enum { - CURLINFO_NONE, /* first, never use this */ - CURLINFO_EFFECTIVE_URL = CURLINFO_STRING + 1, - CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2, - CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE + 3, - CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4, - CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5, - CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6, - CURLINFO_SIZE_UPLOAD CURL_DEPRECATED(7.55.0, "Use CURLINFO_SIZE_UPLOAD_T") - = CURLINFO_DOUBLE + 7, - CURLINFO_SIZE_UPLOAD_T = CURLINFO_OFF_T + 7, - CURLINFO_SIZE_DOWNLOAD - CURL_DEPRECATED(7.55.0, "Use CURLINFO_SIZE_DOWNLOAD_T") - = CURLINFO_DOUBLE + 8, - CURLINFO_SIZE_DOWNLOAD_T = CURLINFO_OFF_T + 8, - CURLINFO_SPEED_DOWNLOAD - CURL_DEPRECATED(7.55.0, "Use CURLINFO_SPEED_DOWNLOAD_T") - = CURLINFO_DOUBLE + 9, - CURLINFO_SPEED_DOWNLOAD_T = CURLINFO_OFF_T + 9, - CURLINFO_SPEED_UPLOAD - CURL_DEPRECATED(7.55.0, "Use CURLINFO_SPEED_UPLOAD_T") - = CURLINFO_DOUBLE + 10, - CURLINFO_SPEED_UPLOAD_T = CURLINFO_OFF_T + 10, - CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11, - CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12, - CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13, - CURLINFO_FILETIME = CURLINFO_LONG + 14, - CURLINFO_FILETIME_T = CURLINFO_OFF_T + 14, - CURLINFO_CONTENT_LENGTH_DOWNLOAD - CURL_DEPRECATED(7.55.0, - "Use CURLINFO_CONTENT_LENGTH_DOWNLOAD_T") - = CURLINFO_DOUBLE + 15, - CURLINFO_CONTENT_LENGTH_DOWNLOAD_T = CURLINFO_OFF_T + 15, - CURLINFO_CONTENT_LENGTH_UPLOAD - CURL_DEPRECATED(7.55.0, - "Use CURLINFO_CONTENT_LENGTH_UPLOAD_T") - = CURLINFO_DOUBLE + 16, - CURLINFO_CONTENT_LENGTH_UPLOAD_T = CURLINFO_OFF_T + 16, - CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17, - CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18, - CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19, - CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20, - CURLINFO_PRIVATE = CURLINFO_STRING + 21, - CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG + 22, - CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG + 23, - CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG + 24, - CURLINFO_OS_ERRNO = CURLINFO_LONG + 25, - CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26, - CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27, - CURLINFO_COOKIELIST = CURLINFO_SLIST + 28, - CURLINFO_LASTSOCKET CURL_DEPRECATED(7.45.0, "Use CURLINFO_ACTIVESOCKET") - = CURLINFO_LONG + 29, - CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30, - CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31, - CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32, - CURLINFO_APPCONNECT_TIME = CURLINFO_DOUBLE + 33, - CURLINFO_CERTINFO = CURLINFO_PTR + 34, - CURLINFO_CONDITION_UNMET = CURLINFO_LONG + 35, - CURLINFO_RTSP_SESSION_ID = CURLINFO_STRING + 36, - CURLINFO_RTSP_CLIENT_CSEQ = CURLINFO_LONG + 37, - CURLINFO_RTSP_SERVER_CSEQ = CURLINFO_LONG + 38, - CURLINFO_RTSP_CSEQ_RECV = CURLINFO_LONG + 39, - CURLINFO_PRIMARY_PORT = CURLINFO_LONG + 40, - CURLINFO_LOCAL_IP = CURLINFO_STRING + 41, - CURLINFO_LOCAL_PORT = CURLINFO_LONG + 42, - CURLINFO_TLS_SESSION CURL_DEPRECATED(7.48.0, "Use CURLINFO_TLS_SSL_PTR") - = CURLINFO_PTR + 43, - CURLINFO_ACTIVESOCKET = CURLINFO_SOCKET + 44, - CURLINFO_TLS_SSL_PTR = CURLINFO_PTR + 45, - CURLINFO_HTTP_VERSION = CURLINFO_LONG + 46, - CURLINFO_PROXY_SSL_VERIFYRESULT = CURLINFO_LONG + 47, - CURLINFO_PROTOCOL CURL_DEPRECATED(7.85.0, "Use CURLINFO_SCHEME") - = CURLINFO_LONG + 48, - CURLINFO_SCHEME = CURLINFO_STRING + 49, - CURLINFO_TOTAL_TIME_T = CURLINFO_OFF_T + 50, - CURLINFO_NAMELOOKUP_TIME_T = CURLINFO_OFF_T + 51, - CURLINFO_CONNECT_TIME_T = CURLINFO_OFF_T + 52, - CURLINFO_PRETRANSFER_TIME_T = CURLINFO_OFF_T + 53, - CURLINFO_STARTTRANSFER_TIME_T = CURLINFO_OFF_T + 54, - CURLINFO_REDIRECT_TIME_T = CURLINFO_OFF_T + 55, - CURLINFO_APPCONNECT_TIME_T = CURLINFO_OFF_T + 56, - CURLINFO_RETRY_AFTER = CURLINFO_OFF_T + 57, - CURLINFO_EFFECTIVE_METHOD = CURLINFO_STRING + 58, - CURLINFO_PROXY_ERROR = CURLINFO_LONG + 59, - CURLINFO_REFERER = CURLINFO_STRING + 60, - CURLINFO_CAINFO = CURLINFO_STRING + 61, - CURLINFO_CAPATH = CURLINFO_STRING + 62, - CURLINFO_LASTONE = 62 -} CURLINFO; - -/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as - CURLINFO_HTTP_CODE */ -#define CURLINFO_HTTP_CODE CURLINFO_RESPONSE_CODE - -typedef enum { - CURLCLOSEPOLICY_NONE, /* first, never use this */ - - CURLCLOSEPOLICY_OLDEST, - CURLCLOSEPOLICY_LEAST_RECENTLY_USED, - CURLCLOSEPOLICY_LEAST_TRAFFIC, - CURLCLOSEPOLICY_SLOWEST, - CURLCLOSEPOLICY_CALLBACK, - - CURLCLOSEPOLICY_LAST /* last, never use this */ -} curl_closepolicy; - -#define CURL_GLOBAL_SSL (1<<0) /* no purpose since 7.57.0 */ -#define CURL_GLOBAL_WIN32 (1<<1) -#define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32) -#define CURL_GLOBAL_NOTHING 0 -#define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL -#define CURL_GLOBAL_ACK_EINTR (1<<2) - - -/***************************************************************************** - * Setup defines, protos etc for the sharing stuff. - */ - -/* Different data locks for a single share */ -typedef enum { - CURL_LOCK_DATA_NONE = 0, - /* CURL_LOCK_DATA_SHARE is used internally to say that - * the locking is just made to change the internal state of the share - * itself. - */ - CURL_LOCK_DATA_SHARE, - CURL_LOCK_DATA_COOKIE, - CURL_LOCK_DATA_DNS, - CURL_LOCK_DATA_SSL_SESSION, - CURL_LOCK_DATA_CONNECT, - CURL_LOCK_DATA_PSL, - CURL_LOCK_DATA_HSTS, - CURL_LOCK_DATA_LAST -} curl_lock_data; - -/* Different lock access types */ -typedef enum { - CURL_LOCK_ACCESS_NONE = 0, /* unspecified action */ - CURL_LOCK_ACCESS_SHARED = 1, /* for read perhaps */ - CURL_LOCK_ACCESS_SINGLE = 2, /* for write perhaps */ - CURL_LOCK_ACCESS_LAST /* never use */ -} curl_lock_access; - -typedef void (*curl_lock_function)(CURL *handle, - curl_lock_data data, - curl_lock_access locktype, - void *userptr); -typedef void (*curl_unlock_function)(CURL *handle, - curl_lock_data data, - void *userptr); - - -typedef enum { - CURLSHE_OK, /* all is fine */ - CURLSHE_BAD_OPTION, /* 1 */ - CURLSHE_IN_USE, /* 2 */ - CURLSHE_INVALID, /* 3 */ - CURLSHE_NOMEM, /* 4 out of memory */ - CURLSHE_NOT_BUILT_IN, /* 5 feature not present in lib */ - CURLSHE_LAST /* never use */ -} CURLSHcode; - -typedef enum { - CURLSHOPT_NONE, /* don't use */ - CURLSHOPT_SHARE, /* specify a data type to share */ - CURLSHOPT_UNSHARE, /* specify which data type to stop sharing */ - CURLSHOPT_LOCKFUNC, /* pass in a 'curl_lock_function' pointer */ - CURLSHOPT_UNLOCKFUNC, /* pass in a 'curl_unlock_function' pointer */ - CURLSHOPT_USERDATA, /* pass in a user data pointer used in the lock/unlock - callback functions */ - CURLSHOPT_LAST /* never use */ -} CURLSHoption; - -CURL_EXTERN CURLSH *curl_share_init(void); -CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *share, CURLSHoption option, - ...); -CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *share); - -/**************************************************************************** - * Structures for querying information about the curl library at runtime. - */ - -typedef enum { - CURLVERSION_FIRST, - CURLVERSION_SECOND, - CURLVERSION_THIRD, - CURLVERSION_FOURTH, - CURLVERSION_FIFTH, - CURLVERSION_SIXTH, - CURLVERSION_SEVENTH, - CURLVERSION_EIGHTH, - CURLVERSION_NINTH, - CURLVERSION_TENTH, - CURLVERSION_ELEVENTH, - CURLVERSION_LAST /* never actually use this */ -} CURLversion; - -/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by - basically all programs ever that want to get version information. It is - meant to be a built-in version number for what kind of struct the caller - expects. If the struct ever changes, we redefine the NOW to another enum - from above. */ -#define CURLVERSION_NOW CURLVERSION_ELEVENTH - -struct curl_version_info_data { - CURLversion age; /* age of the returned struct */ - const char *version; /* LIBCURL_VERSION */ - unsigned int version_num; /* LIBCURL_VERSION_NUM */ - const char *host; /* OS/host/cpu/machine when configured */ - int features; /* bitmask, see defines below */ - const char *ssl_version; /* human readable string */ - long ssl_version_num; /* not used anymore, always 0 */ - const char *libz_version; /* human readable string */ - /* protocols is terminated by an entry with a NULL protoname */ - const char * const *protocols; - - /* The fields below this were added in CURLVERSION_SECOND */ - const char *ares; - int ares_num; - - /* This field was added in CURLVERSION_THIRD */ - const char *libidn; - - /* These field were added in CURLVERSION_FOURTH */ - - /* Same as '_libiconv_version' if built with HAVE_ICONV */ - int iconv_ver_num; - - const char *libssh_version; /* human readable string */ - - /* These fields were added in CURLVERSION_FIFTH */ - unsigned int brotli_ver_num; /* Numeric Brotli version - (MAJOR << 24) | (MINOR << 12) | PATCH */ - const char *brotli_version; /* human readable string. */ - - /* These fields were added in CURLVERSION_SIXTH */ - unsigned int nghttp2_ver_num; /* Numeric nghttp2 version - (MAJOR << 16) | (MINOR << 8) | PATCH */ - const char *nghttp2_version; /* human readable string. */ - const char *quic_version; /* human readable quic (+ HTTP/3) library + - version or NULL */ - - /* These fields were added in CURLVERSION_SEVENTH */ - const char *cainfo; /* the built-in default CURLOPT_CAINFO, might - be NULL */ - const char *capath; /* the built-in default CURLOPT_CAPATH, might - be NULL */ - - /* These fields were added in CURLVERSION_EIGHTH */ - unsigned int zstd_ver_num; /* Numeric Zstd version - (MAJOR << 24) | (MINOR << 12) | PATCH */ - const char *zstd_version; /* human readable string. */ - - /* These fields were added in CURLVERSION_NINTH */ - const char *hyper_version; /* human readable string. */ - - /* These fields were added in CURLVERSION_TENTH */ - const char *gsasl_version; /* human readable string. */ - - /* These fields were added in CURLVERSION_ELEVENTH */ - /* feature_names is terminated by an entry with a NULL feature name */ - const char * const *feature_names; -}; -typedef struct curl_version_info_data curl_version_info_data; - -#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ -#define CURL_VERSION_KERBEROS4 (1<<1) /* Kerberos V4 auth is supported - (deprecated) */ -#define CURL_VERSION_SSL (1<<2) /* SSL options are present */ -#define CURL_VERSION_LIBZ (1<<3) /* libz features are present */ -#define CURL_VERSION_NTLM (1<<4) /* NTLM auth is supported */ -#define CURL_VERSION_GSSNEGOTIATE (1<<5) /* Negotiate auth is supported - (deprecated) */ -#define CURL_VERSION_DEBUG (1<<6) /* Built with debug capabilities */ -#define CURL_VERSION_ASYNCHDNS (1<<7) /* Asynchronous DNS resolves */ -#define CURL_VERSION_SPNEGO (1<<8) /* SPNEGO auth is supported */ -#define CURL_VERSION_LARGEFILE (1<<9) /* Supports files larger than 2GB */ -#define CURL_VERSION_IDN (1<<10) /* Internationized Domain Names are - supported */ -#define CURL_VERSION_SSPI (1<<11) /* Built against Windows SSPI */ -#define CURL_VERSION_CONV (1<<12) /* Character conversions supported */ -#define CURL_VERSION_CURLDEBUG (1<<13) /* Debug memory tracking supported */ -#define CURL_VERSION_TLSAUTH_SRP (1<<14) /* TLS-SRP auth is supported */ -#define CURL_VERSION_NTLM_WB (1<<15) /* NTLM delegation to winbind helper - is supported */ -#define CURL_VERSION_HTTP2 (1<<16) /* HTTP2 support built-in */ -#define CURL_VERSION_GSSAPI (1<<17) /* Built against a GSS-API library */ -#define CURL_VERSION_KERBEROS5 (1<<18) /* Kerberos V5 auth is supported */ -#define CURL_VERSION_UNIX_SOCKETS (1<<19) /* Unix domain sockets support */ -#define CURL_VERSION_PSL (1<<20) /* Mozilla's Public Suffix List, used - for cookie domain verification */ -#define CURL_VERSION_HTTPS_PROXY (1<<21) /* HTTPS-proxy support built-in */ -#define CURL_VERSION_MULTI_SSL (1<<22) /* Multiple SSL backends available */ -#define CURL_VERSION_BROTLI (1<<23) /* Brotli features are present. */ -#define CURL_VERSION_ALTSVC (1<<24) /* Alt-Svc handling built-in */ -#define CURL_VERSION_HTTP3 (1<<25) /* HTTP3 support built-in */ -#define CURL_VERSION_ZSTD (1<<26) /* zstd features are present */ -#define CURL_VERSION_UNICODE (1<<27) /* Unicode support on Windows */ -#define CURL_VERSION_HSTS (1<<28) /* HSTS is supported */ -#define CURL_VERSION_GSASL (1<<29) /* libgsasl is supported */ -#define CURL_VERSION_THREADSAFE (1<<30) /* libcurl API is thread-safe */ - - /* - * NAME curl_version_info() - * - * DESCRIPTION - * - * This function returns a pointer to a static copy of the version info - * struct. See above. - */ -CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion); - -/* - * NAME curl_easy_strerror() - * - * DESCRIPTION - * - * The curl_easy_strerror function may be used to turn a CURLcode value - * into the equivalent human readable error string. This is useful - * for printing meaningful error messages. - */ -CURL_EXTERN const char *curl_easy_strerror(CURLcode); - -/* - * NAME curl_share_strerror() - * - * DESCRIPTION - * - * The curl_share_strerror function may be used to turn a CURLSHcode value - * into the equivalent human readable error string. This is useful - * for printing meaningful error messages. - */ -CURL_EXTERN const char *curl_share_strerror(CURLSHcode); - -/* - * NAME curl_easy_pause() - * - * DESCRIPTION - * - * The curl_easy_pause function pauses or unpauses transfers. Select the new - * state by setting the bitmask, use the convenience defines below. - * - */ -CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask); - -#define CURLPAUSE_RECV (1<<0) -#define CURLPAUSE_RECV_CONT (0) - -#define CURLPAUSE_SEND (1<<2) -#define CURLPAUSE_SEND_CONT (0) - -#define CURLPAUSE_ALL (CURLPAUSE_RECV|CURLPAUSE_SEND) -#define CURLPAUSE_CONT (CURLPAUSE_RECV_CONT|CURLPAUSE_SEND_CONT) - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif - -/* unfortunately, the easy.h and multi.h include files need options and info - stuff before they can be included! */ -#include "easy.h" /* nothing in curl is fun without the easy stuff */ -#include "multi.h" -#include "urlapi.h" -#include "options.h" -#include "header.h" -#include "websockets.h" - -/* the typechecker doesn't work in C++ (yet) */ -#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \ - ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \ - !defined(__cplusplus) && !defined(CURL_DISABLE_TYPECHECK) -#include "typecheck-gcc.h" -#else -#if defined(__STDC__) && (__STDC__ >= 1) -/* This preprocessor magic that replaces a call with the exact same call is - only done to make sure application authors pass exactly three arguments - to these functions. */ -#define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param) -#define curl_easy_getinfo(handle,info,arg) curl_easy_getinfo(handle,info,arg) -#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) -#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) -#endif /* __STDC__ >= 1 */ -#endif /* gcc >= 4.3 && !__cplusplus && !CURL_DISABLE_TYPECHECK */ - -#endif /* CURLINC_CURL_H */ diff --git a/packages/runtime/vendor/curl/include/curl/curlver.h b/packages/runtime/vendor/curl/include/curl/curlver.h deleted file mode 100644 index d59537120..000000000 --- a/packages/runtime/vendor/curl/include/curl/curlver.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef CURLINC_CURLVER_H -#define CURLINC_CURLVER_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ - -/* This header file contains nothing but libcurl version info, generated by - a script at release-time. This was made its own header file in 7.11.2 */ - -/* This is the global package copyright */ -#define LIBCURL_COPYRIGHT "Daniel Stenberg, ." - -/* This is the version number of the libcurl package from which this header - file origins: */ -#define LIBCURL_VERSION "7.88.1" - -/* The numeric version number is also available "in parts" by using these - defines: */ -#define LIBCURL_VERSION_MAJOR 7 -#define LIBCURL_VERSION_MINOR 88 -#define LIBCURL_VERSION_PATCH 1 - -/* This is the numeric version of the libcurl version number, meant for easier - parsing and comparisons by programs. The LIBCURL_VERSION_NUM define will - always follow this syntax: - - 0xXXYYZZ - - Where XX, YY and ZZ are the main version, release and patch numbers in - hexadecimal (using 8 bits each). All three numbers are always represented - using two digits. 1.2 would appear as "0x010200" while version 9.11.7 - appears as "0x090b07". - - This 6-digit (24 bits) hexadecimal number does not show pre-release number, - and it is always a greater number in a more recent release. It makes - comparisons with greater than and less than work. - - Note: This define is the full hex number and _does not_ use the - CURL_VERSION_BITS() macro since curl's own configure script greps for it - and needs it to contain the full number. -*/ -#define LIBCURL_VERSION_NUM 0x075801 - -/* - * This is the date and time when the full source package was created. The - * timestamp is not stored in git, as the timestamp is properly set in the - * tarballs by the maketgz script. - * - * The format of the date follows this template: - * - * "2007-11-23" - */ -#define LIBCURL_TIMESTAMP "2023-02-20" - -#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|(z)) -#define CURL_AT_LEAST_VERSION(x,y,z) \ - (LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z)) - -#endif /* CURLINC_CURLVER_H */ diff --git a/packages/runtime/vendor/curl/include/curl/easy.h b/packages/runtime/vendor/curl/include/curl/easy.h deleted file mode 100644 index 394668a8f..000000000 --- a/packages/runtime/vendor/curl/include/curl/easy.h +++ /dev/null @@ -1,125 +0,0 @@ -#ifndef CURLINC_EASY_H -#define CURLINC_EASY_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ -#ifdef __cplusplus -extern "C" { -#endif - -/* Flag bits in the curl_blob struct: */ -#define CURL_BLOB_COPY 1 /* tell libcurl to copy the data */ -#define CURL_BLOB_NOCOPY 0 /* tell libcurl to NOT copy the data */ - -struct curl_blob { - void *data; - size_t len; - unsigned int flags; /* bit 0 is defined, the rest are reserved and should be - left zeroes */ -}; - -CURL_EXTERN CURL *curl_easy_init(void); -CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); -CURL_EXTERN CURLcode curl_easy_perform(CURL *curl); -CURL_EXTERN void curl_easy_cleanup(CURL *curl); - -/* - * NAME curl_easy_getinfo() - * - * DESCRIPTION - * - * Request internal information from the curl session with this function. The - * third argument MUST be a pointer to a long, a pointer to a char * or a - * pointer to a double (as the documentation describes elsewhere). The data - * pointed to will be filled in accordingly and can be relied upon only if the - * function returns CURLE_OK. This function is intended to get used *AFTER* a - * performed transfer, all results from this function are undefined until the - * transfer is completed. - */ -CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); - - -/* - * NAME curl_easy_duphandle() - * - * DESCRIPTION - * - * Creates a new curl session handle with the same options set for the handle - * passed in. Duplicating a handle could only be a matter of cloning data and - * options, internal state info and things like persistent connections cannot - * be transferred. It is useful in multithreaded applications when you can run - * curl_easy_duphandle() for each new thread to avoid a series of identical - * curl_easy_setopt() invokes in every thread. - */ -CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl); - -/* - * NAME curl_easy_reset() - * - * DESCRIPTION - * - * Re-initializes a CURL handle to the default values. This puts back the - * handle to the same state as it was in when it was just created. - * - * It does keep: live connections, the Session ID cache, the DNS cache and the - * cookies. - */ -CURL_EXTERN void curl_easy_reset(CURL *curl); - -/* - * NAME curl_easy_recv() - * - * DESCRIPTION - * - * Receives data from the connected socket. Use after successful - * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. - */ -CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, - size_t *n); - -/* - * NAME curl_easy_send() - * - * DESCRIPTION - * - * Sends data over the connected socket. Use after successful - * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. - */ -CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, - size_t buflen, size_t *n); - - -/* - * NAME curl_easy_upkeep() - * - * DESCRIPTION - * - * Performs connection upkeep for the given session handle. - */ -CURL_EXTERN CURLcode curl_easy_upkeep(CURL *curl); - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif - -#endif diff --git a/packages/runtime/vendor/curl/include/curl/header.h b/packages/runtime/vendor/curl/include/curl/header.h deleted file mode 100644 index 8df11e1e4..000000000 --- a/packages/runtime/vendor/curl/include/curl/header.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef CURLINC_HEADER_H -#define CURLINC_HEADER_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -struct curl_header { - char *name; /* this might not use the same case */ - char *value; - size_t amount; /* number of headers using this name */ - size_t index; /* ... of this instance, 0 or higher */ - unsigned int origin; /* see bits below */ - void *anchor; /* handle privately used by libcurl */ -}; - -/* 'origin' bits */ -#define CURLH_HEADER (1<<0) /* plain server header */ -#define CURLH_TRAILER (1<<1) /* trailers */ -#define CURLH_CONNECT (1<<2) /* CONNECT headers */ -#define CURLH_1XX (1<<3) /* 1xx headers */ -#define CURLH_PSEUDO (1<<4) /* pseudo headers */ - -typedef enum { - CURLHE_OK, - CURLHE_BADINDEX, /* header exists but not with this index */ - CURLHE_MISSING, /* no such header exists */ - CURLHE_NOHEADERS, /* no headers at all exist (yet) */ - CURLHE_NOREQUEST, /* no request with this number was used */ - CURLHE_OUT_OF_MEMORY, /* out of memory while processing */ - CURLHE_BAD_ARGUMENT, /* a function argument was not okay */ - CURLHE_NOT_BUILT_IN /* if API was disabled in the build */ -} CURLHcode; - -CURL_EXTERN CURLHcode curl_easy_header(CURL *easy, - const char *name, - size_t index, - unsigned int origin, - int request, - struct curl_header **hout); - -CURL_EXTERN struct curl_header *curl_easy_nextheader(CURL *easy, - unsigned int origin, - int request, - struct curl_header *prev); - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif - -#endif /* CURLINC_HEADER_H */ diff --git a/packages/runtime/vendor/curl/include/curl/mprintf.h b/packages/runtime/vendor/curl/include/curl/mprintf.h deleted file mode 100644 index e652a6520..000000000 --- a/packages/runtime/vendor/curl/include/curl/mprintf.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef CURLINC_MPRINTF_H -#define CURLINC_MPRINTF_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ - -#include -#include /* needed for FILE */ -#include "curl.h" /* for CURL_EXTERN */ - -#ifdef __cplusplus -extern "C" { -#endif - -CURL_EXTERN int curl_mprintf(const char *format, ...); -CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...); -CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...); -CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, - const char *format, ...); -CURL_EXTERN int curl_mvprintf(const char *format, va_list args); -CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args); -CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args); -CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, - const char *format, va_list args); -CURL_EXTERN char *curl_maprintf(const char *format, ...); -CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif - -#endif /* CURLINC_MPRINTF_H */ diff --git a/packages/runtime/vendor/curl/include/curl/multi.h b/packages/runtime/vendor/curl/include/curl/multi.h deleted file mode 100644 index 30a3d9301..000000000 --- a/packages/runtime/vendor/curl/include/curl/multi.h +++ /dev/null @@ -1,460 +0,0 @@ -#ifndef CURLINC_MULTI_H -#define CURLINC_MULTI_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ -/* - This is an "external" header file. Don't give away any internals here! - - GOALS - - o Enable a "pull" interface. The application that uses libcurl decides where - and when to ask libcurl to get/send data. - - o Enable multiple simultaneous transfers in the same thread without making it - complicated for the application. - - o Enable the application to select() on its own file descriptors and curl's - file descriptors simultaneous easily. - -*/ - -/* - * This header file should not really need to include "curl.h" since curl.h - * itself includes this file and we expect user applications to do #include - * without the need for especially including multi.h. - * - * For some reason we added this include here at one point, and rather than to - * break existing (wrongly written) libcurl applications, we leave it as-is - * but with this warning attached. - */ -#include "curl.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) -typedef struct Curl_multi CURLM; -#else -typedef void CURLM; -#endif - -typedef enum { - CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or - curl_multi_socket*() soon */ - CURLM_OK, - CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */ - CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */ - CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */ - CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ - CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ - CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ - CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was - attempted to get added - again */ - CURLM_RECURSIVE_API_CALL, /* an api function was called from inside a - callback */ - CURLM_WAKEUP_FAILURE, /* wakeup is unavailable or failed */ - CURLM_BAD_FUNCTION_ARGUMENT, /* function called with a bad parameter */ - CURLM_ABORTED_BY_CALLBACK, - CURLM_UNRECOVERABLE_POLL, - CURLM_LAST -} CURLMcode; - -/* just to make code nicer when using curl_multi_socket() you can now check - for CURLM_CALL_MULTI_SOCKET too in the same style it works for - curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ -#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM - -/* bitmask bits for CURLMOPT_PIPELINING */ -#define CURLPIPE_NOTHING 0L -#define CURLPIPE_HTTP1 1L -#define CURLPIPE_MULTIPLEX 2L - -typedef enum { - CURLMSG_NONE, /* first, not used */ - CURLMSG_DONE, /* This easy handle has completed. 'result' contains - the CURLcode of the transfer */ - CURLMSG_LAST /* last, not used */ -} CURLMSG; - -struct CURLMsg { - CURLMSG msg; /* what this message means */ - CURL *easy_handle; /* the handle it concerns */ - union { - void *whatever; /* message-specific data */ - CURLcode result; /* return code for transfer */ - } data; -}; -typedef struct CURLMsg CURLMsg; - -/* Based on poll(2) structure and values. - * We don't use pollfd and POLL* constants explicitly - * to cover platforms without poll(). */ -#define CURL_WAIT_POLLIN 0x0001 -#define CURL_WAIT_POLLPRI 0x0002 -#define CURL_WAIT_POLLOUT 0x0004 - -struct curl_waitfd { - curl_socket_t fd; - short events; - short revents; /* not supported yet */ -}; - -/* - * Name: curl_multi_init() - * - * Desc: initialize multi-style curl usage - * - * Returns: a new CURLM handle to use in all 'curl_multi' functions. - */ -CURL_EXTERN CURLM *curl_multi_init(void); - -/* - * Name: curl_multi_add_handle() - * - * Desc: add a standard curl handle to the multi stack - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, - CURL *curl_handle); - - /* - * Name: curl_multi_remove_handle() - * - * Desc: removes a curl handle from the multi stack again - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle, - CURL *curl_handle); - - /* - * Name: curl_multi_fdset() - * - * Desc: Ask curl for its fd_set sets. The app can use these to select() or - * poll() on. We want curl_multi_perform() called as soon as one of - * them are ready. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, - fd_set *read_fd_set, - fd_set *write_fd_set, - fd_set *exc_fd_set, - int *max_fd); - -/* - * Name: curl_multi_wait() - * - * Desc: Poll on all fds within a CURLM set as well as any - * additional fds passed to the function. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle, - struct curl_waitfd extra_fds[], - unsigned int extra_nfds, - int timeout_ms, - int *ret); - -/* - * Name: curl_multi_poll() - * - * Desc: Poll on all fds within a CURLM set as well as any - * additional fds passed to the function. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_poll(CURLM *multi_handle, - struct curl_waitfd extra_fds[], - unsigned int extra_nfds, - int timeout_ms, - int *ret); - -/* - * Name: curl_multi_wakeup() - * - * Desc: wakes up a sleeping curl_multi_poll call. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_wakeup(CURLM *multi_handle); - - /* - * Name: curl_multi_perform() - * - * Desc: When the app thinks there's data available for curl it calls this - * function to read/write whatever there is right now. This returns - * as soon as the reads and writes are done. This function does not - * require that there actually is data available for reading or that - * data can be written, it can be called just in case. It returns - * the number of handles that still transfer data in the second - * argument's integer-pointer. - * - * Returns: CURLMcode type, general multi error code. *NOTE* that this only - * returns errors etc regarding the whole multi stack. There might - * still have occurred problems on individual transfers even when - * this returns OK. - */ -CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, - int *running_handles); - - /* - * Name: curl_multi_cleanup() - * - * Desc: Cleans up and removes a whole multi stack. It does not free or - * touch any individual easy handles in any way. We need to define - * in what state those handles will be if this function is called - * in the middle of a transfer. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); - -/* - * Name: curl_multi_info_read() - * - * Desc: Ask the multi handle if there's any messages/informationals from - * the individual transfers. Messages include informationals such as - * error code from the transfer or just the fact that a transfer is - * completed. More details on these should be written down as well. - * - * Repeated calls to this function will return a new struct each - * time, until a special "end of msgs" struct is returned as a signal - * that there is no more to get at this point. - * - * The data the returned pointer points to will not survive calling - * curl_multi_cleanup(). - * - * The 'CURLMsg' struct is meant to be very simple and only contain - * very basic information. If more involved information is wanted, - * we will provide the particular "transfer handle" in that struct - * and that should/could/would be used in subsequent - * curl_easy_getinfo() calls (or similar). The point being that we - * must never expose complex structs to applications, as then we'll - * undoubtably get backwards compatibility problems in the future. - * - * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out - * of structs. It also writes the number of messages left in the - * queue (after this read) in the integer the second argument points - * to. - */ -CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle, - int *msgs_in_queue); - -/* - * Name: curl_multi_strerror() - * - * Desc: The curl_multi_strerror function may be used to turn a CURLMcode - * value into the equivalent human readable error string. This is - * useful for printing meaningful error messages. - * - * Returns: A pointer to a null-terminated error message. - */ -CURL_EXTERN const char *curl_multi_strerror(CURLMcode); - -/* - * Name: curl_multi_socket() and - * curl_multi_socket_all() - * - * Desc: An alternative version of curl_multi_perform() that allows the - * application to pass in one of the file descriptors that have been - * detected to have "action" on them and let libcurl perform. - * See man page for details. - */ -#define CURL_POLL_NONE 0 -#define CURL_POLL_IN 1 -#define CURL_POLL_OUT 2 -#define CURL_POLL_INOUT 3 -#define CURL_POLL_REMOVE 4 - -#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD - -#define CURL_CSELECT_IN 0x01 -#define CURL_CSELECT_OUT 0x02 -#define CURL_CSELECT_ERR 0x04 - -typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */ - curl_socket_t s, /* socket */ - int what, /* see above */ - void *userp, /* private callback - pointer */ - void *socketp); /* private socket - pointer */ -/* - * Name: curl_multi_timer_callback - * - * Desc: Called by libcurl whenever the library detects a change in the - * maximum number of milliseconds the app is allowed to wait before - * curl_multi_socket() or curl_multi_perform() must be called - * (to allow libcurl's timed events to take place). - * - * Returns: The callback should return zero. - */ -typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ - long timeout_ms, /* see above */ - void *userp); /* private callback - pointer */ - -CURL_EXTERN CURLMcode CURL_DEPRECATED(7.19.5, "Use curl_multi_socket_action()") -curl_multi_socket(CURLM *multi_handle, curl_socket_t s, int *running_handles); - -CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, - curl_socket_t s, - int ev_bitmask, - int *running_handles); - -CURL_EXTERN CURLMcode CURL_DEPRECATED(7.19.5, "Use curl_multi_socket_action()") -curl_multi_socket_all(CURLM *multi_handle, int *running_handles); - -#ifndef CURL_ALLOW_OLD_MULTI_SOCKET -/* This macro below was added in 7.16.3 to push users who recompile to use - the new curl_multi_socket_action() instead of the old curl_multi_socket() -*/ -#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) -#endif - -/* - * Name: curl_multi_timeout() - * - * Desc: Returns the maximum number of milliseconds the app is allowed to - * wait before curl_multi_socket() or curl_multi_perform() must be - * called (to allow libcurl's timed events to take place). - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, - long *milliseconds); - -typedef enum { - /* This is the socket callback function pointer */ - CURLOPT(CURLMOPT_SOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 1), - - /* This is the argument passed to the socket callback */ - CURLOPT(CURLMOPT_SOCKETDATA, CURLOPTTYPE_OBJECTPOINT, 2), - - /* set to 1 to enable pipelining for this multi handle */ - CURLOPT(CURLMOPT_PIPELINING, CURLOPTTYPE_LONG, 3), - - /* This is the timer callback function pointer */ - CURLOPT(CURLMOPT_TIMERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 4), - - /* This is the argument passed to the timer callback */ - CURLOPT(CURLMOPT_TIMERDATA, CURLOPTTYPE_OBJECTPOINT, 5), - - /* maximum number of entries in the connection cache */ - CURLOPT(CURLMOPT_MAXCONNECTS, CURLOPTTYPE_LONG, 6), - - /* maximum number of (pipelining) connections to one host */ - CURLOPT(CURLMOPT_MAX_HOST_CONNECTIONS, CURLOPTTYPE_LONG, 7), - - /* maximum number of requests in a pipeline */ - CURLOPT(CURLMOPT_MAX_PIPELINE_LENGTH, CURLOPTTYPE_LONG, 8), - - /* a connection with a content-length longer than this - will not be considered for pipelining */ - CURLOPT(CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLOPTTYPE_OFF_T, 9), - - /* a connection with a chunk length longer than this - will not be considered for pipelining */ - CURLOPT(CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLOPTTYPE_OFF_T, 10), - - /* a list of site names(+port) that are blocked from pipelining */ - CURLOPT(CURLMOPT_PIPELINING_SITE_BL, CURLOPTTYPE_OBJECTPOINT, 11), - - /* a list of server types that are blocked from pipelining */ - CURLOPT(CURLMOPT_PIPELINING_SERVER_BL, CURLOPTTYPE_OBJECTPOINT, 12), - - /* maximum number of open connections in total */ - CURLOPT(CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPTTYPE_LONG, 13), - - /* This is the server push callback function pointer */ - CURLOPT(CURLMOPT_PUSHFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 14), - - /* This is the argument passed to the server push callback */ - CURLOPT(CURLMOPT_PUSHDATA, CURLOPTTYPE_OBJECTPOINT, 15), - - /* maximum number of concurrent streams to support on a connection */ - CURLOPT(CURLMOPT_MAX_CONCURRENT_STREAMS, CURLOPTTYPE_LONG, 16), - - CURLMOPT_LASTENTRY /* the last unused */ -} CURLMoption; - - -/* - * Name: curl_multi_setopt() - * - * Desc: Sets options for the multi handle. - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, - CURLMoption option, ...); - - -/* - * Name: curl_multi_assign() - * - * Desc: This function sets an association in the multi handle between the - * given socket and a private pointer of the application. This is - * (only) useful for curl_multi_socket uses. - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, - curl_socket_t sockfd, void *sockp); - - -/* - * Name: curl_push_callback - * - * Desc: This callback gets called when a new stream is being pushed by the - * server. It approves or denies the new stream. It can also decide - * to completely fail the connection. - * - * Returns: CURL_PUSH_OK, CURL_PUSH_DENY or CURL_PUSH_ERROROUT - */ -#define CURL_PUSH_OK 0 -#define CURL_PUSH_DENY 1 -#define CURL_PUSH_ERROROUT 2 /* added in 7.72.0 */ - -struct curl_pushheaders; /* forward declaration only */ - -CURL_EXTERN char *curl_pushheader_bynum(struct curl_pushheaders *h, - size_t num); -CURL_EXTERN char *curl_pushheader_byname(struct curl_pushheaders *h, - const char *name); - -typedef int (*curl_push_callback)(CURL *parent, - CURL *easy, - size_t num_headers, - struct curl_pushheaders *headers, - void *userp); - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif - -#endif diff --git a/packages/runtime/vendor/curl/include/curl/options.h b/packages/runtime/vendor/curl/include/curl/options.h deleted file mode 100644 index 1ed76a95c..000000000 --- a/packages/runtime/vendor/curl/include/curl/options.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef CURLINC_OPTIONS_H -#define CURLINC_OPTIONS_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum { - CURLOT_LONG, /* long (a range of values) */ - CURLOT_VALUES, /* (a defined set or bitmask) */ - CURLOT_OFF_T, /* curl_off_t (a range of values) */ - CURLOT_OBJECT, /* pointer (void *) */ - CURLOT_STRING, /* (char * to null-terminated buffer) */ - CURLOT_SLIST, /* (struct curl_slist *) */ - CURLOT_CBPTR, /* (void * passed as-is to a callback) */ - CURLOT_BLOB, /* blob (struct curl_blob *) */ - CURLOT_FUNCTION /* function pointer */ -} curl_easytype; - -/* Flag bits */ - -/* "alias" means it is provided for old programs to remain functional, - we prefer another name */ -#define CURLOT_FLAG_ALIAS (1<<0) - -/* The CURLOPTTYPE_* id ranges can still be used to figure out what type/size - to use for curl_easy_setopt() for the given id */ -struct curl_easyoption { - const char *name; - CURLoption id; - curl_easytype type; - unsigned int flags; -}; - -CURL_EXTERN const struct curl_easyoption * -curl_easy_option_by_name(const char *name); - -CURL_EXTERN const struct curl_easyoption * -curl_easy_option_by_id(CURLoption id); - -CURL_EXTERN const struct curl_easyoption * -curl_easy_option_next(const struct curl_easyoption *prev); - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif -#endif /* CURLINC_OPTIONS_H */ diff --git a/packages/runtime/vendor/curl/include/curl/stdcheaders.h b/packages/runtime/vendor/curl/include/curl/stdcheaders.h deleted file mode 100644 index 7451aa305..000000000 --- a/packages/runtime/vendor/curl/include/curl/stdcheaders.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef CURLINC_STDCHEADERS_H -#define CURLINC_STDCHEADERS_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ - -#include - -size_t fread(void *, size_t, size_t, FILE *); -size_t fwrite(const void *, size_t, size_t, FILE *); - -int strcasecmp(const char *, const char *); -int strncasecmp(const char *, const char *, size_t); - -#endif /* CURLINC_STDCHEADERS_H */ diff --git a/packages/runtime/vendor/curl/include/curl/system.h b/packages/runtime/vendor/curl/include/curl/system.h deleted file mode 100644 index def773924..000000000 --- a/packages/runtime/vendor/curl/include/curl/system.h +++ /dev/null @@ -1,508 +0,0 @@ -#ifndef CURLINC_SYSTEM_H -#define CURLINC_SYSTEM_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ - -/* - * Try to keep one section per platform, compiler and architecture, otherwise, - * if an existing section is reused for a different one and later on the - * original is adjusted, probably the piggybacking one can be adversely - * changed. - * - * In order to differentiate between platforms/compilers/architectures use - * only compiler built in predefined preprocessor symbols. - * - * curl_off_t - * ---------- - * - * For any given platform/compiler curl_off_t must be typedef'ed to a 64-bit - * wide signed integral data type. The width of this data type must remain - * constant and independent of any possible large file support settings. - * - * As an exception to the above, curl_off_t shall be typedef'ed to a 32-bit - * wide signed integral data type if there is no 64-bit type. - * - * As a general rule, curl_off_t shall not be mapped to off_t. This rule shall - * only be violated if off_t is the only 64-bit data type available and the - * size of off_t is independent of large file support settings. Keep your - * build on the safe side avoiding an off_t gating. If you have a 64-bit - * off_t then take for sure that another 64-bit data type exists, dig deeper - * and you will find it. - * - */ - -#if defined(__DJGPP__) || defined(__GO32__) -# if defined(__DJGPP__) && (__DJGPP__ > 1) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# else -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__SALFORDC__) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__BORLANDC__) -# if (__BORLANDC__ < 0x520) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# else -# define CURL_TYPEOF_CURL_OFF_T __int64 -# define CURL_FORMAT_CURL_OFF_T "I64d" -# define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_SUFFIX_CURL_OFF_T i64 -# define CURL_SUFFIX_CURL_OFF_TU ui64 -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__TURBOC__) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__POCC__) -# if (__POCC__ < 280) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# elif defined(_MSC_VER) -# define CURL_TYPEOF_CURL_OFF_T __int64 -# define CURL_FORMAT_CURL_OFF_T "I64d" -# define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_SUFFIX_CURL_OFF_T i64 -# define CURL_SUFFIX_CURL_OFF_TU ui64 -# else -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__LCC__) -# if defined(__MCST__) /* MCST eLbrus Compiler Collection */ -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 -# else /* Local (or Little) C Compiler */ -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# define CURL_TYPEOF_CURL_SOCKLEN_T int -# endif - -#elif defined(__SYMBIAN32__) -# if defined(__EABI__) /* Treat all ARM compilers equally */ -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(__CW32__) -# pragma longlong on -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(__VC32__) -# define CURL_TYPEOF_CURL_OFF_T __int64 -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int - -#elif defined(macintosh) -# include -# if TYPE_LONGLONG -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# else -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int - -#elif defined(__TANDEM) -# if ! defined(__LP64) - /* Required for 32-bit NonStop builds only. */ -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# define CURL_TYPEOF_CURL_SOCKLEN_T int -# endif - -#elif defined(_WIN32_WCE) -# define CURL_TYPEOF_CURL_OFF_T __int64 -# define CURL_FORMAT_CURL_OFF_T "I64d" -# define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_SUFFIX_CURL_OFF_T i64 -# define CURL_SUFFIX_CURL_OFF_TU ui64 -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__MINGW32__) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "I64d" -# define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_WS2TCPIP_H 1 - -#elif defined(__VMS) -# if defined(__VAX) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# else -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int - -#elif defined(__OS400__) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 - -#elif defined(__MVS__) -# if defined(__IBMC__) || defined(__IBMCPP__) -# if defined(_ILP32) -# elif defined(_LP64) -# endif -# if defined(_LONG_LONG) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(_LP64) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# else -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 -# endif - -#elif defined(__370__) -# if defined(__IBMC__) || defined(__IBMCPP__) -# if defined(_ILP32) -# elif defined(_LP64) -# endif -# if defined(_LONG_LONG) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(_LP64) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# else -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 -# endif - -#elif defined(TPF) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__TINYC__) /* also known as tcc */ -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 - -#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* Oracle Solaris Studio */ -# if !defined(__LP64) && (defined(__ILP32) || \ - defined(__i386) || \ - defined(__sparcv8) || \ - defined(__sparcv8plus)) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(__LP64) || \ - defined(__amd64) || defined(__sparcv9) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 - -#elif defined(__xlc__) /* IBM xlc compiler */ -# if !defined(_LP64) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# else -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 - -/* ===================================== */ -/* KEEP MSVC THE PENULTIMATE ENTRY */ -/* ===================================== */ - -#elif defined(_MSC_VER) -# if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64) -# define CURL_TYPEOF_CURL_OFF_T __int64 -# define CURL_FORMAT_CURL_OFF_T "I64d" -# define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_SUFFIX_CURL_OFF_T i64 -# define CURL_SUFFIX_CURL_OFF_TU ui64 -# else -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -/* ===================================== */ -/* KEEP GENERIC GCC THE LAST ENTRY */ -/* ===================================== */ - -#elif defined(__GNUC__) && !defined(_SCO_DS) -# if !defined(__LP64__) && \ - (defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \ - defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \ - defined(__sparc__) || defined(__mips__) || defined(__sh__) || \ - defined(__XTENSA__) || \ - (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \ - (defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L)) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(__LP64__) || \ - defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \ - defined(__e2k__) || \ - (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) || \ - (defined(__LONG_MAX__) && __LONG_MAX__ == 9223372036854775807L) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 - -#else -/* generic "safe guess" on old 32 bit style */ -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# define CURL_TYPEOF_CURL_SOCKLEN_T int -#endif - -#ifdef _AIX -/* AIX needs */ -#define CURL_PULL_SYS_POLL_H -#endif - - -/* CURL_PULL_WS2TCPIP_H is defined above when inclusion of header file */ -/* ws2tcpip.h is required here to properly make type definitions below. */ -#ifdef CURL_PULL_WS2TCPIP_H -# include -# include -# include -#endif - -/* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */ -/* sys/types.h is required here to properly make type definitions below. */ -#ifdef CURL_PULL_SYS_TYPES_H -# include -#endif - -/* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */ -/* sys/socket.h is required here to properly make type definitions below. */ -#ifdef CURL_PULL_SYS_SOCKET_H -# include -#endif - -/* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file */ -/* sys/poll.h is required here to properly make type definitions below. */ -#ifdef CURL_PULL_SYS_POLL_H -# include -#endif - -/* Data type definition of curl_socklen_t. */ -#ifdef CURL_TYPEOF_CURL_SOCKLEN_T - typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; -#endif - -/* Data type definition of curl_off_t. */ - -#ifdef CURL_TYPEOF_CURL_OFF_T - typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; -#endif - -/* - * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow - * these to be visible and exported by the external libcurl interface API, - * while also making them visible to the library internals, simply including - * curl_setup.h, without actually needing to include curl.h internally. - * If some day this section would grow big enough, all this should be moved - * to its own header file. - */ - -/* - * Figure out if we can use the ## preprocessor operator, which is supported - * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ - * or __cplusplus so we need to carefully check for them too. - */ - -#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ - defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ - defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ - defined(__ILEC400__) - /* This compiler is believed to have an ISO compatible preprocessor */ -#define CURL_ISOCPP -#else - /* This compiler is believed NOT to have an ISO compatible preprocessor */ -#undef CURL_ISOCPP -#endif - -/* - * Macros for minimum-width signed and unsigned curl_off_t integer constants. - */ - -#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551) -# define CURLINC_OFF_T_C_HLPR2(x) x -# define CURLINC_OFF_T_C_HLPR1(x) CURLINC_OFF_T_C_HLPR2(x) -# define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \ - CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T) -# define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \ - CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU) -#else -# ifdef CURL_ISOCPP -# define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix -# else -# define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix -# endif -# define CURLINC_OFF_T_C_HLPR1(Val,Suffix) CURLINC_OFF_T_C_HLPR2(Val,Suffix) -# define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T) -# define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU) -#endif - -#endif /* CURLINC_SYSTEM_H */ diff --git a/packages/runtime/vendor/curl/include/curl/typecheck-gcc.h b/packages/runtime/vendor/curl/include/curl/typecheck-gcc.h deleted file mode 100644 index bc8d7a78c..000000000 --- a/packages/runtime/vendor/curl/include/curl/typecheck-gcc.h +++ /dev/null @@ -1,716 +0,0 @@ -#ifndef CURLINC_TYPECHECK_GCC_H -#define CURLINC_TYPECHECK_GCC_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ - -/* wraps curl_easy_setopt() with typechecking */ - -/* To add a new kind of warning, add an - * if(curlcheck_sometype_option(_curl_opt)) - * if(!curlcheck_sometype(value)) - * _curl_easy_setopt_err_sometype(); - * block and define curlcheck_sometype_option, curlcheck_sometype and - * _curl_easy_setopt_err_sometype below - * - * NOTE: We use two nested 'if' statements here instead of the && operator, in - * order to work around gcc bug #32061. It affects only gcc 4.3.x/4.4.x - * when compiling with -Wlogical-op. - * - * To add an option that uses the same type as an existing option, you'll just - * need to extend the appropriate _curl_*_option macro - */ -#define curl_easy_setopt(handle, option, value) \ - __extension__({ \ - CURLoption _curl_opt = (option); \ - if(__builtin_constant_p(_curl_opt)) { \ - CURL_IGNORE_DEPRECATION( \ - if(curlcheck_long_option(_curl_opt)) \ - if(!curlcheck_long(value)) \ - _curl_easy_setopt_err_long(); \ - if(curlcheck_off_t_option(_curl_opt)) \ - if(!curlcheck_off_t(value)) \ - _curl_easy_setopt_err_curl_off_t(); \ - if(curlcheck_string_option(_curl_opt)) \ - if(!curlcheck_string(value)) \ - _curl_easy_setopt_err_string(); \ - if(curlcheck_write_cb_option(_curl_opt)) \ - if(!curlcheck_write_cb(value)) \ - _curl_easy_setopt_err_write_callback(); \ - if((_curl_opt) == CURLOPT_RESOLVER_START_FUNCTION) \ - if(!curlcheck_resolver_start_callback(value)) \ - _curl_easy_setopt_err_resolver_start_callback(); \ - if((_curl_opt) == CURLOPT_READFUNCTION) \ - if(!curlcheck_read_cb(value)) \ - _curl_easy_setopt_err_read_cb(); \ - if((_curl_opt) == CURLOPT_IOCTLFUNCTION) \ - if(!curlcheck_ioctl_cb(value)) \ - _curl_easy_setopt_err_ioctl_cb(); \ - if((_curl_opt) == CURLOPT_SOCKOPTFUNCTION) \ - if(!curlcheck_sockopt_cb(value)) \ - _curl_easy_setopt_err_sockopt_cb(); \ - if((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION) \ - if(!curlcheck_opensocket_cb(value)) \ - _curl_easy_setopt_err_opensocket_cb(); \ - if((_curl_opt) == CURLOPT_PROGRESSFUNCTION) \ - if(!curlcheck_progress_cb(value)) \ - _curl_easy_setopt_err_progress_cb(); \ - if((_curl_opt) == CURLOPT_DEBUGFUNCTION) \ - if(!curlcheck_debug_cb(value)) \ - _curl_easy_setopt_err_debug_cb(); \ - if((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION) \ - if(!curlcheck_ssl_ctx_cb(value)) \ - _curl_easy_setopt_err_ssl_ctx_cb(); \ - if(curlcheck_conv_cb_option(_curl_opt)) \ - if(!curlcheck_conv_cb(value)) \ - _curl_easy_setopt_err_conv_cb(); \ - if((_curl_opt) == CURLOPT_SEEKFUNCTION) \ - if(!curlcheck_seek_cb(value)) \ - _curl_easy_setopt_err_seek_cb(); \ - if(curlcheck_cb_data_option(_curl_opt)) \ - if(!curlcheck_cb_data(value)) \ - _curl_easy_setopt_err_cb_data(); \ - if((_curl_opt) == CURLOPT_ERRORBUFFER) \ - if(!curlcheck_error_buffer(value)) \ - _curl_easy_setopt_err_error_buffer(); \ - if((_curl_opt) == CURLOPT_STDERR) \ - if(!curlcheck_FILE(value)) \ - _curl_easy_setopt_err_FILE(); \ - if(curlcheck_postfields_option(_curl_opt)) \ - if(!curlcheck_postfields(value)) \ - _curl_easy_setopt_err_postfields(); \ - if((_curl_opt) == CURLOPT_HTTPPOST) \ - if(!curlcheck_arr((value), struct curl_httppost)) \ - _curl_easy_setopt_err_curl_httpost(); \ - if((_curl_opt) == CURLOPT_MIMEPOST) \ - if(!curlcheck_ptr((value), curl_mime)) \ - _curl_easy_setopt_err_curl_mimepost(); \ - if(curlcheck_slist_option(_curl_opt)) \ - if(!curlcheck_arr((value), struct curl_slist)) \ - _curl_easy_setopt_err_curl_slist(); \ - if((_curl_opt) == CURLOPT_SHARE) \ - if(!curlcheck_ptr((value), CURLSH)) \ - _curl_easy_setopt_err_CURLSH(); \ - ) \ - } \ - curl_easy_setopt(handle, _curl_opt, value); \ - }) - -/* wraps curl_easy_getinfo() with typechecking */ -#define curl_easy_getinfo(handle, info, arg) \ - __extension__({ \ - CURLINFO _curl_info = (info); \ - if(__builtin_constant_p(_curl_info)) { \ - CURL_IGNORE_DEPRECATION( \ - if(curlcheck_string_info(_curl_info)) \ - if(!curlcheck_arr((arg), char *)) \ - _curl_easy_getinfo_err_string(); \ - if(curlcheck_long_info(_curl_info)) \ - if(!curlcheck_arr((arg), long)) \ - _curl_easy_getinfo_err_long(); \ - if(curlcheck_double_info(_curl_info)) \ - if(!curlcheck_arr((arg), double)) \ - _curl_easy_getinfo_err_double(); \ - if(curlcheck_slist_info(_curl_info)) \ - if(!curlcheck_arr((arg), struct curl_slist *)) \ - _curl_easy_getinfo_err_curl_slist(); \ - if(curlcheck_tlssessioninfo_info(_curl_info)) \ - if(!curlcheck_arr((arg), struct curl_tlssessioninfo *)) \ - _curl_easy_getinfo_err_curl_tlssesssioninfo(); \ - if(curlcheck_certinfo_info(_curl_info)) \ - if(!curlcheck_arr((arg), struct curl_certinfo *)) \ - _curl_easy_getinfo_err_curl_certinfo(); \ - if(curlcheck_socket_info(_curl_info)) \ - if(!curlcheck_arr((arg), curl_socket_t)) \ - _curl_easy_getinfo_err_curl_socket(); \ - if(curlcheck_off_t_info(_curl_info)) \ - if(!curlcheck_arr((arg), curl_off_t)) \ - _curl_easy_getinfo_err_curl_off_t(); \ - ) \ - } \ - curl_easy_getinfo(handle, _curl_info, arg); \ - }) - -/* - * For now, just make sure that the functions are called with three arguments - */ -#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) -#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) - - -/* the actual warnings, triggered by calling the _curl_easy_setopt_err* - * functions */ - -/* To define a new warning, use _CURL_WARNING(identifier, "message") */ -#define CURLWARNING(id, message) \ - static void __attribute__((__warning__(message))) \ - __attribute__((__unused__)) __attribute__((__noinline__)) \ - id(void) { __asm__(""); } - -CURLWARNING(_curl_easy_setopt_err_long, - "curl_easy_setopt expects a long argument for this option") -CURLWARNING(_curl_easy_setopt_err_curl_off_t, - "curl_easy_setopt expects a curl_off_t argument for this option") -CURLWARNING(_curl_easy_setopt_err_string, - "curl_easy_setopt expects a " - "string ('char *' or char[]) argument for this option" - ) -CURLWARNING(_curl_easy_setopt_err_write_callback, - "curl_easy_setopt expects a curl_write_callback argument for this option") -CURLWARNING(_curl_easy_setopt_err_resolver_start_callback, - "curl_easy_setopt expects a " - "curl_resolver_start_callback argument for this option" - ) -CURLWARNING(_curl_easy_setopt_err_read_cb, - "curl_easy_setopt expects a curl_read_callback argument for this option") -CURLWARNING(_curl_easy_setopt_err_ioctl_cb, - "curl_easy_setopt expects a curl_ioctl_callback argument for this option") -CURLWARNING(_curl_easy_setopt_err_sockopt_cb, - "curl_easy_setopt expects a curl_sockopt_callback argument for this option") -CURLWARNING(_curl_easy_setopt_err_opensocket_cb, - "curl_easy_setopt expects a " - "curl_opensocket_callback argument for this option" - ) -CURLWARNING(_curl_easy_setopt_err_progress_cb, - "curl_easy_setopt expects a curl_progress_callback argument for this option") -CURLWARNING(_curl_easy_setopt_err_debug_cb, - "curl_easy_setopt expects a curl_debug_callback argument for this option") -CURLWARNING(_curl_easy_setopt_err_ssl_ctx_cb, - "curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option") -CURLWARNING(_curl_easy_setopt_err_conv_cb, - "curl_easy_setopt expects a curl_conv_callback argument for this option") -CURLWARNING(_curl_easy_setopt_err_seek_cb, - "curl_easy_setopt expects a curl_seek_callback argument for this option") -CURLWARNING(_curl_easy_setopt_err_cb_data, - "curl_easy_setopt expects a " - "private data pointer as argument for this option") -CURLWARNING(_curl_easy_setopt_err_error_buffer, - "curl_easy_setopt expects a " - "char buffer of CURL_ERROR_SIZE as argument for this option") -CURLWARNING(_curl_easy_setopt_err_FILE, - "curl_easy_setopt expects a 'FILE *' argument for this option") -CURLWARNING(_curl_easy_setopt_err_postfields, - "curl_easy_setopt expects a 'void *' or 'char *' argument for this option") -CURLWARNING(_curl_easy_setopt_err_curl_httpost, - "curl_easy_setopt expects a 'struct curl_httppost *' " - "argument for this option") -CURLWARNING(_curl_easy_setopt_err_curl_mimepost, - "curl_easy_setopt expects a 'curl_mime *' " - "argument for this option") -CURLWARNING(_curl_easy_setopt_err_curl_slist, - "curl_easy_setopt expects a 'struct curl_slist *' argument for this option") -CURLWARNING(_curl_easy_setopt_err_CURLSH, - "curl_easy_setopt expects a CURLSH* argument for this option") - -CURLWARNING(_curl_easy_getinfo_err_string, - "curl_easy_getinfo expects a pointer to 'char *' for this info") -CURLWARNING(_curl_easy_getinfo_err_long, - "curl_easy_getinfo expects a pointer to long for this info") -CURLWARNING(_curl_easy_getinfo_err_double, - "curl_easy_getinfo expects a pointer to double for this info") -CURLWARNING(_curl_easy_getinfo_err_curl_slist, - "curl_easy_getinfo expects a pointer to 'struct curl_slist *' for this info") -CURLWARNING(_curl_easy_getinfo_err_curl_tlssesssioninfo, - "curl_easy_getinfo expects a pointer to " - "'struct curl_tlssessioninfo *' for this info") -CURLWARNING(_curl_easy_getinfo_err_curl_certinfo, - "curl_easy_getinfo expects a pointer to " - "'struct curl_certinfo *' for this info") -CURLWARNING(_curl_easy_getinfo_err_curl_socket, - "curl_easy_getinfo expects a pointer to curl_socket_t for this info") -CURLWARNING(_curl_easy_getinfo_err_curl_off_t, - "curl_easy_getinfo expects a pointer to curl_off_t for this info") - -/* groups of curl_easy_setops options that take the same type of argument */ - -/* To add a new option to one of the groups, just add - * (option) == CURLOPT_SOMETHING - * to the or-expression. If the option takes a long or curl_off_t, you don't - * have to do anything - */ - -/* evaluates to true if option takes a long argument */ -#define curlcheck_long_option(option) \ - (0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT) - -#define curlcheck_off_t_option(option) \ - (((option) > CURLOPTTYPE_OFF_T) && ((option) < CURLOPTTYPE_BLOB)) - -/* evaluates to true if option takes a char* argument */ -#define curlcheck_string_option(option) \ - ((option) == CURLOPT_ABSTRACT_UNIX_SOCKET || \ - (option) == CURLOPT_ACCEPT_ENCODING || \ - (option) == CURLOPT_ALTSVC || \ - (option) == CURLOPT_CAINFO || \ - (option) == CURLOPT_CAPATH || \ - (option) == CURLOPT_COOKIE || \ - (option) == CURLOPT_COOKIEFILE || \ - (option) == CURLOPT_COOKIEJAR || \ - (option) == CURLOPT_COOKIELIST || \ - (option) == CURLOPT_CRLFILE || \ - (option) == CURLOPT_CUSTOMREQUEST || \ - (option) == CURLOPT_DEFAULT_PROTOCOL || \ - (option) == CURLOPT_DNS_INTERFACE || \ - (option) == CURLOPT_DNS_LOCAL_IP4 || \ - (option) == CURLOPT_DNS_LOCAL_IP6 || \ - (option) == CURLOPT_DNS_SERVERS || \ - (option) == CURLOPT_DOH_URL || \ - (option) == CURLOPT_EGDSOCKET || \ - (option) == CURLOPT_FTP_ACCOUNT || \ - (option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \ - (option) == CURLOPT_FTPPORT || \ - (option) == CURLOPT_HSTS || \ - (option) == CURLOPT_INTERFACE || \ - (option) == CURLOPT_ISSUERCERT || \ - (option) == CURLOPT_KEYPASSWD || \ - (option) == CURLOPT_KRBLEVEL || \ - (option) == CURLOPT_LOGIN_OPTIONS || \ - (option) == CURLOPT_MAIL_AUTH || \ - (option) == CURLOPT_MAIL_FROM || \ - (option) == CURLOPT_NETRC_FILE || \ - (option) == CURLOPT_NOPROXY || \ - (option) == CURLOPT_PASSWORD || \ - (option) == CURLOPT_PINNEDPUBLICKEY || \ - (option) == CURLOPT_PRE_PROXY || \ - (option) == CURLOPT_PROTOCOLS_STR || \ - (option) == CURLOPT_PROXY || \ - (option) == CURLOPT_PROXY_CAINFO || \ - (option) == CURLOPT_PROXY_CAPATH || \ - (option) == CURLOPT_PROXY_CRLFILE || \ - (option) == CURLOPT_PROXY_ISSUERCERT || \ - (option) == CURLOPT_PROXY_KEYPASSWD || \ - (option) == CURLOPT_PROXY_PINNEDPUBLICKEY || \ - (option) == CURLOPT_PROXY_SERVICE_NAME || \ - (option) == CURLOPT_PROXY_SSL_CIPHER_LIST || \ - (option) == CURLOPT_PROXY_SSLCERT || \ - (option) == CURLOPT_PROXY_SSLCERTTYPE || \ - (option) == CURLOPT_PROXY_SSLKEY || \ - (option) == CURLOPT_PROXY_SSLKEYTYPE || \ - (option) == CURLOPT_PROXY_TLS13_CIPHERS || \ - (option) == CURLOPT_PROXY_TLSAUTH_PASSWORD || \ - (option) == CURLOPT_PROXY_TLSAUTH_TYPE || \ - (option) == CURLOPT_PROXY_TLSAUTH_USERNAME || \ - (option) == CURLOPT_PROXYPASSWORD || \ - (option) == CURLOPT_PROXYUSERNAME || \ - (option) == CURLOPT_PROXYUSERPWD || \ - (option) == CURLOPT_RANDOM_FILE || \ - (option) == CURLOPT_RANGE || \ - (option) == CURLOPT_REDIR_PROTOCOLS_STR || \ - (option) == CURLOPT_REFERER || \ - (option) == CURLOPT_REQUEST_TARGET || \ - (option) == CURLOPT_RTSP_SESSION_ID || \ - (option) == CURLOPT_RTSP_STREAM_URI || \ - (option) == CURLOPT_RTSP_TRANSPORT || \ - (option) == CURLOPT_SASL_AUTHZID || \ - (option) == CURLOPT_SERVICE_NAME || \ - (option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \ - (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \ - (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 || \ - (option) == CURLOPT_SSH_KNOWNHOSTS || \ - (option) == CURLOPT_SSH_PRIVATE_KEYFILE || \ - (option) == CURLOPT_SSH_PUBLIC_KEYFILE || \ - (option) == CURLOPT_SSLCERT || \ - (option) == CURLOPT_SSLCERTTYPE || \ - (option) == CURLOPT_SSLENGINE || \ - (option) == CURLOPT_SSLKEY || \ - (option) == CURLOPT_SSLKEYTYPE || \ - (option) == CURLOPT_SSL_CIPHER_LIST || \ - (option) == CURLOPT_TLS13_CIPHERS || \ - (option) == CURLOPT_TLSAUTH_PASSWORD || \ - (option) == CURLOPT_TLSAUTH_TYPE || \ - (option) == CURLOPT_TLSAUTH_USERNAME || \ - (option) == CURLOPT_UNIX_SOCKET_PATH || \ - (option) == CURLOPT_URL || \ - (option) == CURLOPT_USERAGENT || \ - (option) == CURLOPT_USERNAME || \ - (option) == CURLOPT_AWS_SIGV4 || \ - (option) == CURLOPT_USERPWD || \ - (option) == CURLOPT_XOAUTH2_BEARER || \ - (option) == CURLOPT_SSL_EC_CURVES || \ - 0) - -/* evaluates to true if option takes a curl_write_callback argument */ -#define curlcheck_write_cb_option(option) \ - ((option) == CURLOPT_HEADERFUNCTION || \ - (option) == CURLOPT_WRITEFUNCTION) - -/* evaluates to true if option takes a curl_conv_callback argument */ -#define curlcheck_conv_cb_option(option) \ - ((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION || \ - (option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION || \ - (option) == CURLOPT_CONV_FROM_UTF8_FUNCTION) - -/* evaluates to true if option takes a data argument to pass to a callback */ -#define curlcheck_cb_data_option(option) \ - ((option) == CURLOPT_CHUNK_DATA || \ - (option) == CURLOPT_CLOSESOCKETDATA || \ - (option) == CURLOPT_DEBUGDATA || \ - (option) == CURLOPT_FNMATCH_DATA || \ - (option) == CURLOPT_HEADERDATA || \ - (option) == CURLOPT_HSTSREADDATA || \ - (option) == CURLOPT_HSTSWRITEDATA || \ - (option) == CURLOPT_INTERLEAVEDATA || \ - (option) == CURLOPT_IOCTLDATA || \ - (option) == CURLOPT_OPENSOCKETDATA || \ - (option) == CURLOPT_PREREQDATA || \ - (option) == CURLOPT_PROGRESSDATA || \ - (option) == CURLOPT_READDATA || \ - (option) == CURLOPT_SEEKDATA || \ - (option) == CURLOPT_SOCKOPTDATA || \ - (option) == CURLOPT_SSH_KEYDATA || \ - (option) == CURLOPT_SSL_CTX_DATA || \ - (option) == CURLOPT_WRITEDATA || \ - (option) == CURLOPT_RESOLVER_START_DATA || \ - (option) == CURLOPT_TRAILERDATA || \ - (option) == CURLOPT_SSH_HOSTKEYDATA || \ - 0) - -/* evaluates to true if option takes a POST data argument (void* or char*) */ -#define curlcheck_postfields_option(option) \ - ((option) == CURLOPT_POSTFIELDS || \ - (option) == CURLOPT_COPYPOSTFIELDS || \ - 0) - -/* evaluates to true if option takes a struct curl_slist * argument */ -#define curlcheck_slist_option(option) \ - ((option) == CURLOPT_HTTP200ALIASES || \ - (option) == CURLOPT_HTTPHEADER || \ - (option) == CURLOPT_MAIL_RCPT || \ - (option) == CURLOPT_POSTQUOTE || \ - (option) == CURLOPT_PREQUOTE || \ - (option) == CURLOPT_PROXYHEADER || \ - (option) == CURLOPT_QUOTE || \ - (option) == CURLOPT_RESOLVE || \ - (option) == CURLOPT_TELNETOPTIONS || \ - (option) == CURLOPT_CONNECT_TO || \ - 0) - -/* groups of curl_easy_getinfo infos that take the same type of argument */ - -/* evaluates to true if info expects a pointer to char * argument */ -#define curlcheck_string_info(info) \ - (CURLINFO_STRING < (info) && (info) < CURLINFO_LONG && \ - (info) != CURLINFO_PRIVATE) - -/* evaluates to true if info expects a pointer to long argument */ -#define curlcheck_long_info(info) \ - (CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE) - -/* evaluates to true if info expects a pointer to double argument */ -#define curlcheck_double_info(info) \ - (CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST) - -/* true if info expects a pointer to struct curl_slist * argument */ -#define curlcheck_slist_info(info) \ - (((info) == CURLINFO_SSL_ENGINES) || ((info) == CURLINFO_COOKIELIST)) - -/* true if info expects a pointer to struct curl_tlssessioninfo * argument */ -#define curlcheck_tlssessioninfo_info(info) \ - (((info) == CURLINFO_TLS_SSL_PTR) || ((info) == CURLINFO_TLS_SESSION)) - -/* true if info expects a pointer to struct curl_certinfo * argument */ -#define curlcheck_certinfo_info(info) ((info) == CURLINFO_CERTINFO) - -/* true if info expects a pointer to struct curl_socket_t argument */ -#define curlcheck_socket_info(info) \ - (CURLINFO_SOCKET < (info) && (info) < CURLINFO_OFF_T) - -/* true if info expects a pointer to curl_off_t argument */ -#define curlcheck_off_t_info(info) \ - (CURLINFO_OFF_T < (info)) - - -/* typecheck helpers -- check whether given expression has requested type */ - -/* For pointers, you can use the curlcheck_ptr/curlcheck_arr macros, - * otherwise define a new macro. Search for __builtin_types_compatible_p - * in the GCC manual. - * NOTE: these macros MUST NOT EVALUATE their arguments! The argument is - * the actual expression passed to the curl_easy_setopt macro. This - * means that you can only apply the sizeof and __typeof__ operators, no - * == or whatsoever. - */ - -/* XXX: should evaluate to true if expr is a pointer */ -#define curlcheck_any_ptr(expr) \ - (sizeof(expr) == sizeof(void *)) - -/* evaluates to true if expr is NULL */ -/* XXX: must not evaluate expr, so this check is not accurate */ -#define curlcheck_NULL(expr) \ - (__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL))) - -/* evaluates to true if expr is type*, const type* or NULL */ -#define curlcheck_ptr(expr, type) \ - (curlcheck_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), type *) || \ - __builtin_types_compatible_p(__typeof__(expr), const type *)) - -/* evaluates to true if expr is one of type[], type*, NULL or const type* */ -#define curlcheck_arr(expr, type) \ - (curlcheck_ptr((expr), type) || \ - __builtin_types_compatible_p(__typeof__(expr), type [])) - -/* evaluates to true if expr is a string */ -#define curlcheck_string(expr) \ - (curlcheck_arr((expr), char) || \ - curlcheck_arr((expr), signed char) || \ - curlcheck_arr((expr), unsigned char)) - -/* evaluates to true if expr is a long (no matter the signedness) - * XXX: for now, int is also accepted (and therefore short and char, which - * are promoted to int when passed to a variadic function) */ -#define curlcheck_long(expr) \ - (__builtin_types_compatible_p(__typeof__(expr), long) || \ - __builtin_types_compatible_p(__typeof__(expr), signed long) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned long) || \ - __builtin_types_compatible_p(__typeof__(expr), int) || \ - __builtin_types_compatible_p(__typeof__(expr), signed int) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned int) || \ - __builtin_types_compatible_p(__typeof__(expr), short) || \ - __builtin_types_compatible_p(__typeof__(expr), signed short) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned short) || \ - __builtin_types_compatible_p(__typeof__(expr), char) || \ - __builtin_types_compatible_p(__typeof__(expr), signed char) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned char)) - -/* evaluates to true if expr is of type curl_off_t */ -#define curlcheck_off_t(expr) \ - (__builtin_types_compatible_p(__typeof__(expr), curl_off_t)) - -/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */ -/* XXX: also check size of an char[] array? */ -#define curlcheck_error_buffer(expr) \ - (curlcheck_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), char *) || \ - __builtin_types_compatible_p(__typeof__(expr), char[])) - -/* evaluates to true if expr is of type (const) void* or (const) FILE* */ -#if 0 -#define curlcheck_cb_data(expr) \ - (curlcheck_ptr((expr), void) || \ - curlcheck_ptr((expr), FILE)) -#else /* be less strict */ -#define curlcheck_cb_data(expr) \ - curlcheck_any_ptr(expr) -#endif - -/* evaluates to true if expr is of type FILE* */ -#define curlcheck_FILE(expr) \ - (curlcheck_NULL(expr) || \ - (__builtin_types_compatible_p(__typeof__(expr), FILE *))) - -/* evaluates to true if expr can be passed as POST data (void* or char*) */ -#define curlcheck_postfields(expr) \ - (curlcheck_ptr((expr), void) || \ - curlcheck_arr((expr), char) || \ - curlcheck_arr((expr), unsigned char)) - -/* helper: __builtin_types_compatible_p distinguishes between functions and - * function pointers, hide it */ -#define curlcheck_cb_compatible(func, type) \ - (__builtin_types_compatible_p(__typeof__(func), type) || \ - __builtin_types_compatible_p(__typeof__(func) *, type)) - -/* evaluates to true if expr is of type curl_resolver_start_callback */ -#define curlcheck_resolver_start_callback(expr) \ - (curlcheck_NULL(expr) || \ - curlcheck_cb_compatible((expr), curl_resolver_start_callback)) - -/* evaluates to true if expr is of type curl_read_callback or "similar" */ -#define curlcheck_read_cb(expr) \ - (curlcheck_NULL(expr) || \ - curlcheck_cb_compatible((expr), __typeof__(fread) *) || \ - curlcheck_cb_compatible((expr), curl_read_callback) || \ - curlcheck_cb_compatible((expr), _curl_read_callback1) || \ - curlcheck_cb_compatible((expr), _curl_read_callback2) || \ - curlcheck_cb_compatible((expr), _curl_read_callback3) || \ - curlcheck_cb_compatible((expr), _curl_read_callback4) || \ - curlcheck_cb_compatible((expr), _curl_read_callback5) || \ - curlcheck_cb_compatible((expr), _curl_read_callback6)) -typedef size_t (*_curl_read_callback1)(char *, size_t, size_t, void *); -typedef size_t (*_curl_read_callback2)(char *, size_t, size_t, const void *); -typedef size_t (*_curl_read_callback3)(char *, size_t, size_t, FILE *); -typedef size_t (*_curl_read_callback4)(void *, size_t, size_t, void *); -typedef size_t (*_curl_read_callback5)(void *, size_t, size_t, const void *); -typedef size_t (*_curl_read_callback6)(void *, size_t, size_t, FILE *); - -/* evaluates to true if expr is of type curl_write_callback or "similar" */ -#define curlcheck_write_cb(expr) \ - (curlcheck_read_cb(expr) || \ - curlcheck_cb_compatible((expr), __typeof__(fwrite) *) || \ - curlcheck_cb_compatible((expr), curl_write_callback) || \ - curlcheck_cb_compatible((expr), _curl_write_callback1) || \ - curlcheck_cb_compatible((expr), _curl_write_callback2) || \ - curlcheck_cb_compatible((expr), _curl_write_callback3) || \ - curlcheck_cb_compatible((expr), _curl_write_callback4) || \ - curlcheck_cb_compatible((expr), _curl_write_callback5) || \ - curlcheck_cb_compatible((expr), _curl_write_callback6)) -typedef size_t (*_curl_write_callback1)(const char *, size_t, size_t, void *); -typedef size_t (*_curl_write_callback2)(const char *, size_t, size_t, - const void *); -typedef size_t (*_curl_write_callback3)(const char *, size_t, size_t, FILE *); -typedef size_t (*_curl_write_callback4)(const void *, size_t, size_t, void *); -typedef size_t (*_curl_write_callback5)(const void *, size_t, size_t, - const void *); -typedef size_t (*_curl_write_callback6)(const void *, size_t, size_t, FILE *); - -/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */ -#define curlcheck_ioctl_cb(expr) \ - (curlcheck_NULL(expr) || \ - curlcheck_cb_compatible((expr), curl_ioctl_callback) || \ - curlcheck_cb_compatible((expr), _curl_ioctl_callback1) || \ - curlcheck_cb_compatible((expr), _curl_ioctl_callback2) || \ - curlcheck_cb_compatible((expr), _curl_ioctl_callback3) || \ - curlcheck_cb_compatible((expr), _curl_ioctl_callback4)) -typedef curlioerr (*_curl_ioctl_callback1)(CURL *, int, void *); -typedef curlioerr (*_curl_ioctl_callback2)(CURL *, int, const void *); -typedef curlioerr (*_curl_ioctl_callback3)(CURL *, curliocmd, void *); -typedef curlioerr (*_curl_ioctl_callback4)(CURL *, curliocmd, const void *); - -/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */ -#define curlcheck_sockopt_cb(expr) \ - (curlcheck_NULL(expr) || \ - curlcheck_cb_compatible((expr), curl_sockopt_callback) || \ - curlcheck_cb_compatible((expr), _curl_sockopt_callback1) || \ - curlcheck_cb_compatible((expr), _curl_sockopt_callback2)) -typedef int (*_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype); -typedef int (*_curl_sockopt_callback2)(const void *, curl_socket_t, - curlsocktype); - -/* evaluates to true if expr is of type curl_opensocket_callback or - "similar" */ -#define curlcheck_opensocket_cb(expr) \ - (curlcheck_NULL(expr) || \ - curlcheck_cb_compatible((expr), curl_opensocket_callback) || \ - curlcheck_cb_compatible((expr), _curl_opensocket_callback1) || \ - curlcheck_cb_compatible((expr), _curl_opensocket_callback2) || \ - curlcheck_cb_compatible((expr), _curl_opensocket_callback3) || \ - curlcheck_cb_compatible((expr), _curl_opensocket_callback4)) -typedef curl_socket_t (*_curl_opensocket_callback1) - (void *, curlsocktype, struct curl_sockaddr *); -typedef curl_socket_t (*_curl_opensocket_callback2) - (void *, curlsocktype, const struct curl_sockaddr *); -typedef curl_socket_t (*_curl_opensocket_callback3) - (const void *, curlsocktype, struct curl_sockaddr *); -typedef curl_socket_t (*_curl_opensocket_callback4) - (const void *, curlsocktype, const struct curl_sockaddr *); - -/* evaluates to true if expr is of type curl_progress_callback or "similar" */ -#define curlcheck_progress_cb(expr) \ - (curlcheck_NULL(expr) || \ - curlcheck_cb_compatible((expr), curl_progress_callback) || \ - curlcheck_cb_compatible((expr), _curl_progress_callback1) || \ - curlcheck_cb_compatible((expr), _curl_progress_callback2)) -typedef int (*_curl_progress_callback1)(void *, - double, double, double, double); -typedef int (*_curl_progress_callback2)(const void *, - double, double, double, double); - -/* evaluates to true if expr is of type curl_debug_callback or "similar" */ -#define curlcheck_debug_cb(expr) \ - (curlcheck_NULL(expr) || \ - curlcheck_cb_compatible((expr), curl_debug_callback) || \ - curlcheck_cb_compatible((expr), _curl_debug_callback1) || \ - curlcheck_cb_compatible((expr), _curl_debug_callback2) || \ - curlcheck_cb_compatible((expr), _curl_debug_callback3) || \ - curlcheck_cb_compatible((expr), _curl_debug_callback4) || \ - curlcheck_cb_compatible((expr), _curl_debug_callback5) || \ - curlcheck_cb_compatible((expr), _curl_debug_callback6) || \ - curlcheck_cb_compatible((expr), _curl_debug_callback7) || \ - curlcheck_cb_compatible((expr), _curl_debug_callback8)) -typedef int (*_curl_debug_callback1) (CURL *, - curl_infotype, char *, size_t, void *); -typedef int (*_curl_debug_callback2) (CURL *, - curl_infotype, char *, size_t, const void *); -typedef int (*_curl_debug_callback3) (CURL *, - curl_infotype, const char *, size_t, void *); -typedef int (*_curl_debug_callback4) (CURL *, - curl_infotype, const char *, size_t, const void *); -typedef int (*_curl_debug_callback5) (CURL *, - curl_infotype, unsigned char *, size_t, void *); -typedef int (*_curl_debug_callback6) (CURL *, - curl_infotype, unsigned char *, size_t, const void *); -typedef int (*_curl_debug_callback7) (CURL *, - curl_infotype, const unsigned char *, size_t, void *); -typedef int (*_curl_debug_callback8) (CURL *, - curl_infotype, const unsigned char *, size_t, const void *); - -/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */ -/* this is getting even messier... */ -#define curlcheck_ssl_ctx_cb(expr) \ - (curlcheck_NULL(expr) || \ - curlcheck_cb_compatible((expr), curl_ssl_ctx_callback) || \ - curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback1) || \ - curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback2) || \ - curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback3) || \ - curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback4) || \ - curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback5) || \ - curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback6) || \ - curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback7) || \ - curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback8)) -typedef CURLcode (*_curl_ssl_ctx_callback1)(CURL *, void *, void *); -typedef CURLcode (*_curl_ssl_ctx_callback2)(CURL *, void *, const void *); -typedef CURLcode (*_curl_ssl_ctx_callback3)(CURL *, const void *, void *); -typedef CURLcode (*_curl_ssl_ctx_callback4)(CURL *, const void *, - const void *); -#ifdef HEADER_SSL_H -/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX - * this will of course break if we're included before OpenSSL headers... - */ -typedef CURLcode (*_curl_ssl_ctx_callback5)(CURL *, SSL_CTX *, void *); -typedef CURLcode (*_curl_ssl_ctx_callback6)(CURL *, SSL_CTX *, const void *); -typedef CURLcode (*_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX *, void *); -typedef CURLcode (*_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX *, - const void *); -#else -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5; -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6; -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7; -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8; -#endif - -/* evaluates to true if expr is of type curl_conv_callback or "similar" */ -#define curlcheck_conv_cb(expr) \ - (curlcheck_NULL(expr) || \ - curlcheck_cb_compatible((expr), curl_conv_callback) || \ - curlcheck_cb_compatible((expr), _curl_conv_callback1) || \ - curlcheck_cb_compatible((expr), _curl_conv_callback2) || \ - curlcheck_cb_compatible((expr), _curl_conv_callback3) || \ - curlcheck_cb_compatible((expr), _curl_conv_callback4)) -typedef CURLcode (*_curl_conv_callback1)(char *, size_t length); -typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length); -typedef CURLcode (*_curl_conv_callback3)(void *, size_t length); -typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length); - -/* evaluates to true if expr is of type curl_seek_callback or "similar" */ -#define curlcheck_seek_cb(expr) \ - (curlcheck_NULL(expr) || \ - curlcheck_cb_compatible((expr), curl_seek_callback) || \ - curlcheck_cb_compatible((expr), _curl_seek_callback1) || \ - curlcheck_cb_compatible((expr), _curl_seek_callback2)) -typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int); -typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int); - - -#endif /* CURLINC_TYPECHECK_GCC_H */ diff --git a/packages/runtime/vendor/curl/include/curl/urlapi.h b/packages/runtime/vendor/curl/include/curl/urlapi.h deleted file mode 100644 index b97b53475..000000000 --- a/packages/runtime/vendor/curl/include/curl/urlapi.h +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef CURLINC_URLAPI_H -#define CURLINC_URLAPI_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ - -#include "curl.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* the error codes for the URL API */ -typedef enum { - CURLUE_OK, - CURLUE_BAD_HANDLE, /* 1 */ - CURLUE_BAD_PARTPOINTER, /* 2 */ - CURLUE_MALFORMED_INPUT, /* 3 */ - CURLUE_BAD_PORT_NUMBER, /* 4 */ - CURLUE_UNSUPPORTED_SCHEME, /* 5 */ - CURLUE_URLDECODE, /* 6 */ - CURLUE_OUT_OF_MEMORY, /* 7 */ - CURLUE_USER_NOT_ALLOWED, /* 8 */ - CURLUE_UNKNOWN_PART, /* 9 */ - CURLUE_NO_SCHEME, /* 10 */ - CURLUE_NO_USER, /* 11 */ - CURLUE_NO_PASSWORD, /* 12 */ - CURLUE_NO_OPTIONS, /* 13 */ - CURLUE_NO_HOST, /* 14 */ - CURLUE_NO_PORT, /* 15 */ - CURLUE_NO_QUERY, /* 16 */ - CURLUE_NO_FRAGMENT, /* 17 */ - CURLUE_NO_ZONEID, /* 18 */ - CURLUE_BAD_FILE_URL, /* 19 */ - CURLUE_BAD_FRAGMENT, /* 20 */ - CURLUE_BAD_HOSTNAME, /* 21 */ - CURLUE_BAD_IPV6, /* 22 */ - CURLUE_BAD_LOGIN, /* 23 */ - CURLUE_BAD_PASSWORD, /* 24 */ - CURLUE_BAD_PATH, /* 25 */ - CURLUE_BAD_QUERY, /* 26 */ - CURLUE_BAD_SCHEME, /* 27 */ - CURLUE_BAD_SLASHES, /* 28 */ - CURLUE_BAD_USER, /* 29 */ - CURLUE_LACKS_IDN, /* 30 */ - CURLUE_LAST -} CURLUcode; - -typedef enum { - CURLUPART_URL, - CURLUPART_SCHEME, - CURLUPART_USER, - CURLUPART_PASSWORD, - CURLUPART_OPTIONS, - CURLUPART_HOST, - CURLUPART_PORT, - CURLUPART_PATH, - CURLUPART_QUERY, - CURLUPART_FRAGMENT, - CURLUPART_ZONEID /* added in 7.65.0 */ -} CURLUPart; - -#define CURLU_DEFAULT_PORT (1<<0) /* return default port number */ -#define CURLU_NO_DEFAULT_PORT (1<<1) /* act as if no port number was set, - if the port number matches the - default for the scheme */ -#define CURLU_DEFAULT_SCHEME (1<<2) /* return default scheme if - missing */ -#define CURLU_NON_SUPPORT_SCHEME (1<<3) /* allow non-supported scheme */ -#define CURLU_PATH_AS_IS (1<<4) /* leave dot sequences */ -#define CURLU_DISALLOW_USER (1<<5) /* no user+password allowed */ -#define CURLU_URLDECODE (1<<6) /* URL decode on get */ -#define CURLU_URLENCODE (1<<7) /* URL encode on set */ -#define CURLU_APPENDQUERY (1<<8) /* append a form style part */ -#define CURLU_GUESS_SCHEME (1<<9) /* legacy curl-style guessing */ -#define CURLU_NO_AUTHORITY (1<<10) /* Allow empty authority when the - scheme is unknown. */ -#define CURLU_ALLOW_SPACE (1<<11) /* Allow spaces in the URL */ -#define CURLU_PUNYCODE (1<<12) /* get the host name in pynycode */ - -typedef struct Curl_URL CURLU; - -/* - * curl_url() creates a new CURLU handle and returns a pointer to it. - * Must be freed with curl_url_cleanup(). - */ -CURL_EXTERN CURLU *curl_url(void); - -/* - * curl_url_cleanup() frees the CURLU handle and related resources used for - * the URL parsing. It will not free strings previously returned with the URL - * API. - */ -CURL_EXTERN void curl_url_cleanup(CURLU *handle); - -/* - * curl_url_dup() duplicates a CURLU handle and returns a new copy. The new - * handle must also be freed with curl_url_cleanup(). - */ -CURL_EXTERN CURLU *curl_url_dup(CURLU *in); - -/* - * curl_url_get() extracts a specific part of the URL from a CURLU - * handle. Returns error code. The returned pointer MUST be freed with - * curl_free() afterwards. - */ -CURL_EXTERN CURLUcode curl_url_get(CURLU *handle, CURLUPart what, - char **part, unsigned int flags); - -/* - * curl_url_set() sets a specific part of the URL in a CURLU handle. Returns - * error code. The passed in string will be copied. Passing a NULL instead of - * a part string, clears that part. - */ -CURL_EXTERN CURLUcode curl_url_set(CURLU *handle, CURLUPart what, - const char *part, unsigned int flags); - -/* - * curl_url_strerror() turns a CURLUcode value into the equivalent human - * readable error string. This is useful for printing meaningful error - * messages. - */ -CURL_EXTERN const char *curl_url_strerror(CURLUcode); - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif - -#endif /* CURLINC_URLAPI_H */ diff --git a/packages/runtime/vendor/curl/include/curl/websockets.h b/packages/runtime/vendor/curl/include/curl/websockets.h deleted file mode 100644 index fd6a91654..000000000 --- a/packages/runtime/vendor/curl/include/curl/websockets.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef CURLINC_WEBSOCKETS_H -#define CURLINC_WEBSOCKETS_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - * SPDX-License-Identifier: curl - * - ***************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -struct curl_ws_frame { - int age; /* zero */ - int flags; /* See the CURLWS_* defines */ - curl_off_t offset; /* the offset of this data into the frame */ - curl_off_t bytesleft; /* number of pending bytes left of the payload */ - size_t len; /* size of the current data chunk */ -}; - -/* flag bits */ -#define CURLWS_TEXT (1<<0) -#define CURLWS_BINARY (1<<1) -#define CURLWS_CONT (1<<2) -#define CURLWS_CLOSE (1<<3) -#define CURLWS_PING (1<<4) -#define CURLWS_OFFSET (1<<5) - -/* - * NAME curl_ws_recv() - * - * DESCRIPTION - * - * Receives data from the websocket connection. Use after successful - * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. - */ -CURL_EXTERN CURLcode curl_ws_recv(CURL *curl, void *buffer, size_t buflen, - size_t *recv, - struct curl_ws_frame **metap); - -/* sendflags for curl_ws_send() */ -#define CURLWS_PONG (1<<6) - -/* - * NAME curl_easy_send() - * - * DESCRIPTION - * - * Sends data over the websocket connection. Use after successful - * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. - */ -CURL_EXTERN CURLcode curl_ws_send(CURL *curl, const void *buffer, - size_t buflen, size_t *sent, - curl_off_t framesize, - unsigned int sendflags); - -/* bits for the CURLOPT_WS_OPTIONS bitmask: */ -#define CURLWS_RAW_MODE (1<<0) - -CURL_EXTERN struct curl_ws_frame *curl_ws_meta(CURL *curl); - -#ifdef __cplusplus -} -#endif - -#endif /* CURLINC_WEBSOCKETS_H */ diff --git a/scripts/build-native-cli.mts b/scripts/build-native-cli.mts index 95f08abdf..fa4cb74a7 100644 --- a/scripts/build-native-cli.mts +++ b/scripts/build-native-cli.mts @@ -86,7 +86,6 @@ const result = await compile(join(root, "packages/compiler/src/native/cli.ts"), backend: "llvm", optimization: process.env["SCRIPTC_NATIVE_OPTIMIZATION"] === "dev" ? "dev" : "release", strip: process.env["SCRIPTC_NATIVE_KEEP_SYMBOLS"] !== "1", - dynamic: false, ffiProfilePath: ffi, sanitize: process.env["SCRIPTC_SAN"] === "1", emitIr: process.env["SCRIPTC_NATIVE_EMIT_IR"] === "1", diff --git a/scripts/ci-native-bootstrap.mjs b/scripts/ci-native-bootstrap.mjs index d6919e854..59dc3bd85 100644 --- a/scripts/ci-native-bootstrap.mjs +++ b/scripts/ci-native-bootstrap.mjs @@ -33,7 +33,14 @@ export async function runNativeBootstrapChecks(plan, checks) { const failures = results .filter((result) => result.status === "rejected") .map((result) => result.reason); - if (failures.length) throw new AggregateError(failures, "native bootstrap phases failed"); + if (failures.length) { + const details = results.flatMap((result, index) => + result.status === "rejected" + ? [`${plan.phases[index]}: ${result.reason?.stack ?? result.reason}`] + : [], + ); + throw new AggregateError(failures, `native bootstrap phases failed\n${details.join("\n")}`); + } } export async function runBootstrapAndPackageChecks({ diff --git a/scripts/ci-test-plan.mjs b/scripts/ci-test-plan.mjs index 4c8337d49..b2d94a25a 100644 --- a/scripts/ci-test-plan.mjs +++ b/scripts/ci-test-plan.mjs @@ -3,10 +3,8 @@ export const effectFiles = ["tests/harness/effect.test.ts", "tests/harness/effec export const corpusFiles = [ "tests/harness/differential.test.ts", "tests/harness/llvm-differential.test.ts", - "tests/harness/npm.test.ts", "tests/harness/server.test.ts", "tests/harness/test262.test.ts", - "tests/harness/vercel-e2e.test.ts", "tests/harness/three.test.ts", ]; const coverageFile = "tests/harness/coverage.test.ts"; diff --git a/scripts/sandbox-test.mjs b/scripts/sandbox-test.mjs index 9c8155026..4bdd7fc50 100644 --- a/scripts/sandbox-test.mjs +++ b/scripts/sandbox-test.mjs @@ -30,7 +30,6 @@ const laneCaseShardedFiles = [ "tests/harness/effect4.test.ts", "tests/harness/differential.test.ts", "tests/harness/llvm-differential.test.ts", - "tests/harness/npm.test.ts", "tests/harness/server.test.ts", "tests/harness/test262.test.ts", "tests/harness/three.test.ts", @@ -86,7 +85,7 @@ const invariantRemoteFiles = [ "packages/runtime/test/map.test.ts", "packages/runtime/test/path.test.ts", "packages/runtime/test/regex.test.ts", - "tests/harness/island-surface.test.ts", + "tests/harness/stdlib-surface.test.ts", "tests/harness/library-mode.test.ts", "tests/harness/library-profile.test.ts", "tests/harness/linux-differential.test.ts", @@ -126,7 +125,6 @@ const remoteWorkspaceReset = workspaceResetCommand("/workspace"); const hostLaneContractFiles = [ "tests/harness/ffi.test.ts", "tests/harness/ffi-scalars.test.ts", - "tests/harness/island.test.ts", "tests/harness/library-multi.test.ts", "tests/harness/differential.test.ts", "tests/harness/server.test.ts", @@ -137,7 +135,6 @@ const hostLaneContractPattern = [ "calls the manifest-bound archive across every v1 ABI class", "matches Node conversions through native calls", "a missing FFI symbol is an SC5004 diagnostic", - "deep island recursion on a fiber is a catchable RangeError", "M1: external definitions equal the declared set exactly", "M2: independent state and collects", "M6: four threads, one archive", @@ -151,7 +148,6 @@ const hostLaneContractPattern = [ "read-all: chunked writes with delays, then EOF", ].join("|"); const hostInvariantContractFiles = [ - "tests/harness/island.test.ts", "tests/harness/library-mode.test.ts", "tests/harness/regex.test.ts", ]; @@ -168,8 +164,8 @@ const hostInvariantContractPattern = [ // Logically portable acceptance suites whose oracle lives in an external // worktree that is intentionally not uploaded. Run them locally in both // flavors, sharding suites whose individual cases are independently addressable. -const localLaneFiles = ["tests/harness/prettier-e2e.test.ts", "tests/harness/portless-e2e.test.ts"]; -const localCaseShardedFiles = ["tests/harness/vercel-e2e.test.ts"]; +const localLaneFiles = ["tests/harness/portless-e2e.test.ts"]; +const localCaseShardedFiles = []; const { values } = parseArgs({ options: { @@ -1042,7 +1038,7 @@ try { label: `local ${lane} external files`, }), ); - const caseTasks = lanes.flatMap((lane) => + const caseTasks = (localCaseShardedFiles.length === 0 ? [] : lanes).flatMap((lane) => Array.from({ length: localCaseShardCount }, (_, offset) => { const shard = offset + 1; return run("pnpm", ["test", "--reporter=dot", ...localCaseShardedFiles], { diff --git a/tests/corpus/1100-island-eval-basics.ts b/tests/corpus/1100-island-eval-basics.ts deleted file mode 100644 index b9573f6bc..000000000 --- a/tests/corpus/1100-island-eval-basics.ts +++ /dev/null @@ -1,24 +0,0 @@ -// @dynamic -// The island engine end-to-end: arithmetic and string results come back as -// String(result), and the island's global scope persists between evals. -console.log(__island_eval("6 * 7")); -console.log(__island_eval("0.1 + 0.2")); -console.log(__island_eval("1e21")); -console.log(__island_eval("-0")); -console.log(__island_eval("0 / 0")); -console.log(__island_eval("1 / 0")); -console.log(__island_eval("true && false")); -console.log(__island_eval("'is' + 'land'")); -console.log(__island_eval("undefined")); -console.log(__island_eval("null")); -console.log(__island_eval("[1, 2, 3].map(x => x * 2).join('-')")); -console.log(__island_eval("JSON.stringify({ a: 1, b: [true, 'two'] })")); - -// Globals persist across entries (one context per process). -console.log(__island_eval("var acc = 100; acc")); -console.log(__island_eval("acc = acc + 1; acc")); - -// Island results are ordinary static strings: concat, methods, log args. -const answer = __island_eval("6 * 7"); -const banner = "answer=" + answer + "!"; -console.log(banner, banner.length, answer === "42"); diff --git a/tests/corpus/1101-island-marshal-unicode.ts b/tests/corpus/1101-island-marshal-unicode.ts deleted file mode 100644 index b299074ad..000000000 --- a/tests/corpus/1101-island-marshal-unicode.ts +++ /dev/null @@ -1,20 +0,0 @@ -// @dynamic -// Marshaling round-trips across the island boundary, including astral-plane -// (non-BMP) characters: ScrStr storage is UTF-8, the engine speaks UTF-16 -// on the surface — .length inside the island must count code units while -// the bytes coming back stay well-formed UTF-8. -const globe = "\u{1F30D}"; // 🌍, one code point, two UTF-16 code units -console.log(__island_eval("'" + globe + "'.length")); -console.log(__island_eval("'héllo ' + '" + globe + "'")); -console.log(__island_eval("'" + globe + "'.codePointAt(0).toString(16)")); -console.log(__island_eval("'" + globe + "'.charCodeAt(0)")); -console.log(__island_eval("'" + globe + "'.charCodeAt(1)")); - -// Round-trip: astral string out of the island, back into static-world -// operations, and into another island eval. -const out = __island_eval("'x' + '" + globe + "' + 'y'"); -console.log(out, out.length, out.charCodeAt(1), out.charCodeAt(2)); -console.log(__island_eval("'" + out + "'.length")); - -// Mixed multi-byte planes in one string. -console.log(__island_eval("['é', '中', '" + globe + "'].join('')")); diff --git a/tests/corpus/1102-island-rc-stress.ts b/tests/corpus/1102-island-rc-stress.ts deleted file mode 100644 index f581955f9..000000000 --- a/tests/corpus/1102-island-rc-stress.ts +++ /dev/null @@ -1,22 +0,0 @@ -// @dynamic -// Leak pressure for the sanitized lane: many island entries that allocate -// engine objects and marshal fresh strings back across the boundary. The -// engine's counting allocator asserts zero live allocations at teardown and -// the RC audit checks every marshaled ScrStr was released. -let checksum = 0; -let last = ""; -for (let i = 0; i < 300; i = i + 1) { - const code = - "(function () { var o = { n: " + - i + - ", tag: 'it' + " + - i + - ", arr: [" + - i + - ", " + - i + - " * 2] }; return o.tag + ':' + (o.n + o.arr[1]); })()"; - last = __island_eval(code); - checksum = checksum + last.length; -} -console.log(last, checksum); diff --git a/tests/corpus/1110-math-members.ts b/tests/corpus/1110-math-members.ts index 9e27e67e0..80dd78209 100644 --- a/tests/corpus/1110-math-members.ts +++ b/tests/corpus/1110-math-members.ts @@ -1,4 +1,3 @@ -// @dynamic // Math members execute in the island engine; results exit as ordinary // static numbers. Members with exact IEEE results print directly. The // transcendentals round through toFixed(9): the engine uses the system diff --git a/tests/corpus/1111-math-random.ts b/tests/corpus/1111-math-random.ts index 16fc697a7..e00bd1a4a 100644 --- a/tests/corpus/1111-math-random.ts +++ b/tests/corpus/1111-math-random.ts @@ -1,4 +1,3 @@ -// @dynamic // Math.random values cannot be compared against Node — assert the contract // instead: every draw is a number in [0, 1). let ok = true; diff --git a/tests/corpus/1113-string-methods.ts b/tests/corpus/1113-string-methods.ts index 76e976342..1d708583f 100644 --- a/tests/corpus/1113-string-methods.ts +++ b/tests/corpus/1113-string-methods.ts @@ -1,4 +1,3 @@ -// @dynamic // The island-backed string surface: case mapping, split into a STATIC // string[] flowing into intrinsic array ops, padding, string-pattern // replacement, trimming, and in-range at(). diff --git a/tests/corpus/1114-string-unicode-island.ts b/tests/corpus/1114-string-unicode-island.ts index ac801863c..d837bd1dc 100644 --- a/tests/corpus/1114-string-unicode-island.ts +++ b/tests/corpus/1114-string-unicode-island.ts @@ -1,4 +1,3 @@ -// @dynamic // Astral-plane and special-cased strings cross the boundary intact (UTF-8 // on the static side, engine UTF-16 inside): supplementary-plane case // pairs (Deseret), 1:many mappings (ß → SS), context-sensitive Greek final diff --git a/tests/corpus/1115-parse-globals.ts b/tests/corpus/1115-parse-globals.ts index 13a32141a..aa75c1019 100644 --- a/tests/corpus/1115-parse-globals.ts +++ b/tests/corpus/1115-parse-globals.ts @@ -1,4 +1,3 @@ -// @dynamic // The island-backed globals: parseFloat, parseInt (explicit radix), isNaN, // isFinite — the engine's own globals execute and the result exits to the // declared static type. diff --git a/tests/corpus/1116-island-static-mix.ts b/tests/corpus/1116-island-static-mix.ts index b5b26a766..49e110451 100644 --- a/tests/corpus/1116-island-static-mix.ts +++ b/tests/corpus/1116-island-static-mix.ts @@ -1,4 +1,3 @@ -// @dynamic // A statically-typed program whose types never change: only the calls the // static runtime doesn't implement run in the island, and every result // flows straight back into static functions, arrays, and classes. diff --git a/tests/corpus/1120-web-globals-encoders.ts b/tests/corpus/1120-web-globals-encoders.ts deleted file mode 100644 index 18f819ee8..000000000 --- a/tests/corpus/1120-web-globals-encoders.ts +++ /dev/null @@ -1,39 +0,0 @@ -// @dynamic -// Island web encoders and small globals, differentially vs Node: each -// __island_eval snippet runs under the island's pure-JS implementations -// (scriptc) AND under a global eval with Node's REAL implementations -// (island-shim.mjs) — results must match byte-for-byte. - -// TextEncoder: ascii, 2/3/4-byte utf-8, and lone-surrogate replacement -console.log(__island_eval("new TextEncoder().encode('Az 09~ é§ € 한 😀').join(',')")); -console.log(__island_eval("new TextEncoder().encode('a' + String.fromCharCode(0xd800) + 'b').join(',')")); -console.log(__island_eval("new TextEncoder().encoding + ' ' + new TextEncoder().encode().length")); - -// TextDecoder: round trips, byte-at-a-time streaming, maximal-subpart -// replacement, BOM stripping, state reset between non-stream decodes -console.log(__island_eval("new TextDecoder().decode(new TextEncoder().encode('héllo 😀 €12'))")); -console.log(__island_eval("(() => { const d = new TextDecoder(); const b = new TextEncoder().encode('a😀é'); let s = ''; for (let i = 0; i < b.length; i++) s += d.decode(b.subarray(i, i + 1), { stream: true }); return s + d.decode(); })()")); -console.log(__island_eval("JSON.stringify(new TextDecoder().decode(new Uint8Array([0x61, 0xff, 0x62])))")); -console.log(__island_eval("JSON.stringify(new TextDecoder().decode(new Uint8Array([0xc2, 0x41])))")); -console.log(__island_eval("JSON.stringify(new TextDecoder().decode(new Uint8Array([0xf0, 0x9f, 0x98])))")); -console.log(__island_eval("JSON.stringify(new TextDecoder().decode(new Uint8Array([0xef, 0xbb, 0xbf, 0x41]))) + ' ' + JSON.stringify(new TextDecoder('utf-8', { ignoreBOM: true }).decode(new Uint8Array([0xef, 0xbb, 0xbf, 0x41])))")); -console.log(__island_eval("(() => { const d = new TextDecoder(); const a = d.decode(new Uint8Array([0xe2, 0x82])); const b = d.decode(new Uint8Array([0xac])); return JSON.stringify(a) + ' ' + JSON.stringify(b); })()")); -console.log(__island_eval("(() => { try { new TextDecoder('utf-8', { fatal: true }).decode(new Uint8Array([0xff])); return 'no-throw'; } catch (e) { return String(e instanceof TypeError); } })()")); -console.log(__island_eval("new TextDecoder().encoding + ' ' + new TextDecoder().fatal + ' ' + new TextDecoder().ignoreBOM")); - -// URLSearchParams: parsing, encoding, mutation, iteration, sorting -console.log(__island_eval("new URLSearchParams('a=1&b=two&a=3').getAll('a').join('|')")); -console.log(__island_eval("(() => { const p = new URLSearchParams({ x: '1', 'y z': '2 3' }); p.append('c d', 'e&f=g'); p.set('x', 'one'); return p.toString(); })()")); -console.log(__island_eval("new URLSearchParams('a+b=c%20d&%C3%A9=%E2%82%AC').toString()")); -console.log(__island_eval("(() => { const p = new URLSearchParams('b=2&a=1&b=1'); p.sort(); return p.toString() + ' ' + p.size + ' ' + p.get('missing'); })()")); -console.log(__island_eval("JSON.stringify([...new URLSearchParams('flag&x=1')])")); -console.log(__island_eval("(() => { const p = new URLSearchParams('a=1&b=2&a=3'); p.delete('a'); return p.toString() + ' ' + p.has('a') + ' ' + p.has('b', '2'); })()")); -console.log(__island_eval("new URLSearchParams([['é', '😀']]).toString()")); - -// btoa/atob -console.log(__island_eval("[btoa(''), btoa('a'), btoa('ab'), btoa('abc'), btoa('hello world')].join(' ')")); -console.log(__island_eval("JSON.stringify([atob(''), atob('YQ=='), atob('YWJj'), atob('aGVsbG8gd29ybGQ='), atob(' YW Jj ')])")); -console.log(__island_eval("String(atob(btoa('binary\\u0000\\u0001\\u00fedata')) === 'binary\\u0000\\u0001\\u00fedata')")); - -// console: the island shim writes to the SAME stdout, String()-formatted -console.log(__island_eval("console.log('island console', 1.5, true); 'after-console'")); diff --git a/tests/corpus/1122-any-captures.ts b/tests/corpus/1122-any-captures.ts index b1ff45753..cc342c6c1 100644 --- a/tests/corpus/1122-any-captures.ts +++ b/tests/corpus/1122-any-captures.ts @@ -1,4 +1,3 @@ -// @dynamic // Closures capturing `any` (island-handle) variables: the capture box // carries the handle with its own retain/release — reads see the live // value, mutation through the box is visible everywhere (the shared-box diff --git a/tests/corpus/1206-regex-dynamic-mix.ts b/tests/corpus/1206-regex-dynamic-mix.ts deleted file mode 100644 index 8daab6360..000000000 --- a/tests/corpus/1206-regex-dynamic-mix.ts +++ /dev/null @@ -1,12 +0,0 @@ -// @dynamic -// Static regexes inside a --dynamic build: one libregexp serves both (the -// engine archive's copy — its host hooks route through the island's -// context), so regex results and island results must interleave exactly. -const cleaned = "Hello, World!".replace(/[^\w\s]/g, ""); -console.log(cleaned); -console.log(__island_eval("'Hello, World!'.replace(/[^\\w\\s]/g, '')")); - -const words = "a-b_c d".split(/[-_\s]/); -console.log(words.length, words.join("+")); - -console.log(/^\d+$/.test("2024"), "v1.2.3".toUpperCase(), /\./g.source); diff --git a/tests/corpus/1421-number-parse-dynamic.ts b/tests/corpus/1421-number-parse-strings.ts similarity index 79% rename from tests/corpus/1421-number-parse-dynamic.ts rename to tests/corpus/1421-number-parse-strings.ts index 2164b155c..c4f772605 100644 --- a/tests/corpus/1421-number-parse-dynamic.ts +++ b/tests/corpus/1421-number-parse-strings.ts @@ -1,6 +1,6 @@ -// @dynamic // Number.parseFloat / Number.parseInt ARE the global parsers (the spec -// aliases them) — the same island lowering, byte-compared against Node. +// aliases them): over string arguments they compile to the same static +// parse, compared against Node. console.log(Number.parseFloat("3.14"), Number.parseFloat("2e3"), Number.parseFloat(" -7.5abc")); console.log(Number.parseFloat("x"), Number.parseFloat("Infinity")); console.log(Number.parseInt("42", 10), Number.parseInt("ff", 16), Number.parseInt("0x1f", 16)); diff --git a/tests/corpus/1437-pad-default.ts b/tests/corpus/1437-pad-default.ts index c5ab7b95a..6c4077b09 100644 --- a/tests/corpus/1437-pad-default.ts +++ b/tests/corpus/1437-pad-default.ts @@ -1,4 +1,3 @@ -// @dynamic // padStart/padEnd with the fill omitted: Node pads with spaces — the // frontend completes the default and the island executes the same call. console.log(`[${"ab".padEnd(5)}]`); diff --git a/tests/corpus/1595-js-island-gap/main.js b/tests/corpus/1595-js-island-gap/main.js index db35aeb55..6d3b648f6 100644 --- a/tests/corpus/1595-js-island-gap/main.js +++ b/tests/corpus/1595-js-island-gap/main.js @@ -1,4 +1,3 @@ -// @dynamic // The INFERENCE-GAP program: this directory's tsconfig turns noImplicitAny // off, so the untyped parameters type `any` — exactly where `any` lands in // TS: the embedded dynamic engine under --dynamic (this build), an honest diff --git a/tests/corpus/2050-dynamic-import-own-module/main.ts b/tests/corpus/2050-dynamic-import-own-module/main.ts index feed7df25..aef9225cc 100644 --- a/tests/corpus/2050-dynamic-import-own-module/main.ts +++ b/tests/corpus/2050-dynamic-import-own-module/main.ts @@ -1,4 +1,3 @@ -// @dynamic // Dynamic import() of the program's OWN modules: the compiled module's // exports marshal into the engine as a namespace object, and a module // first reached through import() evaluates on the microtask — after the diff --git a/tests/corpus/2051-dynamic-import-then/main.ts b/tests/corpus/2051-dynamic-import-then/main.ts index bde9f2400..c8f0ae53f 100644 --- a/tests/corpus/2051-dynamic-import-then/main.ts +++ b/tests/corpus/2051-dynamic-import-then/main.ts @@ -1,10 +1,9 @@ -// @dynamic // The stored-promise spellings of dynamic import(): a top-level `var` // holding the import promise (a module global carrying the island // promise), .then handlers receiving the namespace HANDLE (the handler's // unannotated parameter binds it as jsval whatever the checker's // namespace type spelled), and the import promise flowing into a -// Promise parameter. The module evaluates once, on the microtask — +// Promise parameter. The module evaluates once, on the microtask — // Node's order exactly. import("./mod.ts"); var p1 = import("./mod.ts"); @@ -12,7 +11,7 @@ p1.then(zero => { console.log("then:", zero.foo()); }); -function foo(x: Promise) { +function foo(x: Promise) { x.then(value => { console.log("param:", typeof value.foo); }); diff --git a/tests/corpus/2054-destructuring-island-source.ts b/tests/corpus/2054-destructuring-island-source.ts index 21755561a..3d0dbbe0c 100644 --- a/tests/corpus/2054-destructuring-island-source.ts +++ b/tests/corpus/2054-destructuring-island-source.ts @@ -1,4 +1,3 @@ -// @dynamic // Destructuring assignment from ISLAND sources: the engine runs the // pattern (RequireObjectCoercible on object patterns, the real iterator // protocol on array patterns), the extracted values assign the compiled diff --git a/tests/corpus/2074-island-destructuring.ts b/tests/corpus/2074-island-destructuring.ts index 08585b158..29ed4ef9a 100644 --- a/tests/corpus/2074-island-destructuring.ts +++ b/tests/corpus/2074-island-destructuring.ts @@ -1,4 +1,3 @@ -// @dynamic // @exit: 1 // Destructuring assignment from island ('any'-typed) sources: the object // pattern runs RequireObjectCoercible with V8's exact destructuring diff --git a/tests/corpus/2101-dyn-param-defaults.ts b/tests/corpus/2101-dyn-param-defaults.ts index 8d91d9cc1..a9b68f761 100644 --- a/tests/corpus/2101-dyn-param-defaults.ts +++ b/tests/corpus/2101-dyn-param-defaults.ts @@ -1,4 +1,3 @@ -// @dynamic // Parameter defaults over DYNAMIC-TIER ('any'-typed) values: the island // slot holds the engine's undefined directly, so the ABI is the slot // itself and the prologue picks the default on the runtime undefined diff --git a/tests/corpus/2122-import-refusal-crash/main.ts b/tests/corpus/2122-import-refusal-crash/main.ts deleted file mode 100644 index 1b5ff33d3..000000000 --- a/tests/corpus/2122-import-refusal-crash/main.ts +++ /dev/null @@ -1,8 +0,0 @@ -// @exit: 1 -// A types-only package: tsc resolves the import (the shipped .d.ts), but -// Node's runtime resolution refuses the edge — the exports target -// ./index.js does not exist — so Node rejects the whole graph at startup -// (ERR_MODULE_NOT_FOUND), before ANY module evaluates. The program -// compiles to exactly that startup crash: no output, exit 1. -import { x } from "brokenrt"; -console.log("never"); diff --git a/tests/corpus/2130-overload-island-returns.ts b/tests/corpus/2130-overload-island-returns.ts deleted file mode 100644 index f901f8b7d..000000000 --- a/tests/corpus/2130-overload-island-returns.ts +++ /dev/null @@ -1,52 +0,0 @@ -// @dynamic -// Overload RETURN types are claims tsc never checks against the -// implementation body — only the implementation signature is (TS's -// documented overload unsoundness). When the implementation returns an -// island value ('any'), the resolved overload's primitive return must NOT -// trap-extract at the call: the binding stores the HANDLE — exactly the -// value Node's binding holds — and uses dispatch to engine ops -// (functionOverloads35-42's shape; reconcileOverloadReturn + -// uncheckedOverloadHandleCall). - -// The record family: the implementation returns its object argument under -// primitive-returning overloads. Node runs clean; so must we. -function foo(bar: { a: number }): number; -function foo(bar: { a: string }): string; -function foo(bar: { a: any }): any { - return bar; -} -var x = foo({ a: 1 }); -console.log(typeof x); -const xs = foo({ a: "s" }); -console.log(typeof xs); - -// The array-parameter members of the family. -function arr(bar: { a: number }[]): string; -function arr(bar: { a: any }[]): number; -function arr(bar: { a: any }[]): any { - return bar; -} -const y = arr([{ a: "s" }]); -console.log(typeof y); - -// Function-scope bindings: let, const, and the hoisted var all store the -// handle; typeof reads through the engine. -function scoped(): string { - const a = foo({ a: 1 }); - var b = foo({ a: "s" }); - let c = arr([{ a: 2 }]); - return `${typeof a} ${typeof b} ${typeof c}`; -} -console.log(scoped()); - -// When the implementation's island value REALLY IS the claimed primitive, -// the handle still flows — engine typeof answers the honest kind. -function pick(bar: { a: number }): number; -function pick(bar: { a: string }): string; -function pick(bar: { a: any }): any { - return bar.a; -} -const n = pick({ a: 41 }); -console.log(typeof n); -const s = pick({ a: "str" }); -console.log(typeof s); diff --git a/tests/corpus/2170-island-array-exits.ts b/tests/corpus/2170-island-array-exits.ts index e77c9634d..928e173a5 100644 --- a/tests/corpus/2170-island-array-exits.ts +++ b/tests/corpus/2170-island-array-exits.ts @@ -1,4 +1,3 @@ -// @dynamic // Element access, .length, method calls, and element writes on ISLAND // values whose declared type is an ARRAY (or a tuple / keyed record) — // the SC9001 arrayGet/arrIntrinsic-on-jsval ICE family. The unchecked- diff --git a/tests/corpus/2171-island-json-stringify.ts b/tests/corpus/2171-island-json-stringify.ts index 114f72eed..cc5c69417 100644 --- a/tests/corpus/2171-island-json-stringify.ts +++ b/tests/corpus/2171-island-json-stringify.ts @@ -1,4 +1,3 @@ -// @dynamic // JSON.stringify of ISLAND values — the error-inspection catch-22: the // value has no static shape to serialize (SC1090) and `as unknown` is // refused too (SC1101), yet inspecting an island error object is the diff --git a/tests/corpus/2172-island-regexp-boundary.ts b/tests/corpus/2172-island-regexp-boundary.ts index 107081654..efa63b1f6 100644 --- a/tests/corpus/2172-island-regexp-boundary.ts +++ b/tests/corpus/2172-island-regexp-boundary.ts @@ -1,4 +1,3 @@ -// @dynamic // RegExp values crossing INTO the island (the z.string().regex(/^a+$/) // shape): a fresh engine RegExp rebuilt from source+flags — the pattern // TEXT crosses, both worlds compile the ES-spec grammar. Literals and diff --git a/tests/corpus/2196-island-computed-key-chain.ts b/tests/corpus/2196-island-computed-key-chain.ts index 9d2482f15..c6b1c56d6 100644 --- a/tests/corpus/2196-island-computed-key-chain.ts +++ b/tests/corpus/2196-island-computed-key-chain.ts @@ -1,4 +1,3 @@ -// @dynamic // Island destructuring-assignment chains accept FOLDED computed keys // (2105's static-fold rule: pure key expressions whose checker type // spells one property name — consts, enum members, templates of diff --git a/tests/corpus/2365-dyn-into-island.ts b/tests/corpus/2365-dyn-into-island.ts index e99cce163..07afe1c17 100644 --- a/tests/corpus/2365-dyn-into-island.ts +++ b/tests/corpus/2365-dyn-into-island.ts @@ -1,4 +1,3 @@ -// @dynamic // A CHECKED-DYNAMIC (`unknown`) value entering 'any'-typed island code, // and async OBJECT-LITERAL methods (`{ async load() {...} }` — the lazy // service-registry pattern): the checked-dynamic tree deep-copies into engine values diff --git a/tests/corpus/2447-island-boundary-slots/main.ts b/tests/corpus/2447-island-boundary-slots/main.ts index af6a791d8..a2cee8a8f 100644 --- a/tests/corpus/2447-island-boundary-slots/main.ts +++ b/tests/corpus/2447-island-boundary-slots/main.ts @@ -1,4 +1,3 @@ -// @dynamic // Island ('any'-typed) values in typed builtin slots: the boundary pass // wraps each argument in a validated island exit — strict primitives, the // dynCheck stance — so regex tests over 'any' text, repeat/slice counts diff --git a/tests/corpus/2449-js-dyn-worlds/main.js b/tests/corpus/2449-js-dyn-worlds/main.js deleted file mode 100644 index 1e339ac73..000000000 --- a/tests/corpus/2449-js-dyn-worlds/main.js +++ /dev/null @@ -1,86 +0,0 @@ -// @dynamic -// The two dynamic worlds in one JS graph, no ICEs anywhere: `this` in -// plain functions is the checked-dynamic AMBIENT receiver (dyn keyed -// reads, never an engine op over a dyn value); rest-args arrays dispatch -// their methods on the runtime receiver kind; and a graph typed by a -// runtime-fenced #private class still builds — the destructuring-param -// function compiles as its own fence body, the plain-param caller links -// against it, and every leftover class-typed slot emits valid code. -'use strict'; -import TreePath from "./walker.js"; - -// ── the ambient receiver ──────────────────────────────────────────────── -// Strict-mode plain calls leave `this` undefined, so the read throws V8's -// catchable TypeError, message-exactly. -function unbound() { - try { - return this.limit; - } catch (e) { - return "caught: " + e.message; - } -} -console.log(`${unbound()}`); - -// Chains throw at the FIRST read, like Node. -function chained() { - try { - return this.Parser.prototype; - } catch (e) { - return "chain: " + e.message; - } -} -console.log(`${chained()}`); - -// `this` itself is a value: truthiness and typeof see the undefined. -function probe() { - return (this ? "bound" : "unbound") + "/" + typeof this; -} -console.log(`${probe()}`); - -// ── rest-args are checked-dynamic arrays ──────────────────────────────── -// `.map`/`.forEach` over one dispatch on the RUNTIME receiver kind (the -// lazy-plugin-table idiom); the callback crosses as a boxed function. -function toLazy(...plugins) { - const out = plugins.map((p) => "p:" + p); - return out.join(","); -} -console.log(`${toLazy("alpha", "beta")}`); -console.log(`${toLazy()}`); -console.log(`${toLazy("solo")}`); - -function tally(...nums) { - let sum = 0; - nums.forEach((n) => { - sum += n; - }); - return sum; -} -console.log(`${tally(1, 2, 3.5)}`); - -// ── the fenced-class graph ────────────────────────────────────────────── -// None of the fenced code RUNS here — the graph loads, the healthy -// statements print, exactly Node. -/** - * @param {TreePath} path - */ -function isInWideSentence({ parent: sentenceNode }) { - return sentenceNode.usesSpaces === undefined; -} - -/** - * @param {TreePath} path - */ -function lineBreakConverts(path) { - return isInWideSentence(path); -} - -/** - * @param {TreePath} path - * @returns {string} - */ -function printTree(path) { - return String(path); -} - -console.log(typeof lineBreakConverts, typeof isInWideSentence, typeof printTree); -console.log("graph loaded"); diff --git a/tests/corpus/2449-js-dyn-worlds/tsconfig.json b/tests/corpus/2449-js-dyn-worlds/tsconfig.json deleted file mode 100644 index 0cd67a8d4..000000000 --- a/tests/corpus/2449-js-dyn-worlds/tsconfig.json +++ /dev/null @@ -1 +0,0 @@ -{"compilerOptions":{"strict":true,"noImplicitAny":false}} diff --git a/tests/corpus/2449-js-dyn-worlds/walker.js b/tests/corpus/2449-js-dyn-worlds/walker.js deleted file mode 100644 index 83ff5d38a..000000000 --- a/tests/corpus/2449-js-dyn-worlds/walker.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; -// A #private class: collection fences it (deferred to runtime in JS), so -// every type slot naming it must still emit valid code. -class TreePath { - #stack; - constructor(value) { - this.#stack = [value]; - } - get parent() { - return this.#stack.at(-2); - } -} -export default TreePath; diff --git a/tests/corpus/2474-island-literal-forms.ts b/tests/corpus/2474-island-literal-forms.ts index 2e986fab4..f1c933520 100644 --- a/tests/corpus/2474-island-literal-forms.ts +++ b/tests/corpus/2474-island-literal-forms.ts @@ -1,4 +1,3 @@ -// @dynamic // Island-native literal forms: GET accessors define through the engine // (the self-referential root-indent shape), plain spreads copy with the // spec's CopyDataProperties (later keys win), `??` tests engine values, diff --git a/tests/corpus/2475-variadic-wrapper-island.js b/tests/corpus/2475-variadic-wrapper-island.js index 01af4fc4f..4d7b79aad 100644 --- a/tests/corpus/2475-variadic-wrapper-island.js +++ b/tests/corpus/2475-variadic-wrapper-island.js @@ -1,4 +1,3 @@ -// @dynamic // The wrapper-rebuild idiom: a JS variadic arrow returned as a VALUE (the // rest binding is the engine's own arguments array), an argument slot // rewritten with a spread-built island literal, and the wrapped function diff --git a/tests/corpus/2510-dyn-evolving-array-map.ts b/tests/corpus/2510-dyn-evolving-array-map.ts index 698bd08bd..591b4409b 100644 --- a/tests/corpus/2510-dyn-evolving-array-map.ts +++ b/tests/corpus/2510-dyn-evolving-array-map.ts @@ -1,4 +1,3 @@ -// @dynamic // An evolving-`any` array of pushed closures flowing into a monomorphized // .map: the binding lowered array at its `any[]` declaration, while // tsc's evolving-array analysis types the receiver by the pushed element diff --git a/tests/corpus/2511-dyn-evolving-array-filter-foreach.ts b/tests/corpus/2511-dyn-evolving-array-filter-foreach.ts index 1fdaa3bec..8c278b48e 100644 --- a/tests/corpus/2511-dyn-evolving-array-filter-foreach.ts +++ b/tests/corpus/2511-dyn-evolving-array-filter-foreach.ts @@ -1,4 +1,3 @@ -// @dynamic // Evolving-`any` closure arrays into the other monomorphized helpers: // filter's result keeps the handle-element array (the file-scope DERIVED // binding adopts it — tsc spells the evolved element type there), and diff --git a/tests/corpus/2512-dyn-evolving-array-mixed-push.ts b/tests/corpus/2512-dyn-evolving-array-mixed-push.ts index 21a103213..2adb03819 100644 --- a/tests/corpus/2512-dyn-evolving-array-mixed-push.ts +++ b/tests/corpus/2512-dyn-evolving-array-mixed-push.ts @@ -1,4 +1,3 @@ -// @dynamic // Mixed push sites on an evolving-`any` closure array: the SECOND push // happens after tsc's flow analysis evolved the receiver past `any[]` to // the pushed element type, so the push argument marshals into the handle diff --git a/tests/corpus/2568-rest-spread-forward-dynamic.js b/tests/corpus/2568-rest-spread-forward-dynamic.js index 5d775db7a..5e3b23180 100644 --- a/tests/corpus/2568-rest-spread-forward-dynamic.js +++ b/tests/corpus/2568-rest-spread-forward-dynamic.js @@ -1,4 +1,3 @@ -// @dynamic // The rest-forwarding idiom under --dynamic: the `(...args)` binding is // the ENGINE's own arguments array (islandRest), so the forward rides // jsOp callSpread — the island prelude's real `f(...pre, ...s)` with diff --git a/tests/corpus/2578-jsval-into-unknown-rows.ts b/tests/corpus/2578-jsval-into-unknown-rows.ts index 8c6e3e6e8..6f35f96cf 100644 --- a/tests/corpus/2578-jsval-into-unknown-rows.ts +++ b/tests/corpus/2578-jsval-into-unknown-rows.ts @@ -1,4 +1,3 @@ -// @dynamic // The jsval→dyn crossing (SCR_DYN_JSVAL): an 'any'-typed engine value // flowing into 'unknown' slots wraps by reference, and the armed row-1..3 // ops answer through the engine — typeof, truthiness, String(), and === diff --git a/tests/corpus/2579-jsval-object-param-crossing.js b/tests/corpus/2579-jsval-object-param-crossing.js index 6191be5ab..11d516051 100644 --- a/tests/corpus/2579-jsval-object-param-crossing.js +++ b/tests/corpus/2579-jsval-object-param-crossing.js @@ -1,4 +1,3 @@ -// @dynamic // The repro-2 shape without npm: a JSDoc `@param {object}` slot is // checked-dynamic, and an 'any'-typed engine value flowing into it // CONVERTS (the jsval→dyn wrap) instead of fencing — prettier's diff --git a/tests/corpus/2580-jsval-routed-keyed-ops.js b/tests/corpus/2580-jsval-routed-keyed-ops.js index cd613a151..298989553 100644 --- a/tests/corpus/2580-jsval-routed-keyed-ops.js +++ b/tests/corpus/2580-jsval-routed-keyed-ops.js @@ -1,4 +1,3 @@ -// @dynamic // The routed keyed READ/WRITE over island values held in 'unknown' // (SCR_DYN_JSVAL — lane dyn-routing-ops): o[k] runs in the ENGINE and the // result wraps back scalar-normalized; writes land on the REAL engine diff --git a/tests/corpus/2581-jsval-routed-calls.js b/tests/corpus/2581-jsval-routed-calls.js index 42dc585c0..2de5f4d56 100644 --- a/tests/corpus/2581-jsval-routed-calls.js +++ b/tests/corpus/2581-jsval-routed-calls.js @@ -1,4 +1,3 @@ -// @dynamic // The routed CALL and METHOD-DISPATCH arms over island values held in // 'unknown' (lane dyn-routing-ops): a dyn callee holding an engine // function routes through scr_jsval_call; method dispatch on a wrapped diff --git a/tests/corpus/2582-jsval-object-statics.js b/tests/corpus/2582-jsval-object-statics.js index 5faabbf0f..51d483c52 100644 --- a/tests/corpus/2582-jsval-object-statics.js +++ b/tests/corpus/2582-jsval-object-statics.js @@ -1,4 +1,3 @@ -// @dynamic // The routed Object statics over island values held in 'unknown' (lane // dyn-routing-ops): keys/values/entries walk the ENGINE object (own-key // order) and answer NATIVE dyn arrays (keys are dyn strings, values wrap diff --git a/tests/corpus/2582-jsval-routed-keyed-ops.js b/tests/corpus/2582-jsval-routed-keyed-ops.js index cd613a151..298989553 100644 --- a/tests/corpus/2582-jsval-routed-keyed-ops.js +++ b/tests/corpus/2582-jsval-routed-keyed-ops.js @@ -1,4 +1,3 @@ -// @dynamic // The routed keyed READ/WRITE over island values held in 'unknown' // (SCR_DYN_JSVAL — lane dyn-routing-ops): o[k] runs in the ENGINE and the // result wraps back scalar-normalized; writes land on the REAL engine diff --git a/tests/corpus/2583-dyn-nullish-coalesce.js b/tests/corpus/2583-dyn-nullish-coalesce.js index 51362d10f..2c2f4897f 100644 --- a/tests/corpus/2583-dyn-nullish-coalesce.js +++ b/tests/corpus/2583-dyn-nullish-coalesce.js @@ -1,4 +1,3 @@ -// @dynamic // `??` over checked-dynamic values, UNFENCED for the whole dyn family // (lane dyn-routing-ops — a win beyond the jsval crossing): the deciding // test is the runtime kind (only undefined/null take the default — 0, diff --git a/tests/corpus/2583-jsval-routed-calls.js b/tests/corpus/2583-jsval-routed-calls.js index 42dc585c0..2de5f4d56 100644 --- a/tests/corpus/2583-jsval-routed-calls.js +++ b/tests/corpus/2583-jsval-routed-calls.js @@ -1,4 +1,3 @@ -// @dynamic // The routed CALL and METHOD-DISPATCH arms over island values held in // 'unknown' (lane dyn-routing-ops): a dyn callee holding an engine // function routes through scr_jsval_call; method dispatch on a wrapped diff --git a/tests/corpus/2584-jsval-object-statics.js b/tests/corpus/2584-jsval-object-statics.js index 5faabbf0f..51d483c52 100644 --- a/tests/corpus/2584-jsval-object-statics.js +++ b/tests/corpus/2584-jsval-object-statics.js @@ -1,4 +1,3 @@ -// @dynamic // The routed Object statics over island values held in 'unknown' (lane // dyn-routing-ops): keys/values/entries walk the ENGINE object (own-key // order) and answer NATIVE dyn arrays (keys are dyn strings, values wrap diff --git a/tests/corpus/2585-dyn-nullish-coalesce.js b/tests/corpus/2585-dyn-nullish-coalesce.js index 51362d10f..2c2f4897f 100644 --- a/tests/corpus/2585-dyn-nullish-coalesce.js +++ b/tests/corpus/2585-dyn-nullish-coalesce.js @@ -1,4 +1,3 @@ -// @dynamic // `??` over checked-dynamic values, UNFENCED for the whole dyn family // (lane dyn-routing-ops — a win beyond the jsval crossing): the deciding // test is the runtime kind (only undefined/null take the default — 0, diff --git a/tests/corpus/2590-object-create-dynamic.js b/tests/corpus/2590-object-create-dynamic.js index 4baa9f892..67a779cb8 100644 --- a/tests/corpus/2590-object-create-dynamic.js +++ b/tests/corpus/2590-object-create-dynamic.js @@ -1,4 +1,3 @@ -// @dynamic // Object.create under --dynamic routes through the ENGINE's own // Object.create — the checker types the result 'any' (an engine value), // and the engine answers with REAL prototype semantics: reads delegate diff --git a/tests/corpus/2603-island-keyed-write-dyn.js b/tests/corpus/2603-island-keyed-write-dyn.js index 64d683fc4..6462ede7b 100644 --- a/tests/corpus/2603-island-keyed-write-dyn.js +++ b/tests/corpus/2603-island-keyed-write-dyn.js @@ -1,4 +1,3 @@ -// @dynamic // The keyed-write family's --dynamic arm: an untyped evolving object rides // the ISLAND under --dynamic, so runtime-keyed writes and reads are engine // ops (setIdx/getIdx) — later writes win, number keys go through JS's own diff --git a/tests/corpus/2606-dynamic-import-cycle/main.ts b/tests/corpus/2606-dynamic-import-cycle/main.ts index 747942f8a..e4e166494 100644 --- a/tests/corpus/2606-dynamic-import-cycle/main.ts +++ b/tests/corpus/2606-dynamic-import-cycle/main.ts @@ -1,4 +1,3 @@ -// @dynamic // Dynamic import() into a benign import cycle: ping.ts and pong.ts are // mutually-recursive modules reachable ONLY through import(), so the // static preflight never sees them — the --dynamic subgraph walk diff --git a/tests/corpus/2632-dyn-jsval-iterate.js b/tests/corpus/2632-dyn-jsval-iterate.js index ae4868295..8f4f1fda1 100644 --- a/tests/corpus/2632-dyn-jsval-iterate.js +++ b/tests/corpus/2632-dyn-jsval-iterate.js @@ -1,4 +1,3 @@ -// @dynamic // for-of and destructuring over island values held in 'unknown'. Checked // for-of retains the engine IteratorRecord and steps it live; destructuring // uses the existing drain. Iterator method calls preserve the engine receiver. diff --git a/tests/corpus/2633-island-promise-crossing.js b/tests/corpus/2633-island-promise-crossing.js index 266efeadb..f18e672cc 100644 --- a/tests/corpus/2633-island-promise-crossing.js +++ b/tests/corpus/2633-island-promise-crossing.js @@ -1,4 +1,3 @@ -// @dynamic // STATIC promises crossing INTO the island as real engine thenables // (lane dom-jsval-long-tail): a scriptc promise stored in an 'any' slot // wraps through the async-callback return bridge (scr_jsval_from_promise) diff --git a/tests/corpus/2650-top-level-await-self-import.ts b/tests/corpus/2650-top-level-await-self-import.ts index 3e6feac06..006c4ac8f 100644 --- a/tests/corpus/2650-top-level-await-self-import.ts +++ b/tests/corpus/2650-top-level-await-self-import.ts @@ -1,4 +1,3 @@ -// @dynamic // @exit: 13 console.log("before self import"); await import("./2650-top-level-await-self-import.ts"); diff --git a/tests/corpus/2657-top-level-await-cycle-dynamic/main.ts b/tests/corpus/2657-top-level-await-cycle-dynamic/main.ts index 9c920f75f..1ecbce95c 100644 --- a/tests/corpus/2657-top-level-await-cycle-dynamic/main.ts +++ b/tests/corpus/2657-top-level-await-cycle-dynamic/main.ts @@ -1,4 +1,3 @@ -// @dynamic import "./b.ts"; console.log("a:start"); diff --git a/tests/corpus/2659-top-level-await-dynamic-cycle/main.ts b/tests/corpus/2659-top-level-await-dynamic-cycle/main.ts index 4685ab24a..7cbd4f188 100644 --- a/tests/corpus/2659-top-level-await-dynamic-cycle/main.ts +++ b/tests/corpus/2659-top-level-await-dynamic-cycle/main.ts @@ -1,4 +1,3 @@ -// @dynamic // @exit: 13 console.log("before dynamic cycle"); await import("./late.ts"); diff --git a/tests/corpus/2660-top-level-await-cycle-rejection/main.ts b/tests/corpus/2660-top-level-await-cycle-rejection/main.ts index 6fdb51b4a..f39efc97c 100644 --- a/tests/corpus/2660-top-level-await-cycle-rejection/main.ts +++ b/tests/corpus/2660-top-level-await-cycle-rejection/main.ts @@ -1,4 +1,3 @@ -// @dynamic try { await import("./a.ts"); console.log("outer ok"); diff --git a/tests/corpus/2661-top-level-await-dynamic-runtime-root/main.ts b/tests/corpus/2661-top-level-await-dynamic-runtime-root/main.ts index eb2dd2461..0a9dc24b5 100644 --- a/tests/corpus/2661-top-level-await-dynamic-runtime-root/main.ts +++ b/tests/corpus/2661-top-level-await-dynamic-runtime-root/main.ts @@ -1,4 +1,3 @@ -// @dynamic async function discoveredFirstButNeverRun() { return import("./a.ts"); } diff --git a/tests/corpus/2681-util-parseargs-dynamic.js b/tests/corpus/2681-util-parseargs-dynamic.js index cc1d95025..149375946 100644 --- a/tests/corpus/2681-util-parseargs-dynamic.js +++ b/tests/corpus/2681-util-parseargs-dynamic.js @@ -1,4 +1,3 @@ -// @dynamic // An any-typed config is engine-backed in the dynamic tier. The static // util.parseArgs spoke must snapshot its documented members before parsing. import { parseArgs } from "node:util"; diff --git a/tests/corpus/2705-type-import-link-dynamic/main.ts b/tests/corpus/2705-type-import-link-dynamic/main.ts index 630c85acf..3d9872d5b 100644 --- a/tests/corpus/2705-type-import-link-dynamic/main.ts +++ b/tests/corpus/2705-type-import-link-dynamic/main.ts @@ -1,4 +1,3 @@ -// @dynamic // @exit: 1 // Dynamic islands do not change the ESM loader's instantiate contract: a // plain import of an interface is still a missing runtime export. diff --git a/tests/corpus/2706-type-import-link-dynamic-success/main.ts b/tests/corpus/2706-type-import-link-dynamic-success/main.ts index edf0f5625..0d9deaab5 100644 --- a/tests/corpus/2706-type-import-link-dynamic-success/main.ts +++ b/tests/corpus/2706-type-import-link-dynamic-success/main.ts @@ -1,4 +1,3 @@ -// @dynamic // Type-qualified imports stay out of the island's runtime module graph. import { type Shape, value } from "./types.ts"; import type { Shape as ImportedShape } from "./types.ts"; diff --git a/tests/corpus/2708-type-import-link-dynamic/main.ts b/tests/corpus/2708-type-import-link-dynamic/main.ts index 78deb085c..0a06e1496 100644 --- a/tests/corpus/2708-type-import-link-dynamic/main.ts +++ b/tests/corpus/2708-type-import-link-dynamic/main.ts @@ -1,4 +1,3 @@ -// @dynamic // @exit: 0 // A missing type-only export in a dynamic child rejects import() at link time, // before the child or its dependency evaluates. diff --git a/tests/corpus/2790-dynamic-import-self-name/main.ts b/tests/corpus/2790-dynamic-import-self-name/main.ts index a831fc645..56c2709d5 100644 --- a/tests/corpus/2790-dynamic-import-self-name/main.ts +++ b/tests/corpus/2790-dynamic-import-self-name/main.ts @@ -1,4 +1,3 @@ -// @dynamic async function main(): Promise { console.log("before import"); const module = await import("scriptc-dynamic-self/dep"); diff --git a/tests/corpus/2856-dynamic-any-local-operators.ts b/tests/corpus/2856-dynamic-any-local-operators.ts index 40ed945e1..c708ee934 100644 --- a/tests/corpus/2856-dynamic-any-local-operators.ts +++ b/tests/corpus/2856-dynamic-any-local-operators.ts @@ -1,4 +1,3 @@ -// @dynamic // Checked-dynamic producers stay in dyn storage under an `any` spelling to // preserve aliases. Static builds support coercive operators natively; // the dynamic tier retains its island conversions. Strict equality preserves identity. diff --git a/tests/corpus/2859-import-meta-resolve-dynamic/main.mjs b/tests/corpus/2859-import-meta-resolve-dynamic/main.mjs index 05c520b2b..77c743760 100644 --- a/tests/corpus/2859-import-meta-resolve-dynamic/main.mjs +++ b/tests/corpus/2859-import-meta-resolve-dynamic/main.mjs @@ -1,4 +1,3 @@ -// @dynamic // Embedding the package engine does not move the program's own ESM modules // into it: their metadata remains per-file compile-time identity. console.log(import.meta.url); diff --git a/tests/corpus/3054-dynamic-abort-record.ts b/tests/corpus/3054-dynamic-abort-record.ts index 9277976cf..8fe8a3de8 100644 --- a/tests/corpus/3054-dynamic-abort-record.ts +++ b/tests/corpus/3054-dynamic-abort-record.ts @@ -1,4 +1,3 @@ -// @dynamic // A signal in an options record must not turn an injected static dependency into an island value. interface Source { read(): number } interface Options { source: Source; signal?: AbortSignal; controller?: AbortController } diff --git a/tests/corpus/3057-default-builtin-nodenext-dynamic/main.ts b/tests/corpus/3057-default-builtin-nodenext-dynamic/main.ts index d3755d873..d190085a4 100644 --- a/tests/corpus/3057-default-builtin-nodenext-dynamic/main.ts +++ b/tests/corpus/3057-default-builtin-nodenext-dynamic/main.ts @@ -1,4 +1,3 @@ -// @dynamic import path from "node:path"; console.log(path.join("a", "b")); diff --git a/tests/corpus/3058-optional-array-chain-join.ts b/tests/corpus/3058-optional-array-chain-join.ts index 8cc71f28e..46859b220 100644 --- a/tests/corpus/3058-optional-array-chain-join.ts +++ b/tests/corpus/3058-optional-array-chain-join.ts @@ -1,4 +1,3 @@ -// @dynamic type Block = { type: "text"; text: string } | { type: "image"; url: string }; type Message = { role: string; content: Block[] }; diff --git a/tests/corpus/3060-dynamic-host-global.ts b/tests/corpus/3060-dynamic-host-global.ts deleted file mode 100644 index 41ddf2eee..000000000 --- a/tests/corpus/3060-dynamic-host-global.ts +++ /dev/null @@ -1,17 +0,0 @@ -// @dynamic -// An explicitly any-typed globalThis binding reaches the island's actual -// globals, including Node shims even when this program embeds no npm module. -const host: any = globalThis; -console.log(typeof host.process, host === (globalThis as any), host.global === host); -console.log(typeof host.Buffer, host.process === (globalThis as any).process); - -const decoder: any = new (globalThis as any).TextDecoder("utf-8"); -console.log(`${decoder.decode(new Uint8Array([72, 105]))}`); -host.process.stdout.write("host write\n"); -console.log(host.__scriptc_absent__ === undefined); - -function localGlobal(): string { - const local: any = globalThis; - return typeof local.Array; -} -console.log(localGlobal()); diff --git a/tests/corpus/3113-union-array-removal.ts b/tests/corpus/3113-union-array-removal.ts index f66e88e04..2e101c68f 100644 --- a/tests/corpus/3113-union-array-removal.ts +++ b/tests/corpus/3113-union-array-removal.ts @@ -57,3 +57,10 @@ for (let i = 0; i < 40; i++) { if (temporary.length !== 0) throw new Error("not empty"); } console.log("removed"); + +// A typed array of checked values needs no extra union box for undefined. +function shiftChecked(values: T[]): T | undefined { return values.shift(); } +function popChecked(values: T[]): T | undefined { return values.pop(); } +const checked: unknown[] = [{ value: 7 }, "last"]; +console.log(popChecked(checked), shiftChecked(checked)); +console.log(popChecked(checked), shiftChecked(checked), checked.length); diff --git a/tests/corpus/4067-dynamic-import-cycle-tdz/main.ts b/tests/corpus/4067-dynamic-import-cycle-tdz/main.ts index 9ba01e112..fba0de1f1 100644 --- a/tests/corpus/4067-dynamic-import-cycle-tdz/main.ts +++ b/tests/corpus/4067-dynamic-import-cycle-tdz/main.ts @@ -1,4 +1,3 @@ -// @dynamic // import() of a module whose cycle partner reads a const of it at top // level: the partner evaluates first, its read throws ReferenceError, and // the import() promise rejects with that error. diff --git a/tests/corpus/762-any-boundary.ts b/tests/corpus/762-any-boundary.ts index 7c224bfc3..46ce8af7a 100644 --- a/tests/corpus/762-any-boundary.ts +++ b/tests/corpus/762-any-boundary.ts @@ -1,4 +1,3 @@ -// @dynamic // The boundary: static values marshal INTO the island (primitives by // value, JSON-safe composites as deep copies); `any` values exit through // VALIDATED extraction (strict primitives, JSON round-trip composites). diff --git a/tests/corpus/764-any-async.ts b/tests/corpus/764-any-async.ts index d2955bf2f..e244e590e 100644 --- a/tests/corpus/764-any-async.ts +++ b/tests/corpus/764-any-async.ts @@ -1,4 +1,3 @@ -// @dynamic // Island operations inside async functions run on ucontext fibers — every // entry re-anchors the engine's stack check (the fiber-safety contract). // The ops after `await` run on a RESUMED fiber, the strictest case. diff --git a/tests/corpus/765-any-optional-chain.ts b/tests/corpus/765-any-optional-chain.ts index eba0a334a..f689b6651 100644 --- a/tests/corpus/765-any-optional-chain.ts +++ b/tests/corpus/765-any-optional-chain.ts @@ -1,4 +1,3 @@ -// @dynamic // Optional chaining on 'any' (island-handle) receivers: null/undefined // receivers short-circuit to undefined — argument side effects included — // and anything else proceeds as the plain engine operation. Member reads, diff --git a/tests/corpus/766-any-union-boundary.ts b/tests/corpus/766-any-union-boundary.ts index b58705d87..14fab633f 100644 --- a/tests/corpus/766-any-union-boundary.ts +++ b/tests/corpus/766-any-union-boundary.ts @@ -1,4 +1,3 @@ -// @dynamic // Crossings INTO the island beyond the JSON set: undefined/null-armed // unions (a runtime tag switch — unit arms become the engine's OWN // undefined/null, so a property spelled `tag: maybeUndefined` exists with diff --git a/tests/corpus/767-string-literal-keys.ts b/tests/corpus/767-string-literal-keys.ts index 3dfeef2c2..ee67c0ed4 100644 --- a/tests/corpus/767-string-literal-keys.ts +++ b/tests/corpus/767-string-literal-keys.ts @@ -1,4 +1,3 @@ -// @dynamic // STRING-LITERAL property keys (`"content-type": v`) in object literals: // record field names are data, not identifiers. Declared-field records // serialize in canonical order (fields alphabetical here — the json diff --git a/tests/corpus/768-any-uninitialized.ts b/tests/corpus/768-any-uninitialized.ts index 897e5997d..e3d640194 100644 --- a/tests/corpus/768-any-uninitialized.ts +++ b/tests/corpus/768-any-uninitialized.ts @@ -1,4 +1,3 @@ -// @dynamic // Uninitialized 'any' bindings hold the ENGINE's undefined, JS-exact — // tsc's definite-assignment analysis never guards `any` reads, so every // spelling below is readable immediately and must behave like Node's diff --git a/tests/corpus/contextual-array-union-write.ts b/tests/corpus/contextual-array-union-write.ts index f8659c9bd..7f40244ff 100644 --- a/tests/corpus/contextual-array-union-write.ts +++ b/tests/corpus/contextual-array-union-write.ts @@ -22,17 +22,17 @@ console.log(valueOf(reversed)); // callback parameter narrowed by one of its nested discriminants. const location: SrcLoc = { file: "fixture.ts", start: 0, end: 1 }; const booleanType: IrType = { kind: "bool" }; -const jsType: IrType = { kind: "jsval" }; +const stringType: IrType = { kind: "string" }; const dynType: IrType = { kind: "dyn" }; const expressions: IrExpr[] = [ { kind: "boolLit", value: true, type: booleanType, loc: location }, - { kind: "jsOp", op: "undefLit", args: [], type: jsType, loc: location }, + { kind: "strLit", value: "native", type: stringType, loc: location }, ]; expressions.forEach((value, index) => { - if (value.type.kind === "jsval") { - expressions[index] = { kind: "dynFromJsval", value, type: dynType, loc: value.loc }; + if (value.type.kind === "string") { + expressions[index] = { kind: "dynFrom", value, type: dynType, loc: value.loc }; } else { - expressions[index] = { kind: "jsMarshal", value, type: jsType, loc: value.loc }; + expressions[index] = { kind: "logical", op: "&&", left: value, right: value, type: booleanType, loc: value.loc }; } }); console.log(expressions.map((value) => value.kind).join(",")); @@ -43,10 +43,9 @@ const logical = expressions.reduce((left, right) => ({ console.log(logical.kind, logical.kind === "logical" && logical.left.kind); const getters = [{ name: "one", fn: initial }, { name: "two", fn: initial }]; const withGetters = getters.reduceRight((value, getter) => ({ - kind: "jsOp", op: "defineGetter", args: [ - value, - { kind: "jsMarshal", value: { kind: "strLit", value: getter.name, type: { kind: "string" }, loc: location }, type: jsType, loc: location }, - getter.fn, - ], type: jsType, loc: location, + kind: "recordLit", fields: [ + { name: getter.name, value }, + { name: "getter", value: getter.fn }, + ], type: { kind: "record", shapeId: "fixture" }, loc: location, }), initial); -console.log(withGetters.kind, withGetters.kind === "jsOp" && withGetters.args.length); +console.log(withGetters.kind, withGetters.kind === "recordLit" && withGetters.fields.length); diff --git a/tests/corpus/native-any-timer-callback.ts b/tests/corpus/native-any-timer-callback.ts new file mode 100644 index 000000000..f675ce425 --- /dev/null +++ b/tests/corpus/native-any-timer-callback.ts @@ -0,0 +1,2 @@ +const cb: any = () => {}; +setTimeout(cb, 1); diff --git a/tests/diagnostics/npm-imports/main.ts b/tests/corpus/native-npm-imports/main.ts similarity index 51% rename from tests/diagnostics/npm-imports/main.ts rename to tests/corpus/native-npm-imports/main.ts index bba489e6d..6563714dc 100644 --- a/tests/diagnostics/npm-imports/main.ts +++ b/tests/corpus/native-npm-imports/main.ts @@ -1,7 +1,4 @@ -// npm imports in a STATIC build: every value import reports the -// requires-dynamic diagnostic naming the package, and each reached use of -// a package-declared value reports per site — attributed to the package, -// never the type name. Type-only imports are free. +// Installed dependencies compile natively by default; type-only imports have no runtime cost. import { Calc, origin } from "mathkit"; import { convert } from "@acme/units"; import type { Vector } from "mathkit"; diff --git a/tests/diagnostics/npm-imports/node_modules/@acme/units/index.d.ts b/tests/corpus/native-npm-imports/node_modules/@acme/units/index.d.ts similarity index 100% rename from tests/diagnostics/npm-imports/node_modules/@acme/units/index.d.ts rename to tests/corpus/native-npm-imports/node_modules/@acme/units/index.d.ts diff --git a/tests/diagnostics/npm-imports/node_modules/@acme/units/index.js b/tests/corpus/native-npm-imports/node_modules/@acme/units/index.js similarity index 100% rename from tests/diagnostics/npm-imports/node_modules/@acme/units/index.js rename to tests/corpus/native-npm-imports/node_modules/@acme/units/index.js diff --git a/tests/diagnostics/npm-imports/node_modules/@acme/units/package.json b/tests/corpus/native-npm-imports/node_modules/@acme/units/package.json similarity index 100% rename from tests/diagnostics/npm-imports/node_modules/@acme/units/package.json rename to tests/corpus/native-npm-imports/node_modules/@acme/units/package.json diff --git a/tests/diagnostics/npm-imports/node_modules/mathkit/index.d.ts b/tests/corpus/native-npm-imports/node_modules/mathkit/index.d.ts similarity index 100% rename from tests/diagnostics/npm-imports/node_modules/mathkit/index.d.ts rename to tests/corpus/native-npm-imports/node_modules/mathkit/index.d.ts diff --git a/tests/diagnostics/npm-imports/node_modules/mathkit/index.js b/tests/corpus/native-npm-imports/node_modules/mathkit/index.js similarity index 100% rename from tests/diagnostics/npm-imports/node_modules/mathkit/index.js rename to tests/corpus/native-npm-imports/node_modules/mathkit/index.js diff --git a/tests/diagnostics/npm-imports/node_modules/mathkit/package.json b/tests/corpus/native-npm-imports/node_modules/mathkit/package.json similarity index 100% rename from tests/diagnostics/npm-imports/node_modules/mathkit/package.json rename to tests/corpus/native-npm-imports/node_modules/mathkit/package.json diff --git a/tests/coverage-fixtures/dynamic-mix.ts b/tests/coverage-fixtures/dynamic-mix.ts index 9ce92dba4..0c9779a64 100644 --- a/tests/coverage-fixtures/dynamic-mix.ts +++ b/tests/coverage-fixtures/dynamic-mix.ts @@ -1,11 +1,10 @@ // Native checked values and loose equality share this program with -// island-backed APIs (SC2012) and explicit island evaluation (SC2010). +// island-backed APIs (SC2012) with native compilation refusals. const v: any = 21; const doubled = v * 2; const root = Math.cbrt(81); const up = (19.99).toPrecision(3); const parsed = Number.parseFloat("1.5"); // a string argument compiles statically, like the global -const raw = __island_eval("6 * 7"); const unknownScore: unknown = 81; const flags = unknownScore == 81; console.log("done"); diff --git a/tests/diagnostics/any-unit-exit.ts b/tests/diagnostics/any-unit-exit.ts deleted file mode 100644 index 3e94e720b..000000000 --- a/tests/diagnostics/any-unit-exit.ts +++ /dev/null @@ -1,22 +0,0 @@ -// @dynamic -// An 'any' value PROVABLY null/undefined flowing into a primitive slot is -// a compile-time fence, not a runtime TypeError: the validated exit -// refuses units unconditionally, so the program could only ever throw -// where Node proceeds silently. Three provable spellings: a const bound -// to null, a `var` nothing ever assigns, and a hoisted `var` whose only -// initializer is a unit (undefined before the statement, null after — -// the message names both). Explicit casts keep their runtime checked-cast -// semantics and stay compilable (the island harness pins that). -const a: any = null; -const b: string = a; - -function foo(test: string): number { - return test.length; -} -var x: any; -foo(x); - -var mixed: any = null; -const n: number = mixed; - -export const marker: number = b.length + n; diff --git a/tests/diagnostics/island-boundary-slots.ts b/tests/diagnostics/island-boundary-slots.ts deleted file mode 100644 index baaee27cf..000000000 --- a/tests/diagnostics/island-boundary-slots.ts +++ /dev/null @@ -1,9 +0,0 @@ -// @dynamic -// Island ('any'-typed) values in builtin-call slots OUTSIDE the validated -// exit set: primitive and JSON-safe slots exit through the island bridge -// (corpus 2440); a slot typed as a FUNCTION has no island exit — an engine -// function cannot cross into a static callback slot — so the boundary -// pass fences with the slot named instead of handing the validator a -// jsval-typed argument. -const cb: any = () => {}; -setTimeout(cb, 1); diff --git a/tests/diagnostics/island.ts b/tests/diagnostics/island.ts deleted file mode 100644 index 18ee7a08a..000000000 --- a/tests/diagnostics/island.ts +++ /dev/null @@ -1,10 +0,0 @@ -// __island_eval only exists in --dynamic builds (the engine is linked); a -// static build must say so cleanly — a diagnostic naming the flag, not an -// ICE and never a C-level link error. -const r = __island_eval("6 * 7"); -console.log(r); - -function indirect(code: string): string { - return __island_eval(code); -} -console.log(indirect("1 + 1")); diff --git a/tests/corpus/1112-number-methods.ts b/tests/diagnostics/retired-engine-1112-number-methods.ts similarity index 98% rename from tests/corpus/1112-number-methods.ts rename to tests/diagnostics/retired-engine-1112-number-methods.ts index 82a7fd0b0..c96f9df00 100644 --- a/tests/corpus/1112-number-methods.ts +++ b/tests/diagnostics/retired-engine-1112-number-methods.ts @@ -1,4 +1,3 @@ -// @dynamic // Explicit toFixed is static; toPrecision/toString(radix) execute in the // island. The receiver marshals by value there and the engine auto-boxes // it, so `this` binds the number exactly as in JS. All stay byte-exact diff --git a/tests/corpus/1123-any-conditional-spread.ts b/tests/diagnostics/retired-engine-1123-any-conditional-spread.ts similarity index 99% rename from tests/corpus/1123-any-conditional-spread.ts rename to tests/diagnostics/retired-engine-1123-any-conditional-spread.ts index 270cb9a58..03043a32f 100644 --- a/tests/corpus/1123-any-conditional-spread.ts +++ b/tests/diagnostics/retired-engine-1123-any-conditional-spread.ts @@ -1,4 +1,3 @@ -// @dynamic // The conditional-spread idiom inside `any`-typed object literals: // `{ a, ...(c ? { k: v } : {}) }` builds one of two engine literals behind // the test, so the key is truly ABSENT when the empty arm is taken — diff --git a/tests/corpus/1587-any-field-unassigned.ts b/tests/diagnostics/retired-engine-1587-any-field-unassigned.ts similarity index 97% rename from tests/corpus/1587-any-field-unassigned.ts rename to tests/diagnostics/retired-engine-1587-any-field-unassigned.ts index b41f427ec..3f944a8a1 100644 --- a/tests/corpus/1587-any-field-unassigned.ts +++ b/tests/diagnostics/retired-engine-1587-any-field-unassigned.ts @@ -1,4 +1,3 @@ -// @dynamic // An `any`-typed class field lives in the island engine. Declared but // never assigned in the constructor, it reads as the engine's undefined // on a fresh instance — Node's answer — not as a dead handle. diff --git a/tests/corpus/2083-destructuring-island-decl.ts b/tests/diagnostics/retired-engine-2083-destructuring-island-decl.ts similarity index 98% rename from tests/corpus/2083-destructuring-island-decl.ts rename to tests/diagnostics/retired-engine-2083-destructuring-island-decl.ts index 877262df6..d1cb6b441 100644 --- a/tests/corpus/2083-destructuring-island-decl.ts +++ b/tests/diagnostics/retired-engine-2083-destructuring-island-decl.ts @@ -1,4 +1,3 @@ -// @dynamic // Declaration-position destructuring over ISLAND sources runs the REAL // pattern in a synthesized strict-mode engine function: holes, nesting, // rest, empty patterns (RequireObjectCoercible on object patterns, the diff --git a/tests/corpus/2084-destructuring-primitive-sources.ts b/tests/diagnostics/retired-engine-2084-destructuring-primitive-sources.ts similarity index 98% rename from tests/corpus/2084-destructuring-primitive-sources.ts rename to tests/diagnostics/retired-engine-2084-destructuring-primitive-sources.ts index 479a88f30..b7981158d 100644 --- a/tests/corpus/2084-destructuring-primitive-sources.ts +++ b/tests/diagnostics/retired-engine-2084-destructuring-primitive-sources.ts @@ -1,4 +1,3 @@ -// @dynamic // Destructuring PRIMITIVE and unit sources (`let { toFixed } = 1`): JS // reads through the value's wrapper object — prototype members included — // or throws its TypeError on null/undefined. Under --dynamic the value diff --git a/tests/corpus/2086-destructuring-island-globals.ts b/tests/diagnostics/retired-engine-2086-destructuring-island-globals.ts similarity index 97% rename from tests/corpus/2086-destructuring-island-globals.ts rename to tests/diagnostics/retired-engine-2086-destructuring-island-globals.ts index 6d07f3244..c4971d8e1 100644 --- a/tests/corpus/2086-destructuring-island-globals.ts +++ b/tests/diagnostics/retired-engine-2086-destructuring-island-globals.ts @@ -1,4 +1,3 @@ -// @dynamic // Module-scope PATTERN bindings over island-bound sources store HANDLES: // a file-scope `export let { toString } = 1` extracts the wrapper's // prototype member in the engine, and the global slot follows the island diff --git a/tests/corpus/2103-optional-tuple-elements.ts b/tests/diagnostics/retired-engine-2103-optional-tuple-elements.ts similarity index 99% rename from tests/corpus/2103-optional-tuple-elements.ts rename to tests/diagnostics/retired-engine-2103-optional-tuple-elements.ts index a7e391a22..52a71b55a 100644 --- a/tests/corpus/2103-optional-tuple-elements.ts +++ b/tests/diagnostics/retired-engine-2103-optional-tuple-elements.ts @@ -1,4 +1,3 @@ -// @dynamic // Tuples with OPTIONAL elements (`[string?, number?]`): the arity is a // runtime fact no fixed shape carries, so the value lives in the engine — // a real JS array with its true length. Destructuring declarations and diff --git a/tests/corpus/2104-computed-key-destructuring.ts b/tests/diagnostics/retired-engine-2104-computed-key-destructuring.ts similarity index 99% rename from tests/corpus/2104-computed-key-destructuring.ts rename to tests/diagnostics/retired-engine-2104-computed-key-destructuring.ts index a03679940..572bea4c4 100644 --- a/tests/corpus/2104-computed-key-destructuring.ts +++ b/tests/diagnostics/retired-engine-2104-computed-key-destructuring.ts @@ -1,4 +1,3 @@ -// @dynamic // Computed keys in destructuring patterns over ISLAND sources: the // engine runs the REAL pattern, so runtime-valued keys read at exactly // JS's pattern position. Compiled-scope identifiers pass in as extra diff --git a/tests/corpus/2251-tagged-templates-dyn.ts b/tests/diagnostics/retired-engine-2251-tagged-templates-dyn.ts similarity index 98% rename from tests/corpus/2251-tagged-templates-dyn.ts rename to tests/diagnostics/retired-engine-2251-tagged-templates-dyn.ts index 80ddc97c1..3600488df 100644 --- a/tests/corpus/2251-tagged-templates-dyn.ts +++ b/tests/diagnostics/retired-engine-2251-tagged-templates-dyn.ts @@ -1,4 +1,3 @@ -// @dynamic // Tagged templates whose tags touch the dynamic tier: `any[]`-rest tags // (the corpus's dominant shape — the strings array and every value cross // the checked-dynamic boundary per call), `any`-typed parameters, and a diff --git a/tests/corpus/2513-dyn-evolving-array-derived.ts b/tests/diagnostics/retired-engine-2513-dyn-evolving-array-derived.ts similarity index 98% rename from tests/corpus/2513-dyn-evolving-array-derived.ts rename to tests/diagnostics/retired-engine-2513-dyn-evolving-array-derived.ts index 147c11088..6013a79b3 100644 --- a/tests/corpus/2513-dyn-evolving-array-derived.ts +++ b/tests/diagnostics/retired-engine-2513-dyn-evolving-array-derived.ts @@ -1,4 +1,3 @@ -// @dynamic // Derived values of an evolving-`any` closure array, at file scope and in // a function body: slice and concat preserve the handle-element array // (JS's IsArray decides concat's spread over the VALUE, not the evolved diff --git a/tests/corpus/2667-array-to-sorted-any.ts b/tests/diagnostics/retired-engine-2667-array-to-sorted-any.ts similarity index 98% rename from tests/corpus/2667-array-to-sorted-any.ts rename to tests/diagnostics/retired-engine-2667-array-to-sorted-any.ts index 4da887c39..aa1b081e4 100644 --- a/tests/corpus/2667-array-to-sorted-any.ts +++ b/tests/diagnostics/retired-engine-2667-array-to-sorted-any.ts @@ -1,4 +1,3 @@ -// @dynamic // Explicit any[] stays a static array of engine handles. Array.toSorted must // still sink engine undefined values without invoking compareFn for them. diff --git a/tests/corpus/2790-array-missing-tagged-substitutions.ts b/tests/diagnostics/retired-engine-2790-array-missing-tagged-substitutions.ts similarity index 97% rename from tests/corpus/2790-array-missing-tagged-substitutions.ts rename to tests/diagnostics/retired-engine-2790-array-missing-tagged-substitutions.ts index fab0b0512..1a2d73ff7 100644 --- a/tests/corpus/2790-array-missing-tagged-substitutions.ts +++ b/tests/diagnostics/retired-engine-2790-array-missing-tagged-substitutions.ts @@ -1,4 +1,3 @@ -// @dynamic // Missing substitutions remain undefined across both a typed direct tag and // the dynamic rest-argument tag ABI. const values = ["ok"]; diff --git a/tests/corpus/760-any-arithmetic.ts b/tests/diagnostics/retired-engine-760-any-arithmetic.ts similarity index 98% rename from tests/corpus/760-any-arithmetic.ts rename to tests/diagnostics/retired-engine-760-any-arithmetic.ts index 644075ccc..46b8d9c43 100644 --- a/tests/corpus/760-any-arithmetic.ts +++ b/tests/diagnostics/retired-engine-760-any-arithmetic.ts @@ -1,4 +1,3 @@ -// @dynamic // Arithmetic and coercion on `any` values execute in the embedded engine // with JS-exact semantics; templates stringify via the engine's String(). const n: any = 41; diff --git a/tests/corpus/761-any-objects.ts b/tests/diagnostics/retired-engine-761-any-objects.ts similarity index 98% rename from tests/corpus/761-any-objects.ts rename to tests/diagnostics/retired-engine-761-any-objects.ts index 6e8528704..59796020b 100644 --- a/tests/corpus/761-any-objects.ts +++ b/tests/diagnostics/retired-engine-761-any-objects.ts @@ -1,4 +1,3 @@ -// @dynamic // Object/array literals in `any` slots build natively in the island; // property reads/writes, computed keys, and method calls go through the // engine (this-binding and coercions JS-exact). diff --git a/tests/corpus/763-any-flow.ts b/tests/diagnostics/retired-engine-763-any-flow.ts similarity index 98% rename from tests/corpus/763-any-flow.ts rename to tests/diagnostics/retired-engine-763-any-flow.ts index a652a975f..4a1156d65 100644 --- a/tests/corpus/763-any-flow.ts +++ b/tests/diagnostics/retired-engine-763-any-flow.ts @@ -1,4 +1,3 @@ -// @dynamic // `any` values flow through static functions, logical operators keep JS // value semantics through the island, compound assignment works, and a // churn loop pressures the RC/engine boundary (the SAN lane's real test). diff --git a/tests/corpus/968-jsval-lift.ts b/tests/diagnostics/retired-engine-968-jsval-lift.ts similarity index 99% rename from tests/corpus/968-jsval-lift.ts rename to tests/diagnostics/retired-engine-968-jsval-lift.ts index 50c251254..5923ff719 100644 --- a/tests/corpus/968-jsval-lift.ts +++ b/tests/diagnostics/retired-engine-968-jsval-lift.ts @@ -1,4 +1,3 @@ -// @dynamic // jsval-BEARING composites lift into island slots: a record holding `any` // fields becomes an island OBJECT (field by field — `any` members cross as // the same handle, JSON-safe members deep-copy), and an array of such diff --git a/tests/diagnostics/retired-engine-import-refusal/main.ts b/tests/diagnostics/retired-engine-import-refusal/main.ts new file mode 100644 index 000000000..a9560be44 --- /dev/null +++ b/tests/diagnostics/retired-engine-import-refusal/main.ts @@ -0,0 +1,4 @@ +// A types-only package has no runtime source to compile. Refuse the +// missing implementation during the build, before evaluating the program. +import { x } from "brokenrt"; +console.log("never"); diff --git a/tests/corpus/2122-import-refusal-crash/node_modules/brokenrt/index.d.ts b/tests/diagnostics/retired-engine-import-refusal/node_modules/brokenrt/index.d.ts similarity index 100% rename from tests/corpus/2122-import-refusal-crash/node_modules/brokenrt/index.d.ts rename to tests/diagnostics/retired-engine-import-refusal/node_modules/brokenrt/index.d.ts diff --git a/tests/corpus/2122-import-refusal-crash/node_modules/brokenrt/package.json b/tests/diagnostics/retired-engine-import-refusal/node_modules/brokenrt/package.json similarity index 100% rename from tests/corpus/2122-import-refusal-crash/node_modules/brokenrt/package.json rename to tests/diagnostics/retired-engine-import-refusal/node_modules/brokenrt/package.json diff --git a/tests/fixtures/commander-calc/README.md b/tests/fixtures/commander-calc/README.md index 830d1add3..62c0f428c 100644 --- a/tests/fixtures/commander-calc/README.md +++ b/tests/fixtures/commander-calc/README.md @@ -1,6 +1,6 @@ # commander-calc fixture -The npm-dependency acceptance test: `calc.ts` is a calculator CLI built on the real `commander` package, compiled with `--dynamic` and byte-compared against Node across argv fixtures (tests/harness/npm.test.ts). `calc-npm-static.ts` is the focused static-package acceptance path. +`calc.ts` is a calculator CLI built on the real `commander` package, retained for frontend and resolution benchmarks. `calc-npm-static.ts` exercises native package compilation. The vendored `node_modules` is committed test data on purpose — the test must exercise a real published package, pinned: diff --git a/tests/fixtures/fetch/cases/abort-signal/main.ts b/tests/fixtures/fetch/cases/abort-signal/main.ts index 8d4d68a96..716e971e0 100644 --- a/tests/fixtures/fetch/cases/abort-signal/main.ts +++ b/tests/fixtures/fetch/cases/abort-signal/main.ts @@ -1,5 +1,4 @@ -// @dynamic -// AbortController/AbortSignal driving the embedded fetch against the +// AbortController/AbortSignal driving the native fetch against the // harness's local HTTP server (argv[2]): pre-aborted, mid-flight, // mid-stream, timeout, any(), Request-carried signals, and the quiet // path. Byte-exact vs Node — the DOMException shapes are Node's. diff --git a/tests/fixtures/fetch/cases/fetch-cause/main.ts b/tests/fixtures/fetch/cases/fetch-cause/main.ts deleted file mode 100644 index 62f7213a7..000000000 --- a/tests/fixtures/fetch/cases/fetch-cause/main.ts +++ /dev/null @@ -1,15 +0,0 @@ -// The network-failure rejection's CAUSE, Node's shape: a refused -// connection rejects with TypeError "fetch failed" whose cause is a plain -// Error carrying `connect ECONNREFUSED host:port`, code ECONNREFUSED, and -// syscall connect — the fields AI-SDK-style wrappers classify retryable -// network errors by (provider-utils' handleFetchError reads exactly -// these; the real-CLI retry path is the motivating consumer). The probe -// lives in package code — where those consumers live. argv[3] is the -// harness's just-released local port. -import { probeRefused } from "fetchcause"; - -async function main(): Promise { - await probeRefused(process.argv[3]!); -} - -main().catch(() => {}); diff --git a/tests/fixtures/fetch/cases/fetch-suite/main.ts b/tests/fixtures/fetch/cases/fetch-suite/main.ts deleted file mode 100644 index b11c29b58..000000000 --- a/tests/fixtures/fetch/cases/fetch-suite/main.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @dynamic -// Embedded npm code issuing REAL requests against the harness's local -// HTTP server (argv[2]); argv[3] points at a port with no listener (the -// rejection path). Byte-exact vs Node. -import { run } from "webfetch"; - -run(process.argv[2], process.argv[3]); diff --git a/tests/fixtures/fetch/cases/island-http/main.ts b/tests/fixtures/fetch/cases/island-http/main.ts deleted file mode 100644 index 8ebe16fe8..000000000 --- a/tests/fixtures/fetch/cases/island-http/main.ts +++ /dev/null @@ -1,8 +0,0 @@ -// @dynamic -// Embedded npm code driving the island's node:http CLIENT against the -// harness's local server (argv[2]); argv[3] is the refused port. The -// island's http rides scr_net + scr_http's client parser — byte-exact -// vs Node's core http. -import { run } from "islandhttp"; - -run(process.argv[2], process.argv[3]); diff --git a/tests/fixtures/fetch/cases/patched-global-fetch/main.ts b/tests/fixtures/fetch/cases/patched-global-fetch/main.ts deleted file mode 100644 index e29f3d047..000000000 --- a/tests/fixtures/fetch/cases/patched-global-fetch/main.ts +++ /dev/null @@ -1,24 +0,0 @@ -// The polyfill/interceptor pattern end-to-end: an island package's module -// init replaces globalThis.fetch BEFORE later code runs (module order — -// the dotenv/config shape), and USER-code fetch reads the LIVE global at -// call time, so both the user request and an embedded package's request -// route through the wrapper, which rewrites a fake origin to the local -// server. Byte-exact vs Node: tap logs, response body, and the wrapper -// surviving for a second call. -import { tappedFetchName } from "fetchtap"; - -async function main(): Promise { - console.log(`wrapper installed: ${tappedFetchName()}`); - const res = await fetch("https://gateway.invalid/text", { - signal: AbortSignal.timeout(5000), - }); - const body = await res.text(); - console.log(`user-fetch ${res.status} ${body}`); - const res2 = await fetch("https://gateway.invalid/json"); - const json = (await res2.json()) as { n: number; s: string }; - console.log(`user-fetch-2 ${res2.status} n=${json.n} s=${json.s}`); -} - -main().catch((e) => { - console.log(`FATAL ${e instanceof Error ? e.message : String(e)}`); -}); diff --git a/tests/fixtures/fetch/cases/redirect-resolution/main.ts b/tests/fixtures/fetch/cases/redirect-resolution/main.ts index 31c4c15b7..e35cab029 100644 --- a/tests/fixtures/fetch/cases/redirect-resolution/main.ts +++ b/tests/fixtures/fetch/cases/redirect-resolution/main.ts @@ -1,5 +1,4 @@ -// @dynamic -// Redirect URL resolution must remain byte-identical in the island-backed +// Redirect URL resolution must remain byte-identical in the native // transport: fragments preserve the current resource, while backslashes in // special URLs behave as forward slashes. async function main(baseUrl: string, redirectKey: string): Promise { diff --git a/tests/fixtures/fetch/cases/response-surface/main.ts b/tests/fixtures/fetch/cases/response-surface/main.ts deleted file mode 100644 index 6c7c20bb2..000000000 --- a/tests/fixtures/fetch/cases/response-surface/main.ts +++ /dev/null @@ -1,83 +0,0 @@ -// @dynamic -// The Response surface beyond the probe members: r.headers is the engine's -// real Headers (get/has/getSetCookie/forEach — lowercase names, -// combine-on-append, sorted iteration), arrayBuffer() resolves to an -// engine ArrayBuffer of the body bytes (its byteLength reads directly), -// bytes() exits into a static Uint8Array copy at the typed boundary, and -// url/redirected/bodyUsed answer the fetch-spec values. Island results -// exit through TYPED bindings (the user-fetch pattern). Byte-exact vs Node. - -async function main(baseUrl: string): Promise { - // Headers off a live response: get (present, missing → null), has, - // getSetCookie on a cookie-less response, and the sorted forEach walk - // (filtered to the fixture's own x- names — wire noise stays out). - const r = await fetch(`${baseUrl}/text`); - const responseType: string = (r as any).type; - console.log("type:", responseType); - const ct = r.headers["get"]("content-type"); - const kind = r.headers.get("x-kind"); - const missing = r.headers.get("x-nope"); - console.log("ct:", ct ?? "none"); - console.log("kind:", kind ?? "none", "missing:", missing ?? "none"); - console.log("has:", r.headers.has("x-kind"), r.headers.has("x-nope")); - console.log("setCookie:", r.headers.getSetCookie().length); - r.headers.forEach((v, k) => { - if (k.startsWith("x-")) console.log("hdr:", k, "=", v); - }); - try { - const computedHeaderMember = (): "get" | "has" => "missing" as "get"; - const member = computedHeaderMember(); - r.headers[member]("x-kind"); - console.log("computed member unexpectedly accepted"); - } catch (error) { - console.log("computed member:", (error as Error).name); - } - const explicitIterator = r.headers[Symbol.iterator](); - const explicitFirst = explicitIterator.next(); - console.log( - "iterator:", - explicitFirst.done ? "done" : explicitFirst.value[0], - explicitFirst.done ? "done" : explicitFirst.value[1], - ); - let iteratedHeaders = 0; - for (const [k] of r.headers) { - if (k.startsWith("x-")) iteratedHeaders++; - } - console.log("for-of:", iteratedHeaders); - const spreadHeaders = [...r.headers]; - console.log("spread:", spreadHeaders.length); - const [destructuredFirst] = r.headers; - console.log("destructure:", destructuredFirst[0], destructuredFirst[1]); - const text: string = await r["text"](); - console.log("used:", r.bodyUsed, "url-tail:", r.url.endsWith("/text"), "redirected:", r.redirected); - console.log("text:", text); - - // Duplicate response headers combine on read (x-multi: a, b). - const echoInit: RequestInit = { - headers: { "x-echo-one": "1", "x-echo-two": "2" }, - }; - const he = await fetch(`${baseUrl}/header-echo`, { ...echoInit }); - const multi = he.headers.get("x-multi"); - const latin = he.headers.get("x-latin") ?? ""; - const echoed: string = await he.text(); - console.log("multi:", multi ?? "none"); - console.log("latin:", latin, latin.charCodeAt(0)); - console.log("echo:", echoed); - - // arrayBuffer(): the whole body as an engine ArrayBuffer handle. - const jr = await fetch(`${baseUrl}/json`); - const ab = await jr.arrayBuffer(); - console.log("ab:", ab.byteLength); - - // bytes(): a Uint8Array that exits to the static bytes tier (a copy). - const tr = await fetch(`${baseUrl}/text`); - const b: Uint8Array = await tr.bytes(); - console.log("bytes:", b.length, b[0], b[b.length - 1]); - - // Through a redirect, url names the FINAL target and redirected flips. - const rd = await fetch(`${baseUrl}/redirect`); - const rdBody: string = await rd.text(); - console.log("rd:", rd.redirected, rd.url.endsWith("/text"), rdBody); -} - -main(process.argv[2]); diff --git a/tests/fixtures/fetch/cases/sse-eventsource/main.ts b/tests/fixtures/fetch/cases/sse-eventsource/main.ts deleted file mode 100644 index 78d22645a..000000000 --- a/tests/fixtures/fetch/cases/sse-eventsource/main.ts +++ /dev/null @@ -1,7 +0,0 @@ -// @dynamic -// The AI-SDK streaming shape end-to-end: a chunked SSE response consumed -// through TextDecoderStream → EventSourceParserStream (the real -// eventsource-parser package, embedded), byte-exact vs Node. -import { runSse } from "ssefetch"; - -runSse(process.argv[2]); diff --git a/tests/fixtures/fetch/cases/stream-from-immediate-cancel/main.ts b/tests/fixtures/fetch/cases/stream-from-immediate-cancel/main.ts deleted file mode 100644 index 306dcb029..000000000 --- a/tests/fixtures/fetch/cases/stream-from-immediate-cancel/main.ts +++ /dev/null @@ -1,18 +0,0 @@ -// @dynamic -// ReadableStream.from() iterator acquisition, async chunk identity, immediate -// cancellation, and fetch's RequestInit getter census. Byte-exact against the -// pinned Node runtime through code executing inside the dynamic island. -import { - inheritedRequestBodyMethodOverrides, - immediateCancelIterable, - requestInitConversionOrder, - requestInitReadOrder, - streamFromProtocolProbe, -} from "stream-from-cancel-probe"; - -await ReadableStream.from(immediateCancelIterable() as any).cancel("why"); -console.log("immediate cancel done"); -await streamFromProtocolProbe(); -await requestInitReadOrder(`${process.argv[2]}/text`); -await requestInitConversionOrder(`${process.argv[2]}/text`); -await inheritedRequestBodyMethodOverrides(`${process.argv[2]}/text`); diff --git a/tests/fixtures/fetch/cases/user-fetch/main.ts b/tests/fixtures/fetch/cases/user-fetch/main.ts index 82bb221e0..7b2abd706 100644 --- a/tests/fixtures/fetch/cases/user-fetch/main.ts +++ b/tests/fixtures/fetch/cases/user-fetch/main.ts @@ -1,12 +1,4 @@ -// @dynamic -// USER-code fetch — the island-backed ambient in the program's OWN -// TypeScript (no npm package in sight): `await fetch(url)` bridges the -// engine promise to a static one, the Response is an island handle whose -// members are engine ops (ok/status/statusText probe reads, json() through -// a checked cast, text() into a string slot), init literals build natively -// in the island (method/headers/body/signal), AbortSignal.timeout cancels, -// and network failure rejects catchably. Byte-exact vs Node. - +// Typed native fetch, request/response streaming, redirects, and cancellation. async function requestStream(baseUrl: string): Promise> { const response = await fetch(`${baseUrl}/chunked`); if (response.body === null) throw new Error("missing response body"); @@ -14,7 +6,7 @@ async function requestStream(baseUrl: string): Promise { - const constructed = new Response("island response", { + const constructed = new Response("native response", { status: 202, statusText: "Accepted", headers: { "x-constructed": "yes" }, @@ -31,13 +23,13 @@ async function main(baseUrl: string, refusedUrl: string): Promise { constructedBody, ); - // ok + status through the handle; json() exits through a checked cast. + // Response fields and JSON use native checked values. const r = await fetch(`${baseUrl}/json`); console.log("ok:", r.ok ? "yes" : "no", "status:", `${r.status}`); const j = (await r.json()) as { n: number; s: string; arr: (number | string)[] }; console.log("json:", j.n, j.s, j.arr.length); - // text() lands in a string slot through the validated exit. + // text() returns a native string. const t = await fetch(`${baseUrl}/text`); const body: string = await t.text(); console.log("text:", body); @@ -55,7 +47,7 @@ async function main(baseUrl: string, refusedUrl: string): Promise { console.log("nf-body:", nfBody); } - // POST with an init literal: method, headers, body cross the boundary. + // POST with a typed init literal. const echoed = await fetch(`${baseUrl}/post-echo`, { method: "POST", headers: { "content-type": "application/json", "x-user-tag": "native" }, @@ -68,8 +60,7 @@ async function main(baseUrl: string, refusedUrl: string): Promise { }; console.log("post:", ej.method, ej.contentType ?? "none", ej.body); - // A request ReadableStream crosses the island incrementally instead of - // being silently discarded. + // A response ReadableStream becomes an upload with live backpressure. const streamed = await fetch(`${baseUrl}/post-echo`, { method: "POST", body: await requestStream(baseUrl), @@ -112,7 +103,7 @@ async function main(baseUrl: string, refusedUrl: string): Promise { } } - // All three redirect policies are implemented by the dynamic bridge. + // All three redirect policies use the native transport. const manual = await fetch(`${baseUrl}/redirect`, { redirect: "manual" }); console.log( "manual redirect:", @@ -180,8 +171,7 @@ async function main(baseUrl: string, refusedUrl: string): Promise { if (e instanceof Error) console.log("timeout:", e.name, e.message); } - // Typed user code can also cancel imperatively under --dynamic; this - // exercises the compiler bridge into the island's AbortController. + // Typed user code can also cancel imperatively. const controller = new AbortController(); setTimeout(() => controller.abort(), 20); try { diff --git a/tests/fixtures/fetch/node_modules/abortfetch/index.js b/tests/fixtures/fetch/node_modules/abortfetch/index.js index c115b1056..422ea4e80 100644 --- a/tests/fixtures/fetch/node_modules/abortfetch/index.js +++ b/tests/fixtures/fetch/node_modules/abortfetch/index.js @@ -42,6 +42,7 @@ export function runAbort(base) { const res = await fetch(base + "/drip", { signal: c.signal }); const reader = res.body.getReader(); const first = await reader.read(); + if (first.done) throw new Error("missing first chunk"); out(`drip-first ${new TextDecoder().decode(first.value)}`); const pending = reader.read(); c.abort(); diff --git a/tests/fixtures/fetch/node_modules/eventsource-parser/LICENSE b/tests/fixtures/fetch/node_modules/eventsource-parser/LICENSE deleted file mode 100644 index 747ce3cf5..000000000 --- a/tests/fixtures/fetch/node_modules/eventsource-parser/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2026 Espen Hovlandsdal - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/tests/fixtures/fetch/node_modules/eventsource-parser/README-scriptc.md b/tests/fixtures/fetch/node_modules/eventsource-parser/README-scriptc.md deleted file mode 100644 index b583fba6b..000000000 --- a/tests/fixtures/fetch/node_modules/eventsource-parser/README-scriptc.md +++ /dev/null @@ -1,4 +0,0 @@ -Pinned test data: eventsource-parser 3.0.8 (MIT, see LICENSE), trimmed to -the ESM build and its types. The npm-fetch differential harness pipes a -real SSE response through EventSourceParserStream — the exact stream shape -the AI SDK consumes — under Node and under the scriptc island. diff --git a/tests/fixtures/fetch/node_modules/eventsource-parser/dist/index.d.ts b/tests/fixtures/fetch/node_modules/eventsource-parser/dist/index.d.ts deleted file mode 100644 index dd71385f6..000000000 --- a/tests/fixtures/fetch/node_modules/eventsource-parser/dist/index.d.ts +++ /dev/null @@ -1,146 +0,0 @@ -/** - * Creates a new EventSource parser. - * - * @param callbacks - Callbacks to invoke on different parsing events: - * - `onEvent` when a new event is parsed - * - `onError` when an error occurs - * - `onRetry` when a new reconnection interval has been sent from the server - * - `onComment` when a comment is encountered in the stream - * - * @returns A new EventSource parser, with `parse` and `reset` methods. - * @public - */ -export declare function createParser( - callbacks: ParserCallbacks, -): EventSourceParser; - -/** - * The type of error that occurred. - * @public - */ -export declare type ErrorType = "invalid-retry" | "unknown-field"; - -/** - * A parsed EventSource message event - * - * @public - */ -export declare interface EventSourceMessage { - /** - * The event type sent from the server. Note that this differs from the browser `EventSource` - * implementation in that browsers will default this to `message`, whereas this parser will - * leave this as `undefined` if not explicitly declared. - */ - event?: string | undefined; - /** - * ID of the message, if any was provided by the server. Can be used by clients to keep the - * last received message ID in sync when reconnecting. - */ - id?: string | undefined; - /** - * The data received for this message - */ - data: string; -} - -/** - * EventSource parser instance. - * - * Needs to be reset between reconnections/when switching data source, using the `reset()` method. - * - * @public - */ -export declare interface EventSourceParser { - /** - * Feeds the parser another chunk. The method _does not_ return a parsed message. - * Instead, callbacks passed when creating the parser will be triggered once we see enough data - * for a valid/invalid parsing step (see {@link ParserCallbacks}). - * - * @param chunk - The chunk to parse. Can be a partial, eg in the case of streaming messages. - * @public - */ - feed(chunk: string): void; - /** - * Resets the parser state. This is required when you have a new stream of messages - - * for instance in the case of a client being disconnected and reconnecting. - * - * Previously received, incomplete data will NOT be parsed unless you pass `consume: true`, - * which tells the parser to attempt to consume any incomplete data as if it ended with a newline - * character. This is useful for cases when a server sends a non-EventSource message that you - * want to be able to react to in an `onError` callback. - * - * @public - */ - reset(options?: { consume?: boolean }): void; -} - -/** - * Error thrown when encountering an issue during parsing. - * - * @public - */ -export declare class ParseError extends Error { - /** - * The type of error that occurred. - */ - type: ErrorType; - /** - * In the case of an unknown field encountered in the stream, this will be the field name. - */ - field?: string | undefined; - /** - * In the case of an unknown field encountered in the stream, this will be the value of the field. - */ - value?: string | undefined; - /** - * The line that caused the error, if available. - */ - line?: string | undefined; - constructor( - message: string, - options: { - type: ErrorType; - field?: string; - value?: string; - line?: string; - }, - ); -} - -/** - * Callbacks that can be passed to the parser to handle different types of parsed messages - * and errors. - * - * @public - */ -export declare interface ParserCallbacks { - /** - * Callback for when a new event/message is parsed from the stream. - * This is the main callback that clients will use to handle incoming messages. - * - * @param event - The parsed event/message - */ - onEvent?: ((event: EventSourceMessage) => void) | undefined; - /** - * Callback for when the server sends a new reconnection interval through the `retry` field. - * - * @param retry - The number of milliseconds to wait before reconnecting. - */ - onRetry?: ((retry: number) => void) | undefined; - /** - * Callback for when a comment is encountered in the stream. - * - * @param comment - The comment encountered in the stream. - */ - onComment?: ((comment: string) => void) | undefined; - /** - * Callback for when an error occurs during parsing. This is a catch-all for any errors - * that occur during parsing, and can be used to handle them in a custom way. Most clients - * tend to silently ignore any errors and instead retry, but it can be helpful to log/debug. - * - * @param error - The error that occurred during parsing - */ - onError?: ((error: ParseError) => void) | undefined; -} - -export {}; diff --git a/tests/fixtures/fetch/node_modules/eventsource-parser/dist/index.js b/tests/fixtures/fetch/node_modules/eventsource-parser/dist/index.js deleted file mode 100644 index 1e20c9dd3..000000000 --- a/tests/fixtures/fetch/node_modules/eventsource-parser/dist/index.js +++ /dev/null @@ -1,166 +0,0 @@ -class ParseError extends Error { - constructor(message, options) { - super(message), this.name = "ParseError", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line; - } -} -const LF = 10, CR = 13, SPACE = 32; -function noop(_arg) { -} -function createParser(callbacks) { - if (typeof callbacks == "function") - throw new TypeError( - "`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?" - ); - const { onEvent = noop, onError = noop, onRetry = noop, onComment } = callbacks, pendingFragments = []; - let isFirstChunk = !0, id, data = "", dataLines = 0, eventType; - function feed(chunk) { - if (isFirstChunk && (isFirstChunk = !1, chunk.charCodeAt(0) === 239 && chunk.charCodeAt(1) === 187 && chunk.charCodeAt(2) === 191 && (chunk = chunk.slice(3))), pendingFragments.length === 0) { - const trailing2 = processLines(chunk); - trailing2 !== "" && pendingFragments.push(trailing2); - return; - } - if (chunk.indexOf(` -`) === -1 && chunk.indexOf("\r") === -1) { - pendingFragments.push(chunk); - return; - } - pendingFragments.push(chunk); - const input = pendingFragments.join(""); - pendingFragments.length = 0; - const trailing = processLines(input); - trailing !== "" && pendingFragments.push(trailing); - } - function processLines(chunk) { - let searchIndex = 0; - if (chunk.indexOf("\r") === -1) { - let lfIndex = chunk.indexOf(` -`, searchIndex); - for (; lfIndex !== -1; ) { - if (searchIndex === lfIndex) { - dataLines > 0 && onEvent({ id, event: eventType, data }), id = void 0, data = "", dataLines = 0, eventType = void 0, searchIndex = lfIndex + 1, lfIndex = chunk.indexOf(` -`, searchIndex); - continue; - } - const firstCharCode = chunk.charCodeAt(searchIndex); - if (isDataPrefix(chunk, searchIndex, firstCharCode)) { - const valueStart = chunk.charCodeAt(searchIndex + 5) === SPACE ? searchIndex + 6 : searchIndex + 5, value = chunk.slice(valueStart, lfIndex); - if (dataLines === 0 && chunk.charCodeAt(lfIndex + 1) === LF) { - onEvent({ id, event: eventType, data: value }), id = void 0, data = "", eventType = void 0, searchIndex = lfIndex + 2, lfIndex = chunk.indexOf(` -`, searchIndex); - continue; - } - data = dataLines === 0 ? value : `${data} -${value}`, dataLines++; - } else isEventPrefix(chunk, searchIndex, firstCharCode) ? eventType = chunk.slice( - chunk.charCodeAt(searchIndex + 6) === SPACE ? searchIndex + 7 : searchIndex + 6, - lfIndex - ) || void 0 : parseLine(chunk, searchIndex, lfIndex); - searchIndex = lfIndex + 1, lfIndex = chunk.indexOf(` -`, searchIndex); - } - return chunk.slice(searchIndex); - } - for (; searchIndex < chunk.length; ) { - const crIndex = chunk.indexOf("\r", searchIndex), lfIndex = chunk.indexOf(` -`, searchIndex); - let lineEnd = -1; - if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = crIndex < lfIndex ? crIndex : lfIndex : crIndex !== -1 ? crIndex === chunk.length - 1 ? lineEnd = -1 : lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1) - break; - parseLine(chunk, searchIndex, lineEnd), searchIndex = lineEnd + 1, chunk.charCodeAt(searchIndex - 1) === CR && chunk.charCodeAt(searchIndex) === LF && searchIndex++; - } - return chunk.slice(searchIndex); - } - function parseLine(chunk, start, end) { - if (start === end) { - dispatchEvent(); - return; - } - const firstCharCode = chunk.charCodeAt(start); - if (isDataPrefix(chunk, start, firstCharCode)) { - const valueStart = chunk.charCodeAt(start + 5) === SPACE ? start + 6 : start + 5, value2 = chunk.slice(valueStart, end); - data = dataLines === 0 ? value2 : `${data} -${value2}`, dataLines++; - return; - } - if (isEventPrefix(chunk, start, firstCharCode)) { - eventType = chunk.slice(chunk.charCodeAt(start + 6) === SPACE ? start + 7 : start + 6, end) || void 0; - return; - } - if (firstCharCode === 105 && chunk.charCodeAt(start + 1) === 100 && chunk.charCodeAt(start + 2) === 58) { - const value2 = chunk.slice(chunk.charCodeAt(start + 3) === SPACE ? start + 4 : start + 3, end); - id = value2.includes("\0") ? void 0 : value2; - return; - } - if (firstCharCode === 58) { - if (onComment) { - const line2 = chunk.slice(start, end); - onComment(line2.slice(chunk.charCodeAt(start + 1) === SPACE ? 2 : 1)); - } - return; - } - const line = chunk.slice(start, end), fieldSeparatorIndex = line.indexOf(":"); - if (fieldSeparatorIndex === -1) { - processField(line, "", line); - return; - } - const field = line.slice(0, fieldSeparatorIndex), offset = line.charCodeAt(fieldSeparatorIndex + 1) === SPACE ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset); - processField(field, value, line); - } - function processField(field, value, line) { - switch (field) { - case "event": - eventType = value || void 0; - break; - case "data": - data = dataLines === 0 ? value : `${data} -${value}`, dataLines++; - break; - case "id": - id = value.includes("\0") ? void 0 : value; - break; - case "retry": - /^\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError( - new ParseError(`Invalid \`retry\` value: "${value}"`, { - type: "invalid-retry", - value, - line - }) - ); - break; - default: - onError( - new ParseError( - `Unknown field "${field.length > 20 ? `${field.slice(0, 20)}\u2026` : field}"`, - { type: "unknown-field", field, value, line } - ) - ); - break; - } - } - function dispatchEvent() { - dataLines > 0 && onEvent({ - id, - event: eventType, - data - }), id = void 0, data = "", dataLines = 0, eventType = void 0; - } - function reset(options = {}) { - if (options.consume && pendingFragments.length > 0) { - const incompleteLine = pendingFragments.join(""); - parseLine(incompleteLine, 0, incompleteLine.length); - } - isFirstChunk = !0, id = void 0, data = "", dataLines = 0, eventType = void 0, pendingFragments.length = 0; - } - return { feed, reset }; -} -function isDataPrefix(chunk, i, firstCharCode) { - return firstCharCode === 100 && chunk.charCodeAt(i + 1) === 97 && chunk.charCodeAt(i + 2) === 116 && chunk.charCodeAt(i + 3) === 97 && chunk.charCodeAt(i + 4) === 58; -} -function isEventPrefix(chunk, i, firstCharCode) { - return firstCharCode === 101 && chunk.charCodeAt(i + 1) === 118 && chunk.charCodeAt(i + 2) === 101 && chunk.charCodeAt(i + 3) === 110 && chunk.charCodeAt(i + 4) === 116 && chunk.charCodeAt(i + 5) === 58; -} -export { - ParseError, - createParser -}; -//# sourceMappingURL=index.js.map diff --git a/tests/fixtures/fetch/node_modules/eventsource-parser/dist/stream.d.ts b/tests/fixtures/fetch/node_modules/eventsource-parser/dist/stream.d.ts deleted file mode 100644 index 716291848..000000000 --- a/tests/fixtures/fetch/node_modules/eventsource-parser/dist/stream.d.ts +++ /dev/null @@ -1,121 +0,0 @@ -/** - * The type of error that occurred. - * @public - */ -export declare type ErrorType = "invalid-retry" | "unknown-field"; - -/** - * A parsed EventSource message event - * - * @public - */ -export declare interface EventSourceMessage { - /** - * The event type sent from the server. Note that this differs from the browser `EventSource` - * implementation in that browsers will default this to `message`, whereas this parser will - * leave this as `undefined` if not explicitly declared. - */ - event?: string | undefined; - /** - * ID of the message, if any was provided by the server. Can be used by clients to keep the - * last received message ID in sync when reconnecting. - */ - id?: string | undefined; - /** - * The data received for this message - */ - data: string; -} - -/** - * A TransformStream that ingests a stream of strings and produces a stream of `EventSourceMessage`. - * - * @example Basic usage - * ``` - * const eventStream = - * response.body - * .pipeThrough(new TextDecoderStream()) - * .pipeThrough(new EventSourceParserStream()) - * ``` - * - * @example Terminate stream on parsing errors - * ``` - * const eventStream = - * response.body - * .pipeThrough(new TextDecoderStream()) - * .pipeThrough(new EventSourceParserStream({terminateOnError: true})) - * ``` - * - * @public - */ -export declare class EventSourceParserStream extends TransformStream< - string, - EventSourceMessage -> { - constructor({ onError, onRetry, onComment }?: StreamOptions); -} - -/** - * Error thrown when encountering an issue during parsing. - * - * @public - */ -export declare class ParseError extends Error { - /** - * The type of error that occurred. - */ - type: ErrorType; - /** - * In the case of an unknown field encountered in the stream, this will be the field name. - */ - field?: string | undefined; - /** - * In the case of an unknown field encountered in the stream, this will be the value of the field. - */ - value?: string | undefined; - /** - * The line that caused the error, if available. - */ - line?: string | undefined; - constructor( - message: string, - options: { - type: ErrorType; - field?: string; - value?: string; - line?: string; - }, - ); -} - -/** - * Options for the EventSourceParserStream. - * - * @public - */ -export declare interface StreamOptions { - /** - * Behavior when a parsing error occurs. - * - * - A custom function can be provided to handle the error. - * - `'terminate'` will error the stream and stop parsing. - * - Any other value will ignore the error and continue parsing. - * - * @defaultValue `undefined` - */ - onError?: ("terminate" | ((error: Error) => void)) | undefined; - /** - * Callback for when a reconnection interval is sent from the server. - * - * @param retry - The number of milliseconds to wait before reconnecting. - */ - onRetry?: ((retry: number) => void) | undefined; - /** - * Callback for when a comment is encountered in the stream. - * - * @param comment - The comment encountered in the stream. - */ - onComment?: ((comment: string) => void) | undefined; -} - -export {}; diff --git a/tests/fixtures/fetch/node_modules/eventsource-parser/dist/stream.js b/tests/fixtures/fetch/node_modules/eventsource-parser/dist/stream.js deleted file mode 100644 index b551fc38a..000000000 --- a/tests/fixtures/fetch/node_modules/eventsource-parser/dist/stream.js +++ /dev/null @@ -1,29 +0,0 @@ -import { createParser } from "./index.js"; -import { ParseError } from "./index.js"; -class EventSourceParserStream extends TransformStream { - constructor({ onError, onRetry, onComment } = {}) { - let parser; - super({ - start(controller) { - parser = createParser({ - onEvent: (event) => { - controller.enqueue(event); - }, - onError(error) { - onError === "terminate" ? controller.error(error) : typeof onError == "function" && onError(error); - }, - onRetry, - onComment - }); - }, - transform(chunk) { - parser.feed(chunk); - } - }); - } -} -export { - EventSourceParserStream, - ParseError -}; -//# sourceMappingURL=stream.js.map diff --git a/tests/fixtures/fetch/node_modules/eventsource-parser/package.json b/tests/fixtures/fetch/node_modules/eventsource-parser/package.json deleted file mode 100644 index 22a496757..000000000 --- a/tests/fixtures/fetch/node_modules/eventsource-parser/package.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "name": "eventsource-parser", - "version": "3.0.8", - "description": "Streaming, source-agnostic EventSource/Server-Sent Events parser", - "keywords": [ - "eventsource", - "server-sent-events", - "sse" - ], - "homepage": "https://github.com/rexxars/eventsource-parser#readme", - "bugs": { - "url": "https://github.com/rexxars/eventsource-parser/issues" - }, - "license": "MIT", - "author": "Espen Hovlandsdal ", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/rexxars/eventsource-parser.git" - }, - "files": [ - "dist", - "!dist/stats.html", - "!dist/index.min.js", - "src", - "stream.js" - ], - "type": "module", - "sideEffects": false, - "main": "./dist/index.cjs", - "module": "./dist/index.js", - "types": "./dist/index.d.ts", - "exports": { - ".": { - "source": "./src/index.ts", - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "default": "./dist/index.js" - }, - "./stream": { - "source": "./src/stream.ts", - "import": "./dist/stream.js", - "require": "./dist/stream.cjs", - "default": "./dist/stream.js" - }, - "./package.json": "./package.json" - }, - "scripts": { - "build": "pkg-utils build && pkg-utils --strict", - "clean": "rimraf dist coverage", - "check": "npm run clean && npm run format && npm run lint && npm run build && vitest run", - "format": "oxfmt", - "format:check": "oxfmt --check", - "bench": "node --expose-gc --experimental-strip-types --no-warnings=ExperimentalWarning bench/parse.bench.ts", - "bundle-size": "node --experimental-strip-types --no-warnings=ExperimentalWarning scripts/bundle-size.ts", - "knip": "knip", - "lint": "oxlint && tsc --noEmit", - "posttest": "npm run lint", - "prebuild": "npm run clean", - "prepublishOnly": "npm run build", - "test": "npm run test:node", - "test:bun": "bun test", - "test:deno": "deno run --allow-write --allow-net --allow-run --allow-sys --allow-ffi --allow-env --allow-read npm:vitest", - "test:node": "vitest --reporter=verbose" - }, - "devDependencies": { - "@sanity/pkg-utils": "^10.4.15", - "@sanity/semantic-release-preset": "^6.0.0", - "@sanity/tsconfig": "^2.1.0", - "@types/node": "^20.19.0", - "eventsource-encoder": "^1.0.1", - "knip": "^6.4.1", - "mitata": "^1.0.34", - "oxfmt": "^0.45.0", - "oxlint": "^1.60.0", - "rimraf": "^6.1.3", - "rollup-plugin-visualizer": "^6.0.3", - "semantic-release": "^25.0.3", - "terser": "^5.46.1", - "typescript": "^5.9.3", - "vitest": "^4.1.4" - }, - "browserslist": [ - "node >= 18", - "chrome >= 71", - "safari >= 14.1", - "firefox >= 105", - "edge >= 79" - ], - "engines": { - "node": ">=18.0.0" - } -} diff --git a/tests/fixtures/fetch/node_modules/fetchcause/index.d.ts b/tests/fixtures/fetch/node_modules/fetchcause/index.d.ts deleted file mode 100644 index b379b79fb..000000000 --- a/tests/fixtures/fetch/node_modules/fetchcause/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export function probeRefused(url: string): Promise; diff --git a/tests/fixtures/fetch/node_modules/fetchcause/index.js b/tests/fixtures/fetch/node_modules/fetchcause/index.js deleted file mode 100644 index 1912225e8..000000000 --- a/tests/fixtures/fetch/node_modules/fetchcause/index.js +++ /dev/null @@ -1,17 +0,0 @@ -// Probes the network-failure rejection's CAUSE from package code — the -// exact consumer shape: provider-utils' handleFetchError classifies -// retryable network errors by error.cause.message/.code. -export async function probeRefused(url) { - try { - await fetch(url); - console.log("unexpectedly connected"); - } catch (e) { - console.log(`err ${e.name}: ${e.message}`); - const c = e.cause; - if (c instanceof Error) { - console.log(`cause ${c.message} code=${c.code} syscall=${c.syscall}`); - } else { - console.log(`cause missing: ${String(c)}`); - } - } -} diff --git a/tests/fixtures/fetch/node_modules/fetchcause/package.json b/tests/fixtures/fetch/node_modules/fetchcause/package.json deleted file mode 100644 index e46811170..000000000 --- a/tests/fixtures/fetch/node_modules/fetchcause/package.json +++ /dev/null @@ -1 +0,0 @@ -{ "name": "fetchcause", "version": "1.0.0", "type": "module", "main": "index.js" } diff --git a/tests/fixtures/fetch/node_modules/fetchtap/index.d.ts b/tests/fixtures/fetch/node_modules/fetchtap/index.d.ts deleted file mode 100644 index faa3c0efd..000000000 --- a/tests/fixtures/fetch/node_modules/fetchtap/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export function tappedFetchName(): string; diff --git a/tests/fixtures/fetch/node_modules/fetchtap/index.js b/tests/fixtures/fetch/node_modules/fetchtap/index.js deleted file mode 100644 index e001baef4..000000000 --- a/tests/fixtures/fetch/node_modules/fetchtap/index.js +++ /dev/null @@ -1,22 +0,0 @@ -// Patches globalThis.fetch at module init — the interception/polyfill -// pattern (undici interceptors, msw-style mocks, dotenv-ordered setup). -// USER-code fetch must read the LIVE global at call time, so calls made -// after this module evaluates go through the wrapper: it logs each URL and -// rewrites the fake origin to the harness server (argv[2]). -const FAKE = "https://gateway.invalid"; -const base = process.argv[2]; -const orig = globalThis.fetch; -globalThis.fetch = function fetch(input, init) { - let url = - typeof input === "string" - ? input - : input && typeof input.url === "string" - ? input.url - : String(input); - console.log(`tap ${url}`); - if (url.startsWith(FAKE)) url = base + url.slice(FAKE.length); - return orig(url, init); -}; -export function tappedFetchName() { - return globalThis.fetch.name; -} diff --git a/tests/fixtures/fetch/node_modules/fetchtap/package.json b/tests/fixtures/fetch/node_modules/fetchtap/package.json deleted file mode 100644 index b5871fe82..000000000 --- a/tests/fixtures/fetch/node_modules/fetchtap/package.json +++ /dev/null @@ -1 +0,0 @@ -{ "name": "fetchtap", "version": "1.0.0", "type": "module", "main": "index.js" } diff --git a/tests/fixtures/fetch/node_modules/islandhttp/index.d.ts b/tests/fixtures/fetch/node_modules/islandhttp/index.d.ts deleted file mode 100644 index 1c05a51bd..000000000 --- a/tests/fixtures/fetch/node_modules/islandhttp/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export function run(base: string, refusedBase: string): void; diff --git a/tests/fixtures/fetch/node_modules/islandhttp/index.js b/tests/fixtures/fetch/node_modules/islandhttp/index.js deleted file mode 100644 index 9958bae8e..000000000 --- a/tests/fixtures/fetch/node_modules/islandhttp/index.js +++ /dev/null @@ -1,135 +0,0 @@ -// The island's node:http CLIENT, differentially against Node's real http: -// request/get drive real sockets (scr_net + scr_http's parser under -// scriptc; core http under Node) against the harness's local server — -// status/headers/body round trips, POST bodies with explicit framing, -// redirects NOT followed (node:http semantics, not fetch's), the -// multi-value header fold, Node's error shapes on a refused port, the -// res-end → req-close → res-close ordering, quiet destroy, and the -// socket timeout event. Byte-exact output both sides. -import http from "node:http"; - -const out = (line) => process.stdout.write(line + "\n"); - -export function run(base, refusedBase) { - const steps = [ - // GET a string URL: status/statusMessage/headers, utf8 body - (next) => - http.get(`${base}/text`, (res) => { - res.setEncoding("utf8"); - let body = ""; - res.on("data", (c) => { body += c; }); - res.on("end", () => { - out(`get ${res.statusCode} ${JSON.stringify(res.statusMessage)} ${res.headers["x-kind"]} ${res.headers["content-type"]}`); - out(`get-body ${JSON.stringify(body)}`); - next(); - }); - }), - // POST via the options form: write + end, content-type header - (next) => { - const u = new URL(base); - const req = http.request( - { hostname: u.hostname, port: u.port, path: "/post-echo", method: "POST", headers: { "content-type": "application/json" } }, - (res) => { - res.setEncoding("utf8"); - let body = ""; - res.on("data", (c) => { body += c; }); - res.on("end", () => { - out(`post ${res.statusCode} ${body}`); - next(); - }); - }, - ); - req.write('{"n":'); - req.end("7}"); - }, - // 404 resolves with the server's status line and body - (next) => - http.get(`${base}/missing`, (res) => { - res.setEncoding("utf8"); - let body = ""; - res.on("data", (c) => { body += c; }); - res.on("end", () => { - out(`missing ${res.statusCode} ${JSON.stringify(res.statusMessage)} ${JSON.stringify(body)}`); - next(); - }); - }), - // redirects are NOT followed (node:http, not fetch): 302 + location - (next) => - http.get(`${base}/redirect`, (res) => { - res.resume(); - res.on("end", () => { - out(`redirect ${res.statusCode} ${res.headers.location}`); - next(); - }); - }), - // request headers via options + setHeader; multi-value response fold - (next) => { - const u = new URL(base); - const req = http.request( - { hostname: u.hostname, port: u.port, path: "/header-echo", headers: { "x-echo-one": "v1" } }, - (res) => { - res.setEncoding("utf8"); - let body = ""; - res.on("data", (c) => { body += c; }); - res.on("end", () => { - out(`headers ${body} multi=${res.headers["x-multi"]}`); - next(); - }); - }, - ); - req.setHeader("x-echo-two", "v2"); - req.end(); - }, - // event ORDER: res 'end', then req 'close', then res 'close' - (next) => { - const order = []; - const req = http.get(`${base}/text`, (res) => { - res.resume(); - res.on("end", () => order.push("res-end")); - res.on("close", () => { - order.push("res-close"); - out(`order ${order.join(",")}`); - next(); - }); - }); - req.on("close", () => order.push("req-close")); - }, - // a refused port: Node's error shape on the request - (next) => { - const u = new URL(refusedBase); - const req = http.get({ hostname: u.hostname, port: u.port, path: "/x" }, () => { - out("refused unexpectedly responded"); - next(); - }); - req.on("error", (e) => { - out(`refused ${e.message} code=${e.code} syscall=${e.syscall}`); - next(); - }); - }, - // destroy() mid-flight: 'socket hang up' speaks, then 'close' — Node's - // teardown shape for a request whose response never arrived - (next) => { - const req = http.get(`${base}/slow`, () => out("destroyed unexpectedly responded")); - req.on("error", (e) => out(`destroyed error ${e.message} code=${e.code}`)); - req.on("close", () => { - out("destroyed close"); - next(); - }); - req.destroy(); - }, - // the socket timeout event fires; the listener destroys, like Node docs - (next) => { - const req = http.get(`${base}/slow`, () => out("timeout unexpectedly responded")); - req.setTimeout(100, () => { - out("timeout fired"); - req.destroy(); - }); - req.on("error", (e) => out(`timeout error ${e.message} code=${e.code}`)); - req.on("close", () => next()); - }, - () => out("done"), - ]; - let i = 0; - const next = () => { const s = steps[i++]; if (s) s(next); }; - next(); -} diff --git a/tests/fixtures/fetch/node_modules/islandhttp/package.json b/tests/fixtures/fetch/node_modules/islandhttp/package.json deleted file mode 100644 index fa9ac6ef9..000000000 --- a/tests/fixtures/fetch/node_modules/islandhttp/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "islandhttp", - "version": "1.0.0", - "type": "module", - "main": "index.js", - "types": "index.d.ts" -} diff --git a/tests/fixtures/fetch/node_modules/ssefetch/index.d.ts b/tests/fixtures/fetch/node_modules/ssefetch/index.d.ts deleted file mode 100644 index ea2b949a6..000000000 --- a/tests/fixtures/fetch/node_modules/ssefetch/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function runSse(base: string): void; diff --git a/tests/fixtures/fetch/node_modules/ssefetch/index.js b/tests/fixtures/fetch/node_modules/ssefetch/index.js deleted file mode 100644 index 878066d54..000000000 --- a/tests/fixtures/fetch/node_modules/ssefetch/index.js +++ /dev/null @@ -1,22 +0,0 @@ -// The AI-SDK streaming shape exactly: response.body → TextDecoderStream → -// EventSourceParserStream (the real eventsource-parser package, embedded) -// → for await, against the harness's local SSE route. Byte-exact vs Node. -import { EventSourceParserStream } from "eventsource-parser/stream"; - -const out = (line) => process.stdout.write(line + "\n"); - -export function runSse(base) { - (async () => { - const res = await fetch(base + "/sse"); - out(`sse ${res.status} ${res.headers.get("content-type")}`); - const events = res.body - .pipeThrough(new TextDecoderStream()) - .pipeThrough(new EventSourceParserStream()); - for await (const ev of events) { - out(`event ${JSON.stringify(ev.event === undefined ? null : ev.event)} ${JSON.stringify(ev.data)} ${JSON.stringify(ev.id === undefined ? null : ev.id)}`); - } - out("sse-done"); - })().catch((e) => { - out(`FATAL ${e}`); - }); -} diff --git a/tests/fixtures/fetch/node_modules/ssefetch/package.json b/tests/fixtures/fetch/node_modules/ssefetch/package.json deleted file mode 100644 index c415c5747..000000000 --- a/tests/fixtures/fetch/node_modules/ssefetch/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "ssefetch", - "version": "1.0.0", - "type": "module", - "main": "index.js", - "types": "index.d.ts" -} diff --git a/tests/fixtures/fetch/node_modules/stream-from-cancel-probe/index.d.ts b/tests/fixtures/fetch/node_modules/stream-from-cancel-probe/index.d.ts deleted file mode 100644 index 0d60ff84f..000000000 --- a/tests/fixtures/fetch/node_modules/stream-from-cancel-probe/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export function immediateCancelIterable(): Iterable; -export function streamFromProtocolProbe(): Promise; -export function requestInitReadOrder(url: string): Promise; -export function requestInitConversionOrder(url: string): Promise; -export function inheritedRequestBodyMethodOverrides(url: string): Promise; diff --git a/tests/fixtures/fetch/node_modules/stream-from-cancel-probe/index.js b/tests/fixtures/fetch/node_modules/stream-from-cancel-probe/index.js deleted file mode 100644 index 11f179f68..000000000 --- a/tests/fixtures/fetch/node_modules/stream-from-cancel-probe/index.js +++ /dev/null @@ -1,162 +0,0 @@ -export function immediateCancelIterable() { - return { - [Symbol.iterator]() { - return { - next() { - console.log("source iterator started"); - return { value: 1, done: false }; - }, - return(reason) { - console.log("source iterator returned:", reason); - return { value: undefined, done: true }; - }, - }; - }, - }; -} - -export async function streamFromProtocolProbe() { - const promiseChunk = Promise.resolve(8); - const asyncSource = { - [Symbol.asyncIterator]() { - return { - next() { - return Promise.resolve({ value: promiseChunk, done: false }); - }, - }; - }, - }; - const asyncReader = ReadableStream.from(asyncSource).getReader(); - const asyncPart = await asyncReader.read(); - console.log("async promise chunk preserved:", asyncPart.value === promiseChunk); - await asyncReader.cancel(); - - try { - ReadableStream.from({ - [Symbol.iterator]() { - return null; - }, - }); - console.log("invalid iterator unexpectedly accepted"); - } catch (error) { - console.log("invalid iterator:", error.name); - } - - try { - ReadableStream.from({ - [Symbol.asyncIterator]: false, - *[Symbol.iterator]() { - yield 1; - }, - }); - console.log("noncallable async iterator unexpectedly accepted"); - } catch (error) { - console.log("noncallable async iterator:", error.name); - } - - let nextReads = 0; - let nextCalls = 0; - const stableNextSource = { - [Symbol.asyncIterator]() { - return { - get next() { - nextReads++; - return function () { - nextCalls++; - return Promise.resolve( - nextCalls === 1 - ? { value: 9, done: false } - : { value: undefined, done: true }, - ); - }; - }, - }; - }, - }; - const stableNextReader = ReadableStream.from(stableNextSource).getReader(); - console.log("async next reads at setup:", nextReads); - await stableNextReader.read(); - await stableNextReader.read(); - console.log("async next method reused:", nextReads, nextCalls); - - try { - const invalidNextStream = ReadableStream.from({ - [Symbol.asyncIterator]() { - return { next: 1 }; - }, - }); - await invalidNextStream.getReader().read(); - console.log("noncallable next unexpectedly accepted"); - } catch (error) { - console.log("noncallable next:", error.name); - } -} - -export async function requestInitReadOrder(url) { - const names = [ - "body", "cache", "credentials", "dispatcher", "duplex", "headers", - "integrity", "keepalive", "method", "mode", "priority", "redirect", - "referrer", "referrerPolicy", "signal", "window", - ]; - const reads = []; - const init = {}; - for (const name of names) { - Object.defineProperty(init, name, { - get() { - reads.push(name); - return undefined; - }, - }); - } - await fetch(url, init); - console.log("request init reads:", reads.join(",")); -} - -export async function requestInitConversionOrder(url) { - const events = []; - const init = { - get method() { - events.push("get method"); - return { - toString() { - events.push("convert method"); - return "GET"; - }, - }; - }, - get redirect() { - events.push("get redirect"); - return { - toString() { - events.push("convert redirect"); - return "follow"; - }, - }; - }, - }; - await fetch(url, init); - console.log("request init conversions:", events.join(",")); -} - -export async function inheritedRequestBodyMethodOverrides(url) { - for (const method of ["GET", "HEAD"]) { - const constructorInput = new Request(url, { - method: "POST", - body: "constructor body", - }); - try { - new Request(constructorInput, { method }); - console.log("request inherited body unexpectedly accepted:", method); - } catch (error) { - console.log("request inherited body:", method, error.name, error.message); - } - - const fetchInput = new Request(url, { method: "POST", body: "fetch body" }); - try { - await fetch(fetchInput, { method }); - console.log("fetch inherited body unexpectedly accepted:", method); - } catch (error) { - console.log("fetch inherited body:", method, error.name, error.message); - } - } -} diff --git a/tests/fixtures/fetch/node_modules/stream-from-cancel-probe/package.json b/tests/fixtures/fetch/node_modules/stream-from-cancel-probe/package.json deleted file mode 100644 index a3779f695..000000000 --- a/tests/fixtures/fetch/node_modules/stream-from-cancel-probe/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "stream-from-cancel-probe", - "version": "1.0.0", - "type": "module", - "main": "index.js", - "types": "index.d.ts" -} diff --git a/tests/fixtures/fetch/node_modules/webfetch/index.d.ts b/tests/fixtures/fetch/node_modules/webfetch/index.d.ts deleted file mode 100644 index 5cf1d28b5..000000000 --- a/tests/fixtures/fetch/node_modules/webfetch/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function run(base: string, refusedBase: string): void; diff --git a/tests/fixtures/fetch/node_modules/webfetch/index.js b/tests/fixtures/fetch/node_modules/webfetch/index.js deleted file mode 100644 index 95dc0bc1e..000000000 --- a/tests/fixtures/fetch/node_modules/webfetch/index.js +++ /dev/null @@ -1,86 +0,0 @@ -// The fetch differential suite, running ISLAND-side under scriptc and as -// plain Node code under the oracle: text/json/POST/header round trips -// against the harness's local HTTP server, chunked streaming through the -// reader protocol, 404-resolves, redirect following, and connection- -// refused rejection — byte-exact output both sides. The SSE path lives in -// the ssefetch fixture package (the AI-SDK shape exactly). -const out = (line) => process.stdout.write(line + "\n"); - -export function run(base, refusedBase) { - (async () => { - // GET text: status/ok/statusText, body decode, response headers - const r1 = await fetch(base + "/text"); - out(`text ${r1.status} ${r1.ok} ${JSON.stringify(r1.statusText)} ${JSON.stringify(await r1.text())}`); - out(`text-headers ${r1.headers.get("x-kind")} ${r1.headers.get("content-type")}`); - // GET json - const r2 = await fetch(base + "/json"); - const j = await r2.json(); - out(`json ${j.n} ${j.s} ${JSON.stringify(j.arr)}`); - // POST with a string body: implicit text/plain content-type - const r3 = await fetch(base + "/post-echo", { method: "POST", body: "payload é 😀" }); - out(`post ${JSON.stringify(await r3.json())}`); - // Node's request-body reader accepts string chunks from an island-side - // ReadableStream and UTF-8 encodes each one before writing it. - const stringBody = new ReadableStream({ - start(controller) { - controller.enqueue("stream-"); - controller.enqueue("é 😀"); - controller.close(); - }, - }); - const r3s = await fetch(base + "/post-echo", { - method: "POST", - body: stringBody, - duplex: "half", - }); - out(`post-stream-string ${JSON.stringify(await r3s.json())}`); - // POST with URLSearchParams: implicit form content-type - const r4 = await fetch(base + "/post-echo", { - method: "POST", - body: new URLSearchParams({ a: "1 2", b: "é" }), - }); - out(`post-form ${JSON.stringify(await r4.json())}`); - // PUT with an explicit content-type - const r5 = await fetch(base + "/post-echo", { - method: "PUT", - body: "{}", - headers: { "content-type": "application/json" }, - }); - out(`put ${JSON.stringify(await r5.json())}`); - // request headers echo + multi-valued response header combining - const r6 = await fetch(base + "/header-echo", { - headers: { "X-Echo-One": "v1", "x-echo-two": "v2" }, - }); - out(`headers ${await r6.text()}`); - out(`multi ${r6.headers.get("x-multi")}`); - // HTTP errors RESOLVE - const r7 = await fetch(base + "/missing"); - out(`missing ${r7.status} ${r7.ok} ${JSON.stringify(r7.statusText)} ${JSON.stringify(await r7.text())}`); - // redirects are followed; url/redirected reflect the hop - const r8 = await fetch(base + "/redirect"); - const tail = r8.url.slice(r8.url.lastIndexOf("/")); - out(`redirect ${r8.status} ${r8.redirected} ${tail} ${JSON.stringify(await r8.text())}`); - // gzip/deflate response bodies arrive DECODED; the headers keep the - // wire's content-encoding (Node's fetch shape exactly) - const rg = await fetch(base + "/gzip"); - const gz = await rg.text(); - out(`gzip ${rg.headers.get("content-encoding")} len=${gz.length} ${JSON.stringify(gz.slice(0, 22))}`); - const rd = await fetch(base + "/deflate"); - out(`deflate ${rd.headers.get("content-encoding")} ${JSON.stringify(await rd.text())}`); - // chunked body consumed incrementally through the reader protocol - const r9 = await fetch(base + "/chunked"); - const chunks = []; - for await (const c of r9.body.pipeThrough(new TextDecoderStream())) chunks.push(c); - out(`chunked ${JSON.stringify(chunks.join(""))}`); - // only NETWORK failure rejects — TypeError, Node's exact message - try { - await fetch(refusedBase + "/nope"); - out("refused no-throw"); - } catch (e) { - out(`refused ${e instanceof TypeError} ${e.name}: ${e.message}`); - } - out("done"); - })().catch((e) => { - out(`FATAL ${e}`); - }); -} diff --git a/tests/fixtures/fetch/node_modules/webfetch/package.json b/tests/fixtures/fetch/node_modules/webfetch/package.json deleted file mode 100644 index 99494e7ad..000000000 --- a/tests/fixtures/fetch/node_modules/webfetch/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "webfetch", - "version": "1.0.0", - "type": "module", - "main": "index.js", - "types": "index.d.ts" -} diff --git a/tests/fixtures/fetch/unsupported-init-dynamic/main.mts b/tests/fixtures/fetch/unsupported-init-dynamic/main.mts deleted file mode 100644 index 41f5cc7f5..000000000 --- a/tests/fixtures/fetch/unsupported-init-dynamic/main.mts +++ /dev/null @@ -1,51 +0,0 @@ -// @dynamic -// Runtime-computed RequestInit dictionaries cannot be source-profiled. The -// dynamic fetch bridge must reject recognized unsupported members rather than -// silently weakening their cache, credential, or integrity behavior. -import { EnvProxyDispatcher } from "vercel-env-proxy-dispatcher"; - -declare global { - interface RequestInit { - cache?: string; - dispatcher?: EnvProxyDispatcher; - } -} - -interface RuntimeInit { - [key: string]: string | Record; -} - -function indirect(init: RuntimeInit): Promise { - return fetch("http://127.0.0.1:1", init); -} - -async function rejectedOption(name: string, source: string): Promise { - try { - await indirect(JSON.parse(source) as RuntimeInit); - console.log(name, "unexpectedly accepted"); - } catch (error) { - const caught = error as Error; - console.log(name, caught.name, caught.message); - } -} - -await rejectedOption("cache", '{"cache":"no-store"}'); -await rejectedOption("dispatcher", '{"dispatcher":{}}'); - -const envProxyDispatcher = new EnvProxyDispatcher(); - -try { - await fetch("http://127.0.0.1:1", { - dispatcher: envProxyDispatcher, - signal: AbortSignal.abort("env dispatcher accepted"), - }); -} catch (error) { - console.log("env dispatcher", typeof error, String(error)); -} - -const fromStream = ReadableStream.from([7]); -const fromPart = await fromStream.getReader().read(); -console.log("stream from:", fromPart.done, fromPart.done ? -1 : fromPart.value); - -const constructed = new ReadableStream(); -console.log("stream constructor:", constructed.locked); diff --git a/tests/fixtures/fetch/vercel-env-proxy/main.mts b/tests/fixtures/fetch/vercel-env-proxy/main.mts index ac564b3af..299812ad0 100644 --- a/tests/fixtures/fetch/vercel-env-proxy/main.mts +++ b/tests/fixtures/fetch/vercel-env-proxy/main.mts @@ -1,4 +1,3 @@ -// @dynamic // Vercel installs this dispatcher when ordinary proxy environment variables // are present, without requiring Node's global NODE_USE_ENV_PROXY opt-in. import { EnvProxyDispatcher } from "vercel-env-proxy-dispatcher"; diff --git a/tests/fixtures/self-hosting/class-types.ts b/tests/fixtures/self-hosting/class-types.ts index 4d51d7c25..2a66e7444 100644 --- a/tests/fixtures/self-hosting/class-types.ts +++ b/tests/fixtures/self-hosting/class-types.ts @@ -8,7 +8,7 @@ const kept: IrType = { kind: "object", className: "Registered" }; const expr: IrExpr = { kind: "varRef", localId: "x", type: missing, loc }; const nested: IrType = { kind: "func", params: [{ kind: "array", elem: missing }], ret: { kind: "generator", yieldT: missing, retT: kept, nextT: missing } }; -const module: IrModule = { irVersion: 15, sourceFile: loc.file, entry: "main", +const module: IrModule = { irVersion: 16, sourceFile: loc.file, entry: "main", functions: [{ name: "main", params: [{ localId: "x", name: "x", type: missing }], returnType: nested, locals: [], loc, body: [{ kind: "exprStmt", expr, loc }] }], records: [{ id: "r", fields: [{ name: "callback", type: nested }], indexValue: missing }], diff --git a/tests/fixtures/self-hosting/frontend-lowering-node.ts b/tests/fixtures/self-hosting/frontend-lowering-node.ts index 4e69d5360..3c09ac71c 100644 --- a/tests/fixtures/self-hosting/frontend-lowering-node.ts +++ b/tests/fixtures/self-hosting/frontend-lowering-node.ts @@ -16,8 +16,8 @@ try { if (load.startupCrash) throw new Error(load.startupCrash.message); console.log(diagnostics.length); if (diagnostics.length === 0) { - const result = lowerToIr(load.program, load.entry, load.moduleOrder, { dynamic: false, frontendServices: load.services, ffiImports }); - console.log(result.stats.statementsFailed, result.stats.statementsIsland); + const result = lowerToIr(load.program, load.entry, load.moduleOrder, { frontendServices: load.services, ffiImports }); + console.log(result.stats.statementsFailed); for (const diagnostic of result.diagnostics) console.error(diagnostic.code, diagnostic.message); if (result.module && process.argv[4]) writeFileSync(process.argv[4], serializeModule(result.module)); } diff --git a/tests/fixtures/self-hosting/frontend-lowering.ts b/tests/fixtures/self-hosting/frontend-lowering.ts index 0f0bfcfab..6588aff72 100644 --- a/tests/fixtures/self-hosting/frontend-lowering.ts +++ b/tests/fixtures/self-hosting/frontend-lowering.ts @@ -23,8 +23,8 @@ try { if (load.startupCrash) throw new Error(load.startupCrash.message); console.log(diagnostics.length); if (diagnostics.length === 0) { - const result = lowerToIr(load.program, load.entry, load.moduleOrder, { dynamic: false, frontendServices: services, ffiImports }); - console.log(result.stats.statementsFailed, result.stats.statementsIsland); + const result = lowerToIr(load.program, load.entry, load.moduleOrder, { frontendServices: services, ffiImports }); + console.log(result.stats.statementsFailed); for (const diagnostic of result.diagnostics) console.error(diagnostic.code, diagnostic.message); if (result.module && process.argv[4]) writeFileSync(process.argv[4], serializeModule(result.module)); } diff --git a/tests/fixtures/self-hosting/frontend-pipeline-node.ts b/tests/fixtures/self-hosting/frontend-pipeline-node.ts index 683caf4ea..f326829c9 100644 --- a/tests/fixtures/self-hosting/frontend-pipeline-node.ts +++ b/tests/fixtures/self-hosting/frontend-pipeline-node.ts @@ -24,7 +24,7 @@ try { console.log(JSON.stringify({ preflight: frontend.preflight, npmStatic: frontend.npmStatic })); if (frontend.preflight.length === 0) { if (request.contract) console.log(JSON.stringify(frontend.entryContract())); - const result = frontend.lower({ dynamic: false, ffiImports }); + const result = frontend.lower({ ffiImports }); console.log(JSON.stringify({ stats: result.stats, diagnostics: result.diagnostics, validation: result.module === null ? null : validateModule(result.module) })); if (result.module && process.argv[4]) writeFileSync(process.argv[4], serializeModule(result.module)); diff --git a/tests/fixtures/self-hosting/frontend-pipeline.ts b/tests/fixtures/self-hosting/frontend-pipeline.ts index f316dfd41..50665d007 100644 --- a/tests/fixtures/self-hosting/frontend-pipeline.ts +++ b/tests/fixtures/self-hosting/frontend-pipeline.ts @@ -23,7 +23,7 @@ try { console.log(JSON.stringify({ preflight: frontend.preflight, npmStatic: frontend.npmStatic })); if (frontend.preflight.length === 0) { if (request.contract) console.log(JSON.stringify(frontend.entryContract())); - const result = frontend.lower({ dynamic: false, ffiImports }); + const result = frontend.lower({ ffiImports }); console.log(JSON.stringify({ stats: result.stats, diagnostics: result.diagnostics, validation: result.module === null ? null : validateModule(result.module) })); if (result.module && process.argv[4]) writeFileSync(process.argv[4], serializeModule(result.module)); diff --git a/tests/fixtures/self-hosting/frontend-services-cases.ts b/tests/fixtures/self-hosting/frontend-services-cases.ts index 3697af00f..00bdcd230 100644 --- a/tests/fixtures/self-hosting/frontend-services-cases.ts +++ b/tests/fixtures/self-hosting/frontend-services-cases.ts @@ -1,33 +1,19 @@ import { readFileSync, writeFileSync } from "node:fs"; import { join } from "node:path"; import { FrontendServices } from "../../../packages/compiler/src/frontend/services.js"; -import type { FetchAnalysisModule } from "../../../packages/compiler/src/frontend/npm-fetch-analysis.js"; import { parseNpmStaticDeclarationOverloads, parseNpmStaticDeclarationProperties } from "../../../packages/compiler/src/frontend/npm-static-declaration-syntax.js"; import { isVariableStatement, isIdentifier } from "../../../packages/compiler/src/frontend/ts7/syntax.js"; -import { NpmGraphBuilder } from "../../../packages/compiler/src/frontend/npm.js"; +import { NodePackageResolver } from "../../../packages/compiler/src/frontend/npm.js"; function check(value: boolean, reason: string): void { if (!value) throw new Error(reason); } export function runFrontendServices(services: FrontendServices, input: string, output: string): void { const request = JSON.parse(readFileSync(input, "utf8")) as { - modules: FetchAnalysisModule[]; directory: string; declarations: string; source: string; bundled: string; }; - const fetch = [...services.globalFetchModules(request.modules)]; - check(services.globalFetchModules([]).size === 0, "empty graph"); - check(services.globalFetchModules([{ key: "edited", source: "fetch();", format: "cjs" }]).has("edited"), "initial graph"); - check(services.globalFetchModules([{ key: "edited", source: "const fetch = () => 1; fetch();", format: "cjs" }]).size === 0, "updated graph"); - check(services.globalFetchModules([{ key: "edited", source: "globalThis.fetch;", format: "cjs" }]).has("edited"), "restored graph"); - let collision = false; - try { services.globalFetchModules([ - { key: "same", source: "fetch();", format: "cjs" }, - { key: "same.js", source: "const fetch = 1;", format: "cjs" }, - ]); } catch { collision = true; } - check(collision, "loader key collision"); - const declarationFile = services.parse("package.d.ts", request.declarations, "ts"); const methods = parseNpmStaticDeclarationOverloads(declarationFile); const properties = parseNpmStaticDeclarationProperties(declarationFile); @@ -43,16 +29,10 @@ export function runFrontendServices(services: FrontendServices, input: string, o const changed = services.parse("edited.ts", "export const changed = 2;", "ts"); check(original.text.includes("original") && changed.text.includes("changed"), "detached syntax versions"); - const builder = new NpmGraphBuilder(services); + const resolver = new NodePackageResolver(); const entry = join(request.directory, "main.ts"); - const graphKey = builder.addImport(entry, "service-fetch"); - check(graphKey !== null, "package entry resolution"); - builder.addImport(entry, "service-typescript"); - const graph = builder.finish(); - check(graph.errors.length === 0, "package graph diagnostics"); - const typed = graph.modules.filter((module) => /\.(?:ts|mts)$/.test(module.key)); - check(typed.length === 2, "TypeScript runtime graph"); - check(typed.every((module) => !module.source.includes(": number") && !module.source.includes("missing-types")), "TypeScript runtime emission"); + const resolved = resolver.resolveForIntrospection(entry, "service-fetch", "require"); + check(resolved !== null, "package entry resolution"); const host = services.createProgramHost({ cwd: request.directory }); const sourcePath = join(request.directory, "virtual.ts"); @@ -83,7 +63,7 @@ export function runFrontendServices(services: FrontendServices, input: string, o } finally { after.dispose(); } } finally { before.dispose(); } check(before.analysis.nodeEsmFiles.size === 0 && before.analysis.createRequireReasons.size === 0, "disposed analysis state"); - // Closing syntax/fetch services does not close a host explicitly owned by this caller. + // Closing syntax services does not close a host explicitly owned by this caller. services.close(); check(original.text === "export const original = 1;", "detached AST survives service close"); const independent = host.createProgram([sourcePath], { noLib: true, types: [] }); @@ -95,12 +75,7 @@ export function runFrontendServices(services: FrontendServices, input: string, o check(closed, "closed syntax refusal"); services.close(); writeFileSync(output, JSON.stringify({ - fetch, collision, nullable, widened, fields, overloads, rewritten, - graph: { - modules: graph.modules.map((module) => ({ key: module.key.split("\\").join("/"), format: module.format, usesFetch: module.usesFetch ?? false, facade: module.esm ?? "" })), - builtins: graph.builtins, - lazyTraps: graph.lazyTraps, - }, + nullable, widened, fields, overloads, rewritten, resolved, versions: [original.text, changed.text], closed, })); } diff --git a/tests/fixtures/self-hosting/frontend-services.ts b/tests/fixtures/self-hosting/frontend-services.ts index c6e3e1f78..f6305b5e1 100644 --- a/tests/fixtures/self-hosting/frontend-services.ts +++ b/tests/fixtures/self-hosting/frontend-services.ts @@ -1,10 +1,8 @@ import { FrontendServices } from "../../../packages/compiler/src/frontend/services.js"; import { createNativeTs7Api } from "../../../packages/compiler/src/frontend/ts7/native-api.js"; import { runFrontendServices } from "./frontend-services-cases.js"; -import { emitRuntimeTypeScript } from "../../../packages/compiler/src/native/runtime-typescript.js"; const services = new FrontendServices((options) => createNativeTs7Api({ ...options, executable: process.argv[2]! }), - process.cwd(), undefined, undefined, - (path, source, format) => emitRuntimeTypeScript(process.argv[2]!, path, source, format)); + process.cwd()); try { runFrontendServices(services, process.argv[3]!, process.argv[4]!); } finally { services.close(); } diff --git a/tests/fixtures/self-hosting/ir-types.ts b/tests/fixtures/self-hosting/ir-types.ts index 12861cf3f..d6e28f654 100644 --- a/tests/fixtures/self-hosting/ir-types.ts +++ b/tests/fixtures/self-hosting/ir-types.ts @@ -32,7 +32,7 @@ const types: IrType[] = [ { kind: "func", params: [F64, STRING], ret: F64 }, { kind: "func", params: [F64], ret: BOOL }, { kind: "func", params: [F64], ret: BOOL, rest: true, restAbi: "typed" }, - { kind: "func", params: [F64], ret: BOOL, rest: true, restAbi: "jsval" }, + { kind: "func", params: [STRING], ret: BOOL, rest: true, restAbi: "typed" }, { kind: "func", params: [F64], ret: BOOL, rest: true, argumentsAll: true }, { kind: "generator", yieldT: STRING, retT: VOID, nextT: F64 }, { kind: "generator", yieldT: STRING, retT: VOID, nextT: F64, async: true }, @@ -109,7 +109,7 @@ console.log("check graph", canDynCheckTo(shared, getShape, getUnion), lookups < shapes.set("parent", { id: "parent", fields: [ { name: "child", type: { kind: "record", shapeId: "child" } }, - { name: "unsupported", type: { kind: "jsval" } }, + { name: "unsupported", type: { kind: "caught" } }, ] }); shapes.set("child", { id: "child", fields: [ { name: "parent", type: { kind: "record", shapeId: "parent" } }, diff --git a/tests/fixtures/self-hosting/type-mapper-cases.ts b/tests/fixtures/self-hosting/type-mapper-cases.ts index f547efa8c..4340d857a 100644 --- a/tests/fixtures/self-hosting/type-mapper-cases.ts +++ b/tests/fixtures/self-hosting/type-mapper-cases.ts @@ -42,7 +42,7 @@ function mapProgram(services: FrontendServices, entry: string): MappingReport { const shapes = new ShapeRegistry(); const unions = new UnionRegistry(); const ctx: TypeMapperCtx = { - checker, shapes, unions, dynamic: false, typeMemo: new Map(), + checker, shapes, unions, typeMemo: new Map(), classNamer: (decl) => decl.name?.text ?? "anonymous", isStdlibFile: (sf) => sf.fileName === ambient || sf.fileName === overrides || sf.fileName === fallback || load.program.isSourceFileDefaultLibrary(sf) || (sf.isDeclarationFile && isNodeTypesPath(sf.fileName)), @@ -140,11 +140,6 @@ function mapProgram(services: FrontendServices, entry: string): MappingReport { if (!anyAlias) throw new Error("missing any fixture"); const anyType = checker.getTypeAtLocation(anyAlias.type); requireValue(mapType(anyType, ctx) === null, "static any unexpectedly mapped"); - ctx.dynamic = true; - requireValue(mapType(anyType, ctx)?.kind === "jsval", "dynamic any did not map to an island handle"); - ctx.dynamic = false; - requireValue(mapType(anyType, ctx) === null, "dynamic memo escaped into static mapping"); - hooks.push("dynamic memo isolation"); return { mappings, records: shapes.shapes, unions: unions.unions, memoEntries: ctx.typeMemo!.size, variants, hooks, tuples }; } finally { load.dispose(); } diff --git a/tests/harness/README.md b/tests/harness/README.md index c278b1e5f..3922c72cc 100644 --- a/tests/harness/README.md +++ b/tests/harness/README.md @@ -45,17 +45,13 @@ RequestInit and ResponseInit WebIDL dictionary reads (including runtime members that may be newer than the installed declarations). Every item is classified: - `static`: engine-free and tied one-to-one to a differential-evidence row; -- `dynamic-only`: fenced from static builds with SC2020, accepted under - `--dynamic`; -- `unsupported`: SC2020 in both tiers; this is implementation work rather than - an implicit omission; +- `unsupported`: an explicit SC2020 refusal that remains implementation work; - `out-of-scope`: reflection metadata such as `Symbol.toStringTag`, retained so the scope boundary is machine-readable. The selected adjacent interface families excluded from the census carry reasons too. A Node upgrade that adds/removes a public member or dictionary key -fails the focused suite until that member is classified. The static, -dynamic-only, and unsupported rows project into the shipped surface manifest; +fails the focused suite until that member is classified. The static and unsupported rows project into the shipped surface manifest; filter `NODE24_FETCH_COMPAT_PROFILE.inventory.entries` by `status`/`owner` for the next cohesive implementation queue. @@ -97,4 +93,4 @@ For the external development toolchain, environment variables that can resolve m ## Test262 -The default static compiler has a pinned Test262 regression profile and a separate full-snapshot survey runner. See [tests/test262/README.md](../test262/README.md) for commands, outcome reporting, and the current strict-script and scalar-assertion limits. Both plain and sanitized Sandbox lanes run the regression profile; dynamic islands are disabled. +The default static compiler has a pinned Test262 regression profile and a separate full-snapshot survey runner. See [tests/test262/README.md](../test262/README.md) for commands, outcome reporting, and the current strict-script and scalar-assertion limits. Both plain and sanitized Sandbox lanes run the regression profile. diff --git a/tests/harness/__snapshots__/any-unit-exit.ts.txt b/tests/harness/__snapshots__/any-unit-exit.ts.txt deleted file mode 100644 index 3cfb41a8f..000000000 --- a/tests/harness/__snapshots__/any-unit-exit.ts.txt +++ /dev/null @@ -1,26 +0,0 @@ -any-unit-exit.ts:11:19 - error SC1090: an 'any' value that is always null flowing into a 'string' slot (nothing in the program gives this value another shape, and the island boundary's validated exit refuses null — every run would throw a TypeError where Node proceeds silently) is not supported yet - - 10 | const a: any = null; - 11 | const b: string = a; - | ^ - 12 | - - hint: give the binding a value other than null before this use, or keep the slot's type 'any' - -any-unit-exit.ts:17:5 - error SC1090: an 'any' value that is always undefined flowing into a 'string' slot (nothing in the program gives this value another shape, and the island boundary's validated exit refuses undefined — every run would throw a TypeError where Node proceeds silently) is not supported yet - - 16 | var x: any; - 17 | foo(x); - | ^ - 18 | - - hint: give the binding a value other than undefined before this use, or keep the slot's type 'any' - -any-unit-exit.ts:20:19 - error SC1090: an 'any' value that is always null or undefined flowing into a 'number' slot (nothing in the program gives this value another shape, and the island boundary's validated exit refuses null or undefined — every run would throw a TypeError where Node proceeds silently) is not supported yet - - 19 | var mixed: any = null; - 20 | const n: number = mixed; - | ^~~~~ - 21 | - - hint: give the binding a value other than null or undefined before this use, or keep the slot's type 'any' \ No newline at end of file diff --git a/tests/harness/__snapshots__/any.ts.txt b/tests/harness/__snapshots__/any.ts.txt index 27e24a7bf..84c7113a0 100644 --- a/tests/harness/__snapshots__/any.ts.txt +++ b/tests/harness/__snapshots__/any.ts.txt @@ -1,8 +1,8 @@ -any.ts:8:5 - error SC2011: destructuring on 'any'-typed values runs in the embedded dynamic engine, which this build does not include +any.ts:8:5 - error SC2011: destructuring on 'any'-typed values cannot compile statically 7 | const sum = n + 1; // ToNumber/ToPrimitive coercion — engine only 8 | var { x } = 0; // destructuring a non-object 'any' — engine only | ^~~~~~~~~~~~~~ 9 | for (const v of n as any) console.log(v); // native checked iteration reports non-iterables at runtime - hint: build with --dynamic to run 'any'-typed code in the embedded engine (adds ~620KB to the binary), or stay static with 'unknown' and a checked cast ('x as T') \ No newline at end of file + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') \ No newline at end of file diff --git a/tests/harness/__snapshots__/async-iterator-handles.ts.txt b/tests/harness/__snapshots__/async-iterator-handles.ts.txt index 017c31cbb..2a0bccdbf 100644 --- a/tests/harness/__snapshots__/async-iterator-handles.ts.txt +++ b/tests/harness/__snapshots__/async-iterator-handles.ts.txt @@ -25,14 +25,14 @@ async-iterator-handles.ts:6:7 - error SC2020: 'AsyncIterableIterator' is hint: the type checker sees the full standard library, but only the supported surface compiles (https://scriptc.dev/limitations) -async-iterator-handles.ts:6:21 - error SC2020: 'ReadableStream.values in a static build' is part of the standard library types but has no scriptc lowering yet +async-iterator-handles.ts:6:21 - error SC2020: 'ReadableStream.values' is part of the standard library types but has no scriptc lowering yet 5 | const nodeIterator = Readable.from(["a"]).iterator(); 6 | const webIterator = ReadableStream.from([1]).values(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7 | console.log(nodeIterator, webIterator); - hint: the native static ReadableStream surface is locked plus cancel() and getReader(); values()/[Symbol.asyncIterator]() compile when consumed directly by for await, while stored iterator handles require --dynamic + hint: direct for-await consumption compiles statically; storing or driving the first-class iterator handle is unsupported async-iterator-handles.ts:7:13 - error SC2004: uses of 'nodeIterator' inherit the blocker on its declaration diff --git a/tests/harness/__snapshots__/contract-int32-escapes.ts.txt b/tests/harness/__snapshots__/contract-int32-escapes.ts.txt index 5ba985a48..920f4c4a4 100644 --- a/tests/harness/__snapshots__/contract-int32-escapes.ts.txt +++ b/tests/harness/__snapshots__/contract-int32-escapes.ts.txt @@ -7,7 +7,7 @@ contract-int32-escapes.ts:6:20 - error SC7003: the Int32 contract on 'x' cannot hint: wrap it in a function that takes a number and passes `x | 0` -contract-int32-escapes.ts:11:9 - error SC7003: the Int32 contract on 'Box.size' cannot be checked: instances of the class reach dynamic code (any, unknown casts, islands) where a store to the field is not checked +contract-int32-escapes.ts:11:9 - error SC7003: the Int32 contract on 'Box.size' cannot be checked: instances of the class reach dynamic code (any or unknown casts) where a store to the field is not checked 10 | class Box { 11 | size: Int32 = 0; diff --git a/tests/harness/__snapshots__/coverage-divergences.txt b/tests/harness/__snapshots__/coverage-divergences.txt index 9732e6feb..c81b04c37 100644 --- a/tests/harness/__snapshots__/coverage-divergences.txt +++ b/tests/harness/__snapshots__/coverage-divergences.txt @@ -3,7 +3,7 @@ scriptc coverage tests/coverage-fixtures/divergences.ts statements analyzed 18 compile statically 18 (100%) - fully static — this program has no dynamic remainder. + fully static — all analyzed statements compile to native code. differs from Node 8 sites (compiles; the native program can behave differently) ×1 SC6001 passing a 'Tagged' where 'Labeled' is expected copies the object (a narrower record shape compiles as a field copy): the write to 'target.label' updates only the copy, while under Node it updates the… diff --git a/tests/harness/__snapshots__/coverage-dynamic-mix-dynamic.txt b/tests/harness/__snapshots__/coverage-dynamic-mix-dynamic.txt deleted file mode 100644 index f9c81ed6b..000000000 --- a/tests/harness/__snapshots__/coverage-dynamic-mix-dynamic.txt +++ /dev/null @@ -1,7 +0,0 @@ -scriptc coverage tests/coverage-fixtures/dynamic-mix.ts - - statements analyzed 9 - compile statically 6 (66%) - compile dynamically 3 (33%) (island sites — the embedded engine runs them) - - builds with --dynamic — no remaining blockers (the island sites above run in the embedded engine). \ No newline at end of file diff --git a/tests/harness/__snapshots__/coverage-dynamic-mix.txt b/tests/harness/__snapshots__/coverage-dynamic-mix.txt index 71db072eb..a3e714bde 100644 --- a/tests/harness/__snapshots__/coverage-dynamic-mix.txt +++ b/tests/harness/__snapshots__/coverage-dynamic-mix.txt @@ -1,12 +1,9 @@ scriptc coverage tests/coverage-fixtures/dynamic-mix.ts - statements analyzed 9 - compile statically 7 (77%) + statements analyzed 8 + compile statically 7 (87%) - runs with --dynamic 2 sites (embeds a JS engine, ~620KB — static stays the default) - ×1 SC2010 '__island_eval' requires the embedded dynamic engine, which this build does not include - at tests/coverage-fixtures/dynamic-mix.ts:8:13 - hint: build with --dynamic to embed the engine (adds ~620KB to the binary); static builds never include it - ×1 SC2012 '.toPrecision()' on numbers runs in the embedded dynamic engine, which this build does not include + blockers: + ×1 SC2012 '.toPrecision()' on numbers cannot compile statically at tests/coverage-fixtures/dynamic-mix.ts:6:12 - hint: build with --dynamic to run this call in the embedded engine (adds ~620KB to the binary); static builds never include it + hint: use a supported API or rewrite this operation for native compilation \ No newline at end of file diff --git a/tests/harness/__snapshots__/coverage-import-fences.txt b/tests/harness/__snapshots__/coverage-import-fences.txt index 523c713b1..388647c55 100644 --- a/tests/harness/__snapshots__/coverage-import-fences.txt +++ b/tests/harness/__snapshots__/coverage-import-fences.txt @@ -6,4 +6,4 @@ scriptc coverage tests/fixtures/node-types/import-fences.ts blockers: ×2 SC1010 the 'v8' module (it observes V8 engine internals — heap statistics and snapshots, GC and CPU profiles, serialize/deserialize — and a compiled binary embeds no V8 engine to observe) at tests/fixtures/node-types/import-fences.ts:7:1, tests/fixtures/node-types/import-fences.ts:12:1 - hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported \ No newline at end of file + hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported \ No newline at end of file diff --git a/tests/harness/__snapshots__/coverage-js-gap.txt b/tests/harness/__snapshots__/coverage-js-gap.txt index 793a9fcd0..3150216b6 100644 --- a/tests/harness/__snapshots__/coverage-js-gap.txt +++ b/tests/harness/__snapshots__/coverage-js-gap.txt @@ -3,4 +3,4 @@ scriptc coverage tests/coverage-fixtures/js-gap/gap.js statements analyzed 5 compile statically 5 (100%) - fully static — this program has no dynamic remainder. \ No newline at end of file + fully static — all analyzed statements compile to native code. \ No newline at end of file diff --git a/tests/harness/__snapshots__/coverage-npm-lazy-builtin.txt b/tests/harness/__snapshots__/coverage-npm-lazy-builtin.txt deleted file mode 100644 index f3a9b4d7b..000000000 --- a/tests/harness/__snapshots__/coverage-npm-lazy-builtin.txt +++ /dev/null @@ -1,14 +0,0 @@ -scriptc coverage tests/fixtures/npm/cases/esbuild-require/main.ts - - statements analyzed 2 - compile statically 1 (50%) - compile dynamically 1 (50%) (island sites — the embedded engine runs them) - - embedded npm code imports Node builtins: - node:http2 not shimmed — lazy trap (esbundled) - node:module shimmed (esbundled) - node:os shimmed (esbundled) - node:tty shimmed (esbundled) - (lazy trap: only reachable through require()/import() boundaries — the build embeds Node's call-time error; the call throws at runtime) - - builds with --dynamic — no remaining blockers (the island sites above run in the embedded engine). \ No newline at end of file diff --git a/tests/harness/__snapshots__/coverage-npm-lazy-traps.txt b/tests/harness/__snapshots__/coverage-npm-lazy-traps.txt deleted file mode 100644 index 847c7bd9f..000000000 --- a/tests/harness/__snapshots__/coverage-npm-lazy-traps.txt +++ /dev/null @@ -1,19 +0,0 @@ -scriptc coverage tests/fixtures/npm/cases/lazy-traps/main.ts - - statements analyzed 23 - compile statically 12 (52%) - compile dynamically 11 (47%) (island sites — the embedded engine runs them) - - embedded npm code imports Node builtins and unresolved specifiers: - ./missing-rel.js unresolvable — lazy trap (import() in esmghost) - ./nope unresolvable — lazy trap (require in lazyzoo) - ghost-bare-pkg unresolvable — lazy trap (import() in esmghost) - ghost-chain-dep unresolvable — lazy trap (require in lazyzoo) - ghost-dep unresolvable — lazy trap (require in lazyzoo) - ghost-sub-pkg unresolvable — lazy trap (import in esmghost) - left-padz unresolvable — lazy trap (require in lazyzoo) - never-imported-pkg unresolvable — lazy trap (import() in esmghost) - never-there unresolvable — lazy trap (require in lazyzoo) - (lazy trap: only reachable through require()/import() boundaries — the build embeds Node's call-time error; the call throws at runtime) - - builds with --dynamic — no remaining blockers (the island sites above run in the embedded engine). \ No newline at end of file diff --git a/tests/harness/__snapshots__/coverage-npm-packages.txt b/tests/harness/__snapshots__/coverage-npm-packages.txt index def34c76b..0ba05286a 100644 --- a/tests/harness/__snapshots__/coverage-npm-packages.txt +++ b/tests/harness/__snapshots__/coverage-npm-packages.txt @@ -1,18 +1,10 @@ -scriptc coverage tests/diagnostics/npm-imports/main.ts +scriptc coverage tests/corpus/native-npm-imports/main.ts - statements analyzed 6 - compile statically 0 (0%) + statements analyzed 14 + compile statically 14 (100%) - runs with --dynamic 9 sites (embeds a JS engine, ~620KB — static stays the default) - ×6 SC2013 values from the 'mathkit' package run in the embedded dynamic engine, which this build does not include - at tests/diagnostics/npm-imports/main.ts:9:7, tests/diagnostics/npm-imports/main.ts:10:13, tests/diagnostics/npm-imports/main.ts:12:7 (+3 more) - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - ×1 SC2013 importing 'mathkit' requires the embedded dynamic engine, which this build does not include — the package's implementation runs there - at tests/diagnostics/npm-imports/main.ts:5:1 - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - ×1 SC2013 importing '@acme/units' requires the embedded dynamic engine, which this build does not include — the package's implementation runs there - at tests/diagnostics/npm-imports/main.ts:6:1 - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - ×1 SC2013 values from the '@acme/units' package run in the embedded dynamic engine, which this build does not include - at tests/diagnostics/npm-imports/main.ts:14:13 - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine + npm package compilation: + mathkit static + @acme/units static + + fully static — all analyzed statements compile to native code. \ No newline at end of file diff --git a/tests/harness/__snapshots__/create-require.ts.txt b/tests/harness/__snapshots__/create-require.ts.txt index a6d156b3f..219af92a4 100644 --- a/tests/harness/__snapshots__/create-require.ts.txt +++ b/tests/harness/__snapshots__/create-require.ts.txt @@ -5,7 +5,7 @@ create-require.ts:13:13 - error SC2020: 'module.createRequire' is part of the st | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14 | console.log(String(req("./config.cjs"))); - hint: the lowered shape is a const binding (or a proven stable top-level let/var) over createRequire(import.meta.url) (or __filename) whose require calls take STATIC string literals — builtins, project modules (including #imports), relative .json documents, --npm-static packages, and installed npm packages under --dynamic resolve at build time; dynamic specifiers cannot exist in a compiled binary's fixed module graph + hint: the lowered shape is a const binding (or a proven stable top-level let/var) over createRequire(import.meta.url) (or __filename) whose require calls take STATIC string literals — builtins, project modules (including #imports), relative .json documents and natively compiled npm packages resolve at build time; dynamic specifiers cannot exist in a compiled binary's fixed module graph create-require.ts:20:1 - error SC2020: 'createRequire's require with this argument shape' is part of the standard library types but has no scriptc lowering yet diff --git a/tests/harness/__snapshots__/dynamic-import-static.ts.txt b/tests/harness/__snapshots__/dynamic-import-static.ts.txt index dbc2f00bb..c9655ce2d 100644 --- a/tests/harness/__snapshots__/dynamic-import-static.ts.txt +++ b/tests/harness/__snapshots__/dynamic-import-static.ts.txt @@ -1,4 +1,4 @@ -dynamic-import-static.ts:5:24 - error SC1090: dynamic import() of computed specifiers (the module graph embeds at build time — the specifier must be a string literal) are not supported yet +dynamic-import-static.ts:5:24 - error SC1090: dynamic import() of computed specifiers (the module graph resolves at build time — the specifier must be a string literal) are not supported yet 4 | async function run(specifier: string): Promise { 5 | const module = await import(specifier); diff --git a/tests/harness/__snapshots__/dynamic-import/main.ts.txt b/tests/harness/__snapshots__/dynamic-import/main.ts.txt index 05a99a733..ef3a0f99d 100644 --- a/tests/harness/__snapshots__/dynamic-import/main.ts.txt +++ b/tests/harness/__snapshots__/dynamic-import/main.ts.txt @@ -1,15 +1,6 @@ -dynamic-import/main.ts:13:9 - error SC1090: dynamic import() of computed specifiers (the module graph embeds at build time — the specifier must be a string literal) are not supported yet +dynamic-import/main.ts:13:9 - error SC1090: dynamic import() of computed specifiers (the module graph resolves at build time — the specifier must be a string literal) are not supported yet 12 | const name = "greeter" + tag(); 13 | await import(name); | ^~~~~~~~~~~~ - 14 | await import("./helper.js"); - -dynamic-import/main.ts:15:9 - error SC2030: cannot embed npm package code: 'http2' is a Node builtin the island does not provide a shim for - - 14 | await import("./helper.js"); - 15 | await import("http2"); - | ^~~~~~~~~~~~~~~ - 16 | } - - hint: the package's runtime JS is embedded at build time and executed in the island; packages that reach outside the shimmed builtins (events, path, fs, os, process, util, buffer, stream, crypto, zlib, url, assert, and the rest of `scriptc coverage`'s shimmed table — http/https clients and net/tls load too; http2 and worker_threads are the notable absences) do not run yet \ No newline at end of file + 14 | await import("./helper.js"); \ No newline at end of file diff --git a/tests/harness/__snapshots__/dynamic-representable-types.ts.txt b/tests/harness/__snapshots__/dynamic-representable-types.ts.txt index b7606cf79..21402b597 100644 --- a/tests/harness/__snapshots__/dynamic-representable-types.ts.txt +++ b/tests/harness/__snapshots__/dynamic-representable-types.ts.txt @@ -1,12 +1,10 @@ -dynamic-representable-types.ts:7:7 - error SC2011: values of type '[number, (string | undefined)?]' have no static representation but run in the embedded dynamic engine, which this build does not include +dynamic-representable-types.ts:7:7 - error SC2001: values of type '[number, (string | undefined)?]' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') 6 | const bare: any = 41; 7 | const optTuple: [number, string?] = [1]; | ^~~~~~~~ 8 | console.log(arr.length, rec.width, fn(1), bare, optTuple.length); - hint: build with --dynamic to run these values in the embedded engine (adds ~620KB to the binary), or restate the type inside the static surface (https://scriptc.dev/limitations describes the boundary) - dynamic-representable-types.ts:8:49 - error SC2004: uses of 'optTuple' inherit the blocker on its declaration 7 | const optTuple: [number, string?] = [1]; diff --git a/tests/harness/__snapshots__/dynamic-surface.ts.txt b/tests/harness/__snapshots__/dynamic-surface.ts.txt index d30de8ffd..2744d29e5 100644 --- a/tests/harness/__snapshots__/dynamic-surface.ts.txt +++ b/tests/harness/__snapshots__/dynamic-surface.ts.txt @@ -1,8 +1,8 @@ -dynamic-surface.ts:12:15 - error SC2012: '.toPrecision()' on numbers runs in the embedded dynamic engine, which this build does not include +dynamic-surface.ts:12:15 - error SC2012: '.toPrecision()' on numbers cannot compile statically 11 | const tau = Math.PI * 2; 12 | const price = (19.99).toPrecision(4); | ^~~~~~~~~~~~~~~~~~~~~~ 13 | const n = Number.parseFloat("3.14"); - hint: build with --dynamic to run this call in the embedded engine (adds ~620KB to the binary); static builds never include it \ No newline at end of file + hint: use a supported API or rewrite this operation for native compilation \ No newline at end of file diff --git a/tests/harness/__snapshots__/fetch-static.ts.txt b/tests/harness/__snapshots__/fetch-static.ts.txt index 1d397170a..68960cb89 100644 --- a/tests/harness/__snapshots__/fetch-static.ts.txt +++ b/tests/harness/__snapshots__/fetch-static.ts.txt @@ -5,4 +5,4 @@ fetch-static.ts:27:23 - error SC2020: 'Response.arrayBuffer in a static build' i | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28 | } - hint: the native static Response surface is status/ok/statusText/url/redirected/headers/body/bodyUsed plus json(), text(), bytes(), and arrayBuffer(); use --dynamic for the wider Web API \ No newline at end of file + hint: the native static Response surface is status/ok/statusText/url/redirected/headers/body/bodyUsed plus json(), text(), bytes(), and arrayBuffer(); other forms are unsupported \ No newline at end of file diff --git a/tests/harness/__snapshots__/function-forms.ts.txt b/tests/harness/__snapshots__/function-forms.ts.txt index c49a3face..3c3bd5c83 100644 --- a/tests/harness/__snapshots__/function-forms.ts.txt +++ b/tests/harness/__snapshots__/function-forms.ts.txt @@ -1,4 +1,4 @@ -function-forms.ts:38:3 - error SC1090: functions with optional or defaulted parameters as values, except where the target type spells the completed signature with required parameters (a '(x?: T) => R' function flows into a '(x: T | undefined) => R' slot, and a package/'any' slot takes any signature that can cross the island boundary; otherwise call the function directly) are not supported yet +function-forms.ts:38:3 - error SC1090: functions with optional or defaulted parameters as values, except where the target type spells the completed signature with required parameters (a '(x?: T) => R' function flows into a '(x: T | undefined) => R' slot, and a package/'any' slot takes any natively representable signature; otherwise call the function directly) are not supported yet 37 | function outer(): number { 38 | function inner(n = 2): number { diff --git a/tests/harness/__snapshots__/imports.ts.txt b/tests/harness/__snapshots__/imports.ts.txt index bf8fc59e1..ef48d5031 100644 --- a/tests/harness/__snapshots__/imports.ts.txt +++ b/tests/harness/__snapshots__/imports.ts.txt @@ -4,7 +4,7 @@ imports.ts:1:1 - error SC1010: the 'some-package' package (nothing installed res | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | import { join } from "node:path"; - hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported + hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported imports.ts:1:27 - error SC0001: Cannot find module 'some-package' or its corresponding type declarations. diff --git a/tests/harness/__snapshots__/island-boundary-slots.ts.txt b/tests/harness/__snapshots__/island-boundary-slots.ts.txt deleted file mode 100644 index 4bef76aca..000000000 --- a/tests/harness/__snapshots__/island-boundary-slots.ts.txt +++ /dev/null @@ -1,8 +0,0 @@ -island-boundary-slots.ts:9:12 - error SC1100: passing 'any'-typed values where '() => void' is expected (argument 1 of timers.setTimeout) is not supported yet - - 8 | const cb: any = () => {}; - 9 | setTimeout(cb, 1); - | ^~ - 10 | - - hint: validate with 'as ' first — the cast checks the dynamic value at runtime and throws on mismatch \ No newline at end of file diff --git a/tests/harness/__snapshots__/island.ts.txt b/tests/harness/__snapshots__/island.ts.txt deleted file mode 100644 index 768922b81..000000000 --- a/tests/harness/__snapshots__/island.ts.txt +++ /dev/null @@ -1,17 +0,0 @@ -island.ts:4:11 - error SC2010: '__island_eval' requires the embedded dynamic engine, which this build does not include - - 3 | // ICE and never a C-level link error. - 4 | const r = __island_eval("6 * 7"); - | ^~~~~~~~~~~~~~~~~~~~~~ - 5 | console.log(r); - - hint: build with --dynamic to embed the engine (adds ~620KB to the binary); static builds never include it - -island.ts:8:10 - error SC2010: '__island_eval' requires the embedded dynamic engine, which this build does not include - - 7 | function indirect(code: string): string { - 8 | return __island_eval(code); - | ^~~~~~~~~~~~~~~~~~~ - 9 | } - - hint: build with --dynamic to embed the engine (adds ~620KB to the binary); static builds never include it \ No newline at end of file diff --git a/tests/harness/__snapshots__/json-shape/main.ts.txt b/tests/harness/__snapshots__/json-shape/main.ts.txt index 8683ac7fb..b03f098a6 100644 --- a/tests/harness/__snapshots__/json-shape/main.ts.txt +++ b/tests/harness/__snapshots__/json-shape/main.ts.txt @@ -1,12 +1,10 @@ -json-shape/main.ts:5:8 - error SC2011: values of type '{ name: string; deprecated: null; }' have no static representation but run in the embedded dynamic engine, which this build does not include +json-shape/main.ts:5:8 - error SC2001: values of type '{ name: string; deprecated: null; }' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') 4 | * engine) and uses of the binding poison. */ 5 | import bad from "./nulled.json" with { type: "json" }; | ^~~ 6 | - hint: build with --dynamic to run these values in the embedded engine (adds ~620KB to the binary), or restate the type inside the static surface (https://scriptc.dev/limitations describes the boundary) - json-shape/main.ts:7:13 - error SC1090: the reference to 'bad' (a binding form with no lowering) is not supported yet 6 | diff --git a/tests/harness/__snapshots__/maps-surface.ts.txt b/tests/harness/__snapshots__/maps-surface.ts.txt index 3a3692646..c1db0576d 100644 --- a/tests/harness/__snapshots__/maps-surface.ts.txt +++ b/tests/harness/__snapshots__/maps-surface.ts.txt @@ -1,8 +1,6 @@ -maps-surface.ts:21:11 - error SC2011: values of type '(v: number, k: string, theMap: Map) => void' have no static representation but run in the embedded dynamic engine, which this build does not include +maps-surface.ts:21:11 - error SC2001: values of type '(v: number, k: string, theMap: Map) => void' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') 20 | // The forEach callback receives (value, key) — no third map parameter. 21 | m.forEach((v, k, theMap) => console.log(k, v)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 22 | // The unsupported callback must produce a diagnostic. - - hint: build with --dynamic to run these values in the embedded engine (adds ~620KB to the binary), or restate the type inside the static surface (https://scriptc.dev/limitations describes the boundary) \ No newline at end of file + 22 | // The unsupported callback must produce a diagnostic. \ No newline at end of file diff --git a/tests/harness/__snapshots__/module-out-of-scope.ts.txt b/tests/harness/__snapshots__/module-out-of-scope.ts.txt index 5008328cc..47e241459 100644 --- a/tests/harness/__snapshots__/module-out-of-scope.ts.txt +++ b/tests/harness/__snapshots__/module-out-of-scope.ts.txt @@ -5,7 +5,7 @@ module-out-of-scope.ts:6:1 - error SC1010: the 'node:v8' module (it observes V8 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7 | import { create } from "domain"; - hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported + hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported module-out-of-scope.ts:6:35 - error SC0001: Cannot find name 'node:v8'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig. @@ -21,7 +21,7 @@ module-out-of-scope.ts:7:1 - error SC1010: the 'domain' module (deprecated in No | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8 | import { DatabaseSync } from "node:sqlite"; - hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported + hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported module-out-of-scope.ts:7:24 - error SC0001: Cannot find name 'domain'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig. @@ -37,7 +37,7 @@ module-out-of-scope.ts:8:1 - error SC1010: the 'node:sqlite' module (it wraps th | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 9 | import { HTTPParser } from "_http_common"; - hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported + hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported module-out-of-scope.ts:8:30 - error SC0001: Cannot find name 'node:sqlite'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig. @@ -53,7 +53,7 @@ module-out-of-scope.ts:9:1 - error SC1010: the '_http_common' module (a Node-int | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 10 | import { open } from "node:inspector"; - hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported + hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported module-out-of-scope.ts:9:28 - error SC0001: Cannot find module '_http_common' or its corresponding type declarations. @@ -69,7 +69,7 @@ module-out-of-scope.ts:10:1 - error SC1010: the 'node:inspector' module (it driv | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11 | import { ReadableStream } from "node:stream/web"; - hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported + hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported module-out-of-scope.ts:10:22 - error SC0001: Cannot find name 'node:inspector'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig. @@ -85,7 +85,7 @@ module-out-of-scope.ts:11:1 - error SC1010: the 'node:stream/web' module is not | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12 | - hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported + hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported module-out-of-scope.ts:11:32 - error SC0001: Cannot find name 'node:stream/web'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig. diff --git a/tests/harness/__snapshots__/node-types-fenced.txt b/tests/harness/__snapshots__/node-types-fenced.txt index 9f3ce1a23..9635eb2d2 100644 --- a/tests/harness/__snapshots__/node-types-fenced.txt +++ b/tests/harness/__snapshots__/node-types-fenced.txt @@ -25,14 +25,14 @@ fenced.ts:16:1 - error SC2020: 'Timeout.close' is typed by @types/node but has n hint: unref(), ref(), hasRef(), and refresh() are the supported Timeout methods -fenced.ts:28:15 - error SC2020: 'Response.type in a static build' is typed by @types/node but has no scriptc lowering yet +fenced.ts:28:15 - error SC2020: 'Response.type' is typed by @types/node but has no scriptc lowering yet 27 | const response = await fetch(url); 28 | console.log(response.type); | ^~~~~~~~~~~~~ 29 | response.clone(); - hint: the native static Response surface is status/ok/statusText/url/redirected/headers/body/bodyUsed plus json(), text(), bytes(), and arrayBuffer(); use --dynamic for the wider Web API + hint: the member is outside the native static handle projection fenced.ts:29:3 - error SC2020: 'Response.clone' is typed by @types/node but has no scriptc lowering yet diff --git a/tests/harness/__snapshots__/npm-imports/main.ts.txt b/tests/harness/__snapshots__/npm-imports/main.ts.txt deleted file mode 100644 index 07fe0ff01..000000000 --- a/tests/harness/__snapshots__/npm-imports/main.ts.txt +++ /dev/null @@ -1,80 +0,0 @@ -npm-imports/main.ts:5:1 - error SC2013: importing 'mathkit' requires the embedded dynamic engine, which this build does not include — the package's implementation runs there - - 4 | // never the type name. Type-only imports are free. - 5 | import { Calc, origin } from "mathkit"; - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 6 | import { convert } from "@acme/units"; - - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - -npm-imports/main.ts:6:1 - error SC2013: importing '@acme/units' requires the embedded dynamic engine, which this build does not include — the package's implementation runs there - - 5 | import { Calc, origin } from "mathkit"; - 6 | import { convert } from "@acme/units"; - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 7 | import type { Vector } from "mathkit"; - - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - -npm-imports/main.ts:9:7 - error SC2013: values from the 'mathkit' package run in the embedded dynamic engine, which this build does not include - - 8 | - 9 | const point: Vector = { x: 3, y: 4 }; - | ^~~~~ - 10 | console.log(point.x); - - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - -npm-imports/main.ts:10:13 - error SC2013: values from the 'mathkit' package run in the embedded dynamic engine, which this build does not include - - 9 | const point: Vector = { x: 3, y: 4 }; - 10 | console.log(point.x); - | ^~~~~~~ - 11 | - - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - -npm-imports/main.ts:12:7 - error SC2013: values from the 'mathkit' package run in the embedded dynamic engine, which this build does not include - - 11 | - 12 | const calc = new Calc(1); - | ^~~~ - 13 | console.log(calc.value()); - - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - -npm-imports/main.ts:12:14 - error SC2013: values from the 'mathkit' package run in the embedded dynamic engine, which this build does not include - - 11 | - 12 | const calc = new Calc(1); - | ^~~~~~~~~~~ - 13 | console.log(calc.value()); - - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - -npm-imports/main.ts:13:13 - error SC2013: values from the 'mathkit' package run in the embedded dynamic engine, which this build does not include - - 12 | const calc = new Calc(1); - 13 | console.log(calc.value()); - | ^~~~~~~~~~ - 14 | console.log(convert(3, "km")); - - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - -npm-imports/main.ts:14:13 - error SC2013: values from the '@acme/units' package run in the embedded dynamic engine, which this build does not include - - 13 | console.log(calc.value()); - 14 | console.log(convert(3, "km")); - | ^~~~~~~ - 15 | console.log(origin.x); - - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine - -npm-imports/main.ts:15:13 - error SC2013: values from the 'mathkit' package run in the embedded dynamic engine, which this build does not include - - 14 | console.log(convert(3, "km")); - 15 | console.log(origin.x); - | ^~~~~~~~ - 16 | - - hint: build with --dynamic to run npm package code in the embedded engine (adds ~620KB to the binary), or try --npm-static auto to compile eligible packages' JavaScript statically; static builds never include the engine \ No newline at end of file diff --git a/tests/harness/__snapshots__/pkg-import-fences/main.ts.txt b/tests/harness/__snapshots__/pkg-import-fences/main.ts.txt index 8a4f64162..f99018eb4 100644 --- a/tests/harness/__snapshots__/pkg-import-fences/main.ts.txt +++ b/tests/harness/__snapshots__/pkg-import-fences/main.ts.txt @@ -5,7 +5,7 @@ pkg-import-fences/main.ts:7:1 - error SC1010: the 'ambientonly' module (it exist | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8 | import { y } from "patternXmod"; - hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported + hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported pkg-import-fences/main.ts:8:1 - error SC1010: the 'patternXmod' module (it exists only as an ambient 'declare module' type surface — there is no runtime module to import) is not supported yet @@ -14,7 +14,7 @@ pkg-import-fences/main.ts:8:1 - error SC1010: the 'patternXmod' module (it exist | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 9 | import { t } from "#types"; - hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported + hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported pkg-import-fences/main.ts:9:1 - error SC1010: the '#types' import (it resolves only to type declarations — there is no runtime implementation to compile) is not supported yet @@ -23,4 +23,4 @@ pkg-import-fences/main.ts:9:1 - error SC1010: the '#types' import (it resolves o | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ 10 | - hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), installed npm packages (their code runs under --dynamic), and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported \ No newline at end of file + hint: relative imports (./file, ../dir/file), package.json-mediated project imports (#alias via the imports field, self-name references via exports), statically compiled npm packages, and the built-in fs, fs/promises, path, os, url, crypto, zlib, child_process, net, http, tls, https, http2, dgram, dns, util, util/types, string_decoder, querystring, readline, events, stream, stream/promises, stream/consumers, buffer, assert, assert/strict, worker_threads, cluster, tty, async_hooks, timers, timers/promises, diagnostics_channel, perf_hooks, module, and console modules (bare or node:-prefixed) and node:test (node:-prefixed only, like in Node) are supported \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-1112-number-methods.ts.txt b/tests/harness/__snapshots__/retired-engine-1112-number-methods.ts.txt new file mode 100644 index 000000000..dfd5f0eaa --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-1112-number-methods.ts.txt @@ -0,0 +1,8 @@ +retired-engine-1112-number-methods.ts:9:13 - error SC2012: '.toPrecision()' on numbers cannot compile statically + + 8 | console.log((1e21).toFixed(2), (0 / 0).toFixed(2)); + 9 | console.log(n.toPrecision(2), n.toPrecision(8), (0.000123).toPrecision(2)); + | ^~~~~~~~~~~~~~~~ + 10 | console.log((255).toString(16), (255).toString(2), (511).toString(8), (12345).toString(36)); + + hint: use a supported API or rewrite this operation for native compilation \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-1123-any-conditional-spread.ts.txt b/tests/harness/__snapshots__/retired-engine-1123-any-conditional-spread.ts.txt new file mode 100644 index 000000000..707d1dfd9 --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-1123-any-conditional-spread.ts.txt @@ -0,0 +1,6 @@ +retired-engine-1123-any-conditional-spread.ts:21:21 - error SC1090: conditional spreads beyond `...(c ? { field: v } : {})` (exactly one property against an empty arm — spell other shapes as optional fields) is not supported yet + + 20 | function multi(on: boolean): any { + 21 | return { base: 1, ...(on ? { x: "X", y: "Y" } : {}) }; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 22 | } \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-1587-any-field-unassigned.ts.txt b/tests/harness/__snapshots__/retired-engine-1587-any-field-unassigned.ts.txt new file mode 100644 index 000000000..f5d79bffb --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-1587-any-field-unassigned.ts.txt @@ -0,0 +1,47 @@ +retired-engine-1587-any-field-unassigned.ts:5:3 - error SC1090: 'unknown'-typed class fields are not supported yet + + 4 | class Holder { + 5 | x: any; + | ^ + 6 | fill(): void { + +retired-engine-1587-any-field-unassigned.ts:11:11 - error SC1090: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet + + 10 | + 11 | const h = new Holder(); + | ^~~~~~~~~~~~ + 12 | console.log(String(h.x)); + +retired-engine-1587-any-field-unassigned.ts:12:20 - error SC2004: uses of 'h' inherit the blocker on its declaration + + 11 | const h = new Holder(); + 12 | console.log(String(h.x)); + | ^ + 13 | h.fill(); + + hint: the declaration of 'h' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-1587-any-field-unassigned.ts:13:1 - error SC2004: uses of 'h' inherit the blocker on its declaration + + 12 | console.log(String(h.x)); + 13 | h.fill(); + | ^ + 14 | console.log(String(h.x)); + + hint: the declaration of 'h' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-1587-any-field-unassigned.ts:14:20 - error SC2004: uses of 'h' inherit the blocker on its declaration + + 13 | h.fill(); + 14 | console.log(String(h.x)); + | ^ + 15 | console.log(new Holder().x === undefined); + + hint: the declaration of 'h' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-1587-any-field-unassigned.ts:15:13 - error SC1090: constructing through a class value whose class has no lowering (the class declaration itself was rejected — see its own diagnostic) is not supported yet + + 14 | console.log(String(h.x)); + 15 | console.log(new Holder().x === undefined); + | ^~~~~~~~~~~~ + 16 | \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-2083-destructuring-island-decl.ts.txt b/tests/harness/__snapshots__/retired-engine-2083-destructuring-island-decl.ts.txt new file mode 100644 index 000000000..531002a4b --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-2083-destructuring-island-decl.ts.txt @@ -0,0 +1,80 @@ +retired-engine-2083-destructuring-island-decl.ts:9:5 - error SC2011: destructuring on 'any'-typed values cannot compile statically + + 8 | const a: any = [1, "two", true, 4, 5]; + 9 | var [x, , y, ...rest] = a; + | ^~~~~~~~~~~~~~~~~~~~~ + 10 | console.log(`${x} ${y} ${rest.length} ${rest[0]} ${rest[1]}`); + + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') + +retired-engine-2083-destructuring-island-decl.ts:12:7 - error SC2011: destructuring on 'any'-typed values cannot compile statically + + 11 | const o: any = { p: 1, q: { r: "deep" } }; + 12 | const { p, q: { r } } = o; + | ^~~~~~~~~~~~~~~~~~~ + 13 | console.log(`${p} ${r}`); + + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') + +retired-engine-2083-destructuring-island-decl.ts:14:7 - error SC2011: destructuring on 'any'-typed values cannot compile statically + + 13 | console.log(`${p} ${r}`); + 14 | const { missing = 42 } = o; + | ^~~~~~~~~~~~~~~~~~~~ + 15 | console.log(`${missing}`); + + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') + +retired-engine-2083-destructuring-island-decl.ts:16:7 - error SC2011: destructuring on 'any'-typed values cannot compile statically + + 15 | console.log(`${missing}`); + 16 | const { p: p2 = 9, ...others } = o; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 17 | console.log(`${p2} ${others.q.r}`); + + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') + +retired-engine-2083-destructuring-island-decl.ts:17:22 - error SC2004: uses of 'others' inherit the blocker on its declaration + + 16 | const { p: p2 = 9, ...others } = o; + 17 | console.log(`${p2} ${others.q.r}`); + | ^~~~~~~~~~ + 18 | var [] = [1, 2] as any; + + hint: the declaration of 'others' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2083-destructuring-island-decl.ts:19:5 - error SC2011: destructuring on 'any'-typed values cannot compile statically + + 18 | var [] = [1, 2] as any; + 19 | var {} = o; + | ^~~~~~ + 20 | console.log("empties ok"); + + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') + +retired-engine-2083-destructuring-island-decl.ts:22:11 - error SC2011: destructuring on 'any'-typed values cannot compile statically + + 21 | const u: any = undefined; + 22 | try { var {} = u; } catch (e) { console.log("obj-undef throws"); } + | ^~~~~~ + 23 | try { var [] = 0 as any; } catch (e) { console.log("arr-num throws"); } + + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') + +retired-engine-2083-destructuring-island-decl.ts:23:11 - error SC2011: destructuring on 'any'-typed values cannot compile statically + + 22 | try { var {} = u; } catch (e) { console.log("obj-undef throws"); } + 23 | try { var [] = 0 as any; } catch (e) { console.log("arr-num throws"); } + | ^~~~~~~~~~~~~ + 24 | const [d1 = 10, d2 = 20] = [] as any; + + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') + +retired-engine-2083-destructuring-island-decl.ts:24:8 - error SC2011: values of type 'any' have no native representation at this site + + 23 | try { var [] = 0 as any; } catch (e) { console.log("arr-num throws"); } + 24 | const [d1 = 10, d2 = 20] = [] as any; + | ^~ + 25 | console.log(`${d1} ${d2}`); + + hint: use a supported typed value, or 'unknown' with a checked cast ('x as T') \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-2084-destructuring-primitive-sources.ts.txt b/tests/harness/__snapshots__/retired-engine-2084-destructuring-primitive-sources.ts.txt new file mode 100644 index 000000000..07d835832 --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-2084-destructuring-primitive-sources.ts.txt @@ -0,0 +1,40 @@ +retired-engine-2084-destructuring-primitive-sources.ts:8:7 - error SC2010: destructuring 'number' values through JavaScript wrapper coercion cannot compile statically + + 7 | // reports the SC2010 dynamic-family choice. + 8 | { let { toString } = 1; console.log(`${toString.call(9)}`); } + | ^~~~~~~~~~~~~~~~ + 9 | { + + hint: scriptc compiles program code to native instructions; runtime JavaScript evaluation is unsupported + +retired-engine-2084-destructuring-primitive-sources.ts:8:40 - error SC1090: Function.prototype.call on a function whose signature cannot cross the checked-value boundary (call 'toString(...)' directly) is not supported yet + + 7 | // reports the SC2010 dynamic-family choice. + 8 | { let { toString } = 1; console.log(`${toString.call(9)}`); } + | ^~~~~~~~~~~~~~~~ + 9 | { + +retired-engine-2084-destructuring-primitive-sources.ts:10:7 - error SC2010: destructuring 'number' values through JavaScript wrapper coercion cannot compile statically + + 9 | { + 10 | let { toFixed } = 1; + | ^~~~~~~~~~~~~~~ + 11 | console.log(`${toFixed.call(2.5, 1)}`); + + hint: scriptc compiles program code to native instructions; runtime JavaScript evaluation is unsupported + +retired-engine-2084-destructuring-primitive-sources.ts:11:18 - error SC1090: Function.prototype.call on a function whose signature cannot cross the checked-value boundary (call 'toFixed(...)' directly) is not supported yet + + 10 | let { toFixed } = 1; + 11 | console.log(`${toFixed.call(2.5, 1)}`); + | ^~~~~~~~~~~~~~~~~~~~ + 12 | } + +retired-engine-2084-destructuring-primitive-sources.ts:18:9 - error SC2011: destructuring on 'any'-typed values cannot compile statically + + 17 | try { + 18 | const { anything } = null as any; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ + 19 | } catch (e) { console.log("null throws"); } + + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-2086-destructuring-island-globals.ts.txt b/tests/harness/__snapshots__/retired-engine-2086-destructuring-island-globals.ts.txt new file mode 100644 index 000000000..8d344ba82 --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-2086-destructuring-island-globals.ts.txt @@ -0,0 +1,17 @@ +retired-engine-2086-destructuring-island-globals.ts:6:12 - error SC2010: destructuring 'number' values through JavaScript wrapper coercion cannot compile statically + + 5 | // stays a handle) — a func-typed slot could never take the engine value. + 6 | export let { toString } = 1; + | ^~~~~~~~~~~~~~~~ + 7 | export const { toFixed } = 2.5; + + hint: scriptc compiles program code to native instructions; runtime JavaScript evaluation is unsupported + +retired-engine-2086-destructuring-island-globals.ts:7:14 - error SC2010: destructuring 'number' values through JavaScript wrapper coercion cannot compile statically + + 6 | export let { toString } = 1; + 7 | export const { toFixed } = 2.5; + | ^~~~~~~~~~~~~~~~~ + 8 | console.log(`${typeof toString} ${typeof toFixed}`); + + hint: scriptc compiles program code to native instructions; runtime JavaScript evaluation is unsupported \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-2103-optional-tuple-elements.ts.txt b/tests/harness/__snapshots__/retired-engine-2103-optional-tuple-elements.ts.txt new file mode 100644 index 000000000..4d3dd52c3 --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-2103-optional-tuple-elements.ts.txt @@ -0,0 +1,115 @@ +retired-engine-2103-optional-tuple-elements.ts:10:13 - error SC2009: values of type '[(string | undefined)?, (number | undefined)?] | undefined' cannot be compiled: the union shape is supported, but its arm '[(string | undefined)?, (number | undefined)?]' does not compile + + 9 | // with the dynamic-family story (SC2011) instead of the recitation. + 10 | function f2(options?: [string?, number?]) { + | ^~~~~~~ + 11 | let [str, num] = options || []; + + hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown') + +retired-engine-2103-optional-tuple-elements.ts:16:1 - error SC2004: uses of 'f2' inherit the blocker on its declaration + + 15 | } + 16 | f2(); + | ^~ + 17 | f2(["a"]); + + hint: the declaration of 'f2' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2103-optional-tuple-elements.ts:17:1 - error SC2004: uses of 'f2' inherit the blocker on its declaration + + 16 | f2(); + 17 | f2(["a"]); + | ^~ + 18 | f2(["a", 1]); + + hint: the declaration of 'f2' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2103-optional-tuple-elements.ts:18:1 - error SC2004: uses of 'f2' inherit the blocker on its declaration + + 17 | f2(["a"]); + 18 | f2(["a", 1]); + | ^~ + 19 | f2([]); + + hint: the declaration of 'f2' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2103-optional-tuple-elements.ts:19:1 - error SC2004: uses of 'f2' inherit the blocker on its declaration + + 18 | f2(["a", 1]); + 19 | f2([]); + | ^~ + 20 | const t: [string?, number?] = ["x"]; + + hint: the declaration of 'f2' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2103-optional-tuple-elements.ts:20:7 - error SC2001: values of type '[(string | undefined)?, (number | undefined)?]' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') + + 19 | f2([]); + 20 | const t: [string?, number?] = ["x"]; + | ^ + 21 | console.log(t.length, `${t[0]} ${t[1]}`); + +retired-engine-2103-optional-tuple-elements.ts:21:13 - error SC2004: uses of 't' inherit the blocker on its declaration + + 20 | const t: [string?, number?] = ["x"]; + 21 | console.log(t.length, `${t[0]} ${t[1]}`); + | ^~~~~~~~ + 22 | const full: [string?, number?] = ["y", 7]; + + hint: the declaration of 't' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2103-optional-tuple-elements.ts:22:7 - error SC2001: values of type '[(string | undefined)?, (number | undefined)?]' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') + + 21 | console.log(t.length, `${t[0]} ${t[1]}`); + 22 | const full: [string?, number?] = ["y", 7]; + | ^~~~ + 23 | console.log(full.length, `${full[0]} ${full[1]}`); + +retired-engine-2103-optional-tuple-elements.ts:23:13 - error SC2004: uses of 'full' inherit the blocker on its declaration + + 22 | const full: [string?, number?] = ["y", 7]; + 23 | console.log(full.length, `${full[0]} ${full[1]}`); + | ^~~~~~~~~~~ + 24 | const none: [string?, number?] = []; + + hint: the declaration of 'full' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2103-optional-tuple-elements.ts:24:7 - error SC2001: values of type '[(string | undefined)?, (number | undefined)?]' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') + + 23 | console.log(full.length, `${full[0]} ${full[1]}`); + 24 | const none: [string?, number?] = []; + | ^~~~ + 25 | console.log(none.length); + +retired-engine-2103-optional-tuple-elements.ts:24:34 - error SC2001: values of type '[(string | undefined)?, (number | undefined)?]' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') + + 23 | console.log(full.length, `${full[0]} ${full[1]}`); + 24 | const none: [string?, number?] = []; + | ^~ + 25 | console.log(none.length); + +retired-engine-2103-optional-tuple-elements.ts:25:13 - error SC2004: uses of 'none' inherit the blocker on its declaration + + 24 | const none: [string?, number?] = []; + 25 | console.log(none.length); + | ^~~~~~~~~~~ + 26 | // A rest-element tuple rides the same island representation. + + hint: the declaration of 'none' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2103-optional-tuple-elements.ts:27:7 - error SC2001: values of type '[string, ...number[]]' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') + + 26 | // A rest-element tuple rides the same island representation. + 27 | const r: [string, ...number[]] = ["head", 1, 2, 3]; + | ^ + 28 | console.log(r.length, `${r[0]} ${r[1]} ${r[3]}`); + +retired-engine-2103-optional-tuple-elements.ts:28:13 - error SC2004: uses of 'r' inherit the blocker on its declaration + + 27 | const r: [string, ...number[]] = ["head", 1, 2, 3]; + 28 | console.log(r.length, `${r[0]} ${r[1]} ${r[3]}`); + | ^~~~~~~~ + 29 | + + hint: the declaration of 'r' did not compile — fix the diagnostic reported there and these sites clear with it \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-2104-computed-key-destructuring.ts.txt b/tests/harness/__snapshots__/retired-engine-2104-computed-key-destructuring.ts.txt new file mode 100644 index 000000000..b41cd4d10 --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-2104-computed-key-destructuring.ts.txt @@ -0,0 +1,81 @@ +retired-engine-2104-computed-key-destructuring.ts:12:9 - error SC2011: destructuring on 'any'-typed values cannot compile statically + + 11 | function pick(key: string) { + 12 | const { [key]: got } = src; + | ^~~~~~~~~~~~~~~~~~~~ + 13 | return got; + + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') + +retired-engine-2104-computed-key-destructuring.ts:13:10 - error SC2004: uses of 'got' inherit the blocker on its declaration + + 12 | const { [key]: got } = src; + 13 | return got; + | ^~~ + 14 | } + + hint: the declaration of 'got' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2104-computed-key-destructuring.ts:17:9 - error SC2011: destructuring on 'any'-typed values cannot compile statically + + 16 | function pick2(key: string) { + 17 | const { [key]: got = "dflt" } = src; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 18 | return got; + + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') + +retired-engine-2104-computed-key-destructuring.ts:18:10 - error SC2004: uses of 'got' inherit the blocker on its declaration + + 17 | const { [key]: got = "dflt" } = src; + 18 | return got; + | ^~~ + 19 | } + + hint: the declaration of 'got' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2104-computed-key-destructuring.ts:23:7 - error SC2011: destructuring on 'any'-typed values cannot compile statically + + 22 | const key2 = "y"; + 23 | const { x: sx, [key2]: sy } = src; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ + 24 | console.log(`${sx} ${sy}`); + + hint: use a supported typed operation, or 'unknown' with a checked cast ('x as T') + +retired-engine-2104-computed-key-destructuring.ts:30:38 - error SC2009: values of type '[any?]' cannot be compiled: the tuple shape is supported, but its element type 'any' does not compile + + 29 | let order = (n: any): any => { traceS += `${n},`; return n; }; + 30 | let [{ [order(1)]: x } = order(0)] = []; + | ^~ + 31 | console.log(traceS); + + hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown') + +retired-engine-2104-computed-key-destructuring.ts:33:8 - error SC1031: destructuring with computed keys that do not fold to one property name is not supported yet + + 32 | traceS = ""; + 33 | let [{ [order(1)]: y } = order(0)] = [{}]; + | ^~~~~~~~~~~~~ + 34 | console.log(traceS); + +retired-engine-2104-computed-key-destructuring.ts:36:7 - error SC1031: destructuring with computed keys that do not fold to one property name is not supported yet + + 35 | traceS = ""; + 36 | let { [order(0)]: { [order(2)]: z } = order(1), ...w } = {} as any; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 37 | console.log(traceS); + +retired-engine-2104-computed-key-destructuring.ts:39:8 - error SC1031: rest bindings whose packed type has no static mapping (only plain record types pack) is not supported yet + + 38 | // A default referencing the previous element's fresh rest binding. + 39 | let [{ ...a }, b = a]: any[] = [{ x: 1 }]; + | ^~~~ + 40 | console.log(typeof b, `${(b as any).x}`); + +retired-engine-2104-computed-key-destructuring.ts:45:4 - error SC1031: destructuring assignment with computed keys that do not fold to one property name is not supported yet + + 44 | let asg: any = 0; + 45 | ({ [kk]: asg } = src); + | ^~~~~~~~~ + 46 | console.log(`${asg}`); \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-2251-tagged-templates-dyn.ts.txt b/tests/harness/__snapshots__/retired-engine-2251-tagged-templates-dyn.ts.txt new file mode 100644 index 000000000..8d2f13b3e --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-2251-tagged-templates-dyn.ts.txt @@ -0,0 +1,44 @@ +retired-engine-2251-tagged-templates-dyn.ts:6:15 - error SC2009: values of type 'any[]' cannot be compiled: the array shape is supported, but its element type 'any' does not compile + + 5 | // non-function tag throws Node's catchable TypeError). + 6 | function f(...args: any[]): string { + | ^~~~ + 7 | return args.length > 1 + + hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown') + +retired-engine-2251-tagged-templates-dyn.ts:11:13 - error SC2004: uses of 'f' inherit the blocker on its declaration + + 10 | } + 11 | console.log(f`a${1}b${2}c`); + | ^ + 12 | console.log(f`plain`); + + hint: the declaration of 'f' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2251-tagged-templates-dyn.ts:12:13 - error SC2004: uses of 'f' inherit the blocker on its declaration + + 11 | console.log(f`a${1}b${2}c`); + 12 | console.log(f`plain`); + | ^ + 13 | + + hint: the declaration of 'f' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-2251-tagged-templates-dyn.ts:14:29 - error SC2009: values of type 'any[]' cannot be compiled: the array shape is supported, but its element type 'any' does not compile + + 13 | + 14 | function declare(x: any, ...ys: any[]): string { + | ^~ + 15 | return `${String(x)}|${ys.length}`; + + hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown') + +retired-engine-2251-tagged-templates-dyn.ts:17:13 - error SC2004: uses of 'declare' inherit the blocker on its declaration + + 16 | } + 17 | console.log(declare`Hello ${0} world!`); + | ^~~~~~~ + 18 | + + hint: the declaration of 'declare' did not compile — fix the diagnostic reported there and these sites clear with it \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-2513-dyn-evolving-array-derived.ts.txt b/tests/harness/__snapshots__/retired-engine-2513-dyn-evolving-array-derived.ts.txt new file mode 100644 index 000000000..1de57bc5f --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-2513-dyn-evolving-array-derived.ts.txt @@ -0,0 +1,20 @@ +retired-engine-2513-dyn-evolving-array-derived.ts:19:12 - error SC1090: '() => number' values where 'number' is expected is not supported yet + + 18 | const cbs = []; + 19 | cbs.push(() => limit); + | ^~~~~~~~~~~ + 20 | cbs.push(() => limit * 2); + +retired-engine-2513-dyn-evolving-array-derived.ts:20:12 - error SC1090: '() => number' values where 'number' is expected is not supported yet + + 19 | cbs.push(() => limit); + 20 | cbs.push(() => limit * 2); + | ^~~~~~~~~~~~~~~ + 21 | const kept = cbs.filter(fn => fn() > limit); + +retired-engine-2513-dyn-evolving-array-derived.ts:21:33 - error SC2001: values of type 'number' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') + + 20 | cbs.push(() => limit * 2); + 21 | const kept = cbs.filter(fn => fn() > limit); + | ^~ + 22 | return kept.map(fn => fn()); \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-2667-array-to-sorted-any.ts.txt b/tests/harness/__snapshots__/retired-engine-2667-array-to-sorted-any.ts.txt new file mode 100644 index 000000000..83897a027 --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-2667-array-to-sorted-any.ts.txt @@ -0,0 +1,8 @@ +retired-engine-2667-array-to-sorted-any.ts:6:16 - error SC2020: 'any[].toSorted' is part of the standard library types but has no scriptc lowering yet + + 5 | let calls = 0; + 6 | const sorted = source.toSorted((a: any, b: any) => { + | ^~~~~~~~~~~~~~~ + 7 | calls++; + + hint: the type checker sees the full standard library, but only the supported surface compiles (https://scriptc.dev/limitations) \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-2790-array-missing-tagged-substitutions.ts.txt b/tests/harness/__snapshots__/retired-engine-2790-array-missing-tagged-substitutions.ts.txt new file mode 100644 index 000000000..6f03a0bfc --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-2790-array-missing-tagged-substitutions.ts.txt @@ -0,0 +1,17 @@ +retired-engine-2790-array-missing-tagged-substitutions.ts:11:25 - error SC2009: values of type 'any[]' cannot be compiled: the array shape is supported, but its element type 'any' does not compile + + 10 | + 11 | function dynamicRest(...args: any[]): string { + | ^~~~ + 12 | return `${args.length}:${String(args[1])}`; + + hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown') + +retired-engine-2790-array-missing-tagged-substitutions.ts:14:13 - error SC2004: uses of 'dynamicRest' inherit the blocker on its declaration + + 13 | } + 14 | console.log(dynamicRest`a${values[9]}b`); + | ^~~~~~~~~~~ + 15 | + + hint: the declaration of 'dynamicRest' did not compile — fix the diagnostic reported there and these sites clear with it \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-760-any-arithmetic.ts.txt b/tests/harness/__snapshots__/retired-engine-760-any-arithmetic.ts.txt new file mode 100644 index 000000000..0acd30cf9 --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-760-any-arithmetic.ts.txt @@ -0,0 +1,6 @@ +retired-engine-760-any-arithmetic.ts:8:67 - error SC1043: comparing non-number, non-string values are not supported yet + + 7 | const coerced: any = "10"; + 8 | console.log(`${coerced * 2}`, `${coerced + 5}`, `${+coerced}`, `${-coerced}`); + | ^~~~~~~~ + 9 | const nan: any = 0 / 0; \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-761-any-objects.ts.txt b/tests/harness/__snapshots__/retired-engine-761-any-objects.ts.txt new file mode 100644 index 000000000..008901f2d --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-761-any-objects.ts.txt @@ -0,0 +1,6 @@ +retired-engine-761-any-objects.ts:13:38 - error SC1090: reading 'length' from a value of type 'any' is not supported yet + + 12 | const s: any = "hello world"; + 13 | console.log(`${s.toUpperCase()}`, `${s.split(" ").length}`, `${s.charAt(4)}`); + | ^~~~~~~~~~~~~~~~~~~ + 14 | const num: any = 3.14159; \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-763-any-flow.ts.txt b/tests/harness/__snapshots__/retired-engine-763-any-flow.ts.txt new file mode 100644 index 000000000..3df3e1ef3 --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-763-any-flow.ts.txt @@ -0,0 +1,13 @@ +retired-engine-763-any-flow.ts:15:1 - error SC1043: comparing non-number, non-string values are not supported yet + + 14 | let acc: any = 1; + 15 | acc += 4; + | ^~~~~~~~ + 16 | acc *= 3; + +retired-engine-763-any-flow.ts:16:1 - error SC1043: comparing non-number, non-string values are not supported yet + + 15 | acc += 4; + 16 | acc *= 3; + | ^~~~~~~~ + 17 | console.log(`${acc}`); \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-968-jsval-lift.ts.txt b/tests/harness/__snapshots__/retired-engine-968-jsval-lift.ts.txt new file mode 100644 index 000000000..976b97c2d --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-968-jsval-lift.ts.txt @@ -0,0 +1,116 @@ +retired-engine-968-jsval-lift.ts:12:7 - error SC2009: values of type '{ content: any[]; role: string; }' cannot be compiled: the record shape is supported, but its member 'content' has type 'any[]', which does not compile + + 11 | // A record holding an any[] into an `any` slot: island object literal. + 12 | const msg = { content, role: "user" }; + | ^~~ + 13 | const m: any = msg; + + hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown') + +retired-engine-968-jsval-lift.ts:12:13 - error SC2009: values of type '{ content: any[]; role: string; }' cannot be compiled: the record shape is supported, but its member 'content' has type 'any[]', which does not compile + + 11 | // A record holding an any[] into an `any` slot: island object literal. + 12 | const msg = { content, role: "user" }; + | ^~~~~~~~~~~~~~~~~~~~~~~~~ + 13 | const m: any = msg; + + hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown') + +retired-engine-968-jsval-lift.ts:13:16 - error SC2004: uses of 'msg' inherit the blocker on its declaration + + 12 | const msg = { content, role: "user" }; + 13 | const m: any = msg; + | ^~~ + 14 | console.log(`${m.role}`, `${m.content.length}`, `${m.content[0].text}`); + + hint: the declaration of 'msg' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-968-jsval-lift.ts:14:29 - error SC2004: uses of 'm' inherit the blocker on its declaration + + 13 | const m: any = msg; + 14 | console.log(`${m.role}`, `${m.content.length}`, `${m.content[0].text}`); + | ^~~~~~~~~~~~~~~~ + 15 | + + hint: the declaration of 'm' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-968-jsval-lift.ts:26:7 - error SC2009: values of type '{ content: any[]; role: string; }[]' cannot be compiled: the array shape is supported, but its element type '{ content: any[]; role: string; }' does not compile + + 25 | // element, the array itself stays static. + 26 | const msgs = [ + | ^~~~ + 27 | { content, role: "user" }, + + hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown') + +retired-engine-968-jsval-lift.ts:26:14 - error SC2009: values of type '{ content: any[]; role: string; }[]' cannot be compiled: the array shape is supported, but its element type '{ content: any[]; role: string; }' does not compile + + 25 | // element, the array itself stays static. + 26 | const msgs = [ + | ^ + 27 | { content, role: "user" }, + + hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown') + +retired-engine-968-jsval-lift.ts:30:24 - error SC2004: uses of 'msgs' inherit the blocker on its declaration + + 29 | ]; + 30 | const handles: any[] = msgs; + | ^~~~ + 31 | console.log(handles.length); + + hint: the declaration of 'msgs' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-968-jsval-lift.ts:36:15 - error SC2009: values of type 'P' cannot be compiled: the union shape is supported, but its arm 'any[]' does not compile + + 35 | type P = any[] | string; + 36 | function take(p: P): string { + | ^ + 37 | return "took"; + + hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown') + +retired-engine-968-jsval-lift.ts:39:13 - error SC2004: uses of 'take' inherit the blocker on its declaration + + 38 | } + 39 | console.log(take(msgs), take("plain")); + | ^~~~ + 40 | + + hint: the declaration of 'take' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-968-jsval-lift.ts:55:20 - error SC2011: values of type 'any' have no native representation at this site + + 54 | for (let i = 0; i < 2000; i = i + 1) { + 55 | const row: any = { content: content, n: i }; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ + 56 | if (`${row.n}` === `${i}`) { + + hint: use a supported typed value, or 'unknown' with a checked cast ('x as T') + +retired-engine-968-jsval-lift.ts:56:10 - error SC2004: uses of 'row' inherit the blocker on its declaration + + 55 | const row: any = { content: content, n: i }; + 56 | if (`${row.n}` === `${i}`) { + | ^~~~~ + 57 | acc = acc + 1; + + hint: the declaration of 'row' did not compile — fix the diagnostic reported there and these sites clear with it + +retired-engine-968-jsval-lift.ts:59:23 - error SC2009: values of type 'any[]' cannot be compiled: the array shape is supported, but its element type 'any' does not compile + + 58 | } + 59 | const rows: any[] = [{ content: content, role: `r${i}` }]; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 60 | if (rows.length === 1) { + + hint: the outer shape is supported — the named component is the blocker; restate it inside the compilable set (number, string, boolean, arrays, Maps, Sets, RegExp, functions, classes, records, unions of those, and 'unknown') + +retired-engine-968-jsval-lift.ts:60:7 - error SC2004: uses of 'rows' inherit the blocker on its declaration + + 59 | const rows: any[] = [{ content: content, role: `r${i}` }]; + 60 | if (rows.length === 1) { + | ^~~~ + 61 | acc = acc + 1; + + hint: the declaration of 'rows' did not compile — fix the diagnostic reported there and these sites clear with it \ No newline at end of file diff --git a/tests/harness/__snapshots__/retired-engine-import-refusal/main.ts.txt b/tests/harness/__snapshots__/retired-engine-import-refusal/main.ts.txt new file mode 100644 index 000000000..201da9a0d --- /dev/null +++ b/tests/harness/__snapshots__/retired-engine-import-refusal/main.ts.txt @@ -0,0 +1,8 @@ +retired-engine-import-refusal/main.ts:3:1 - error SC2013: cannot compile npm package 'brokenrt' statically: no runtime JS entry resolves + + 2 | // missing implementation during the build, before evaluating the program. + 3 | import { x } from "brokenrt"; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 4 | console.log("never"); + + hint: use a dependency with supported source, or replace the unsupported operation; scriptc has no interpreter fallback \ No newline at end of file diff --git a/tests/harness/__snapshots__/tuples.ts.txt b/tests/harness/__snapshots__/tuples.ts.txt index c4a0fe568..6b43432fe 100644 --- a/tests/harness/__snapshots__/tuples.ts.txt +++ b/tests/harness/__snapshots__/tuples.ts.txt @@ -12,24 +12,20 @@ tuples.ts:12:6 - error SC1090: tuple indexing with a non-literal index (tuples a | ^ 13 | -tuples.ts:15:7 - error SC2011: values of type '[string, (number | undefined)?]' have no static representation but run in the embedded dynamic engine, which this build does not include +tuples.ts:15:7 - error SC2001: values of type '[string, (number | undefined)?]' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') 14 | // Optional and rest elements have no fixed arity/shape. 15 | const opt: [string, number?] = ["x"]; | ^~~ 16 | const rest: [string, ...number[]] = ["y", 1, 2]; - hint: build with --dynamic to run these values in the embedded engine (adds ~620KB to the binary), or restate the type inside the static surface (https://scriptc.dev/limitations describes the boundary) - -tuples.ts:16:7 - error SC2011: values of type '[string, ...number[]]' have no static representation but run in the embedded dynamic engine, which this build does not include +tuples.ts:16:7 - error SC2001: values of type '[string, ...number[]]' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') 15 | const opt: [string, number?] = ["x"]; 16 | const rest: [string, ...number[]] = ["y", 1, 2]; | ^~~~ 17 | - hint: build with --dynamic to run these values in the embedded engine (adds ~620KB to the binary), or restate the type inside the static surface (https://scriptc.dev/limitations describes the boundary) - tuples.ts:25:15 - error SC1090: spreading a variable-length value into a fixed tuple literal is not supported yet 24 | // An array's runtime length cannot determine a fixed tuple's positions. diff --git a/tests/harness/__snapshots__/union-clone-override-width.ts.txt b/tests/harness/__snapshots__/union-clone-override-width.ts.txt index 30d6e1883..6b5cc3566 100644 --- a/tests/harness/__snapshots__/union-clone-override-width.ts.txt +++ b/tests/harness/__snapshots__/union-clone-override-width.ts.txt @@ -1,8 +1,6 @@ -union-clone-override-width.ts:8:18 - error SC2011: values of type '{ kind: "left"; left: number; payload: WiderPayload; } | { kind: "right"; right: number; payload: WiderPayload; }' have no static representation but run in the embedded dynamic engine, which this build does not include +union-clone-override-width.ts:8:18 - error SC2001: values of type '{ kind: "left"; left: number; payload: WiderPayload; } | { kind: "right"; right: number; payload: WiderPayload; }' cannot be compiled yet (supported: number, string, boolean, arrays, Maps, Sets, RegExp, read-only Date values, functions, classes, records, unions of those, and 'unknown') 7 | // copy its record. The inferred spread result keeps the wider payload. 8 | const result = { ...source, payload }; | ^~~~~~~~~~~~~~~~~~~~~~ - 9 | return result.payload.extra; - - hint: build with --dynamic to run these values in the embedded engine (adds ~620KB to the binary), or restate the type inside the static surface (https://scriptc.dev/limitations describes the boundary) \ No newline at end of file + 9 | return result.payload.extra; \ No newline at end of file diff --git a/tests/harness/coverage.test.ts b/tests/harness/coverage.test.ts index ab62c34fa..b2ec11199 100644 --- a/tests/harness/coverage.test.ts +++ b/tests/harness/coverage.test.ts @@ -9,8 +9,8 @@ import { shardSelect, shardSuffix } from "./shard.js"; const repoRoot = join(import.meta.dirname, "../.."); const fixture = (name: string) => join(repoRoot, "tests/coverage-fixtures", name); -function report(path: string, opts: { dynamic?: boolean } = {}): string { - const { coverage } = analyze(path, opts); +function report(path: string): string { + const { coverage } = analyze(path); return renderCoverage( { ...coverage, file: coverage.file.replace(repoRoot + "/", "") }, { root: repoRoot }, @@ -21,24 +21,13 @@ test("mixed program: percentage and grouped blockers", async () => { await expect(report(fixture("mixed.ts"))).toMatchFileSnapshot("__snapshots__/coverage-mixed.txt"); }); -test("dynamic-capable blockers split from static rejections", async () => { - // SC2010/SC2011/SC2012 sites group under "runs with --dynamic"; +test("unsupported operations appear as native compilation blockers", async () => { // constructs no flag fixes stay under "blockers". await expect(report(fixture("dynamic-mix.ts"))).toMatchFileSnapshot( "__snapshots__/coverage-dynamic-mix.txt", ); }); -test("--dynamic analysis: island sites count as compiled-dynamically", async () => { - // The same fixture analyzed as a --dynamic build: the island-capable - // sites LOWER (splitting out of "compile statically" into "compile - // dynamically") and only the flag-independent rejections remain - // blockers — this report is the "distance to a working build" view. - await expect(report(fixture("dynamic-mix.ts"), { dynamic: true })).toMatchFileSnapshot( - "__snapshots__/coverage-dynamic-mix-dynamic.txt", - ); -}); - test("unreached blockers report in their own group", async () => { // Bodies nothing on the entry path reaches lower only for analysis: // their blockers render dim, under "in unreached code" — and the same @@ -124,14 +113,8 @@ test("TypeScript errors caused by scriptc's type world say so", () => { test("coercing parseFloat and Number.parse* calls name their argument condition", () => { const { coverage } = analyze(fixture("parse-coercions.ts")); expect(coverage.diagnostics.map((d) => [d.code, d.message])).toEqual([ - [ - "SC2012", - "'parseFloat' with a 'boolean' argument (only a string argument compiles statically) runs in the embedded dynamic engine, which this build does not include", - ], - [ - "SC2012", - "'Number.parseInt' with a 'number' argument (only a string argument compiles statically) runs in the embedded dynamic engine, which this build does not include", - ], + ["SC2012", "'parseFloat' with a 'boolean' argument cannot compile statically"], + ["SC2012", "'Number.parseInt' with a 'number' argument cannot compile statically"], ]); for (const d of coverage.diagnostics) expect(d.hint).toContain("convert the argument explicitly"); }); @@ -247,12 +230,11 @@ test("fully static JavaScript program reports 100%", () => { test.each(["3062-runtime-optional-record-guards.ts", "3063-runtime-optional-class-guards.ts"])( "runtime-optional guard receivers stay static: %s", (name) => { - for (const dynamic of [false, true]) { - const { coverage } = analyze(join(repoRoot, "tests/corpus", name), { dynamic }); + { + const { coverage } = analyze(join(repoRoot, "tests/corpus", name), {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); } }, ); @@ -274,10 +256,10 @@ test("module stream aliases remain static in separately declared functions", () }); test("runtime-optional refined unions report blockers without crashing", () => { - for (const dynamic of [false, true]) { + { const { coverage } = analyze( join(repoRoot, "tests/diagnostics/runtime-optional-refined-union.ts"), - { dynamic }, + {}, ); expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics.map((d) => d.code)).toEqual(["SC1090"]); @@ -299,15 +281,12 @@ test("settled generic rest-order fences count each source statement once", () => expect(coverage.stats.statementsFailed).toBe(2); }); -test("inferred JavaScript stays static with or without the island enabled", async () => { +test("inferred JavaScript compiles natively", async () => { // The js-gap fixture turns noImplicitAny off. Its inferred parameter // uses checked native values alongside the JSDoc-typed neighbor. await expect(report(fixture("js-gap/gap.js"))).toMatchFileSnapshot( "__snapshots__/coverage-js-gap.txt", ); - await expect(report(fixture("js-gap/gap.js"), { dynamic: true })).toMatchFileSnapshot( - "__snapshots__/coverage-js-gap-dynamic.txt", - ); }); test("JavaScript builtin aliases keep their deferred value fence", async () => { @@ -316,48 +295,21 @@ test("JavaScript builtin aliases keep their deferred value fence", async () => { ); }); -test("any-typed checked-dynamic operators compile in both tiers", () => { +test("any-typed checked-dynamic operators compile natively", () => { const file = join(repoRoot, "tests/corpus/2856-dynamic-any-local-operators.ts"); const staticCoverage = analyze(file).coverage; expect(staticCoverage.diagnostics).toEqual([]); expect(staticCoverage.stats.statementsFailed).toBe(0); - expect(staticCoverage.stats.statementsIsland).toBe(0); - - const dynamicCoverage = analyze(file, { dynamic: true }).coverage; - expect(dynamicCoverage.diagnostics).toEqual([]); - expect(dynamicCoverage.stats.statementsFailed).toBe(0); - expect(dynamicCoverage.stats.statementsIsland).toBeGreaterThan(0); }); -test("npm package sites attribute per package", async () => { +test("npm packages compile by default", async () => { // Every site of a package-declared value groups into one SC2013 line // naming the package ("values from the 'mathkit' package ..."), inside - // the "runs with --dynamic" group — reusing the diagnostics fixture so + // the two views of the same program stay in sync. - await expect(report(join(repoRoot, "tests/diagnostics/npm-imports/main.ts"))).toMatchFileSnapshot( - "__snapshots__/coverage-npm-packages.txt", - ); -}); - -test("lazy edges inventory: unresolvable require()/import() targets mark as lazy traps", async () => { - // The lazy-traps npm fixture builds (Node's per-kind edge semantics: - // require fails at the call, import() at evaluation) — the coverage - // table lists every blocked-but-lazy specifier with the lazy-trap - // marker instead of reporting SC2030 blockers. await expect( - report(join(repoRoot, "tests/fixtures/npm/cases/lazy-traps/main.ts"), { dynamic: true }), - ).toMatchFileSnapshot("__snapshots__/coverage-npm-lazy-traps.txt"); -}); - -test("lazy builtin edges mark in the builtins table, __require sites included", async () => { - // The esbuild-require fixture routes external requires through the - // bundle's __require helper — its literal call sites collect as require - // edges, so the builtins table lists node:os/node:tty (shimmed) and - // node:stream as a lazy trap (unshimmed, reached only by the - // never-called require) without failing the build. - await expect( - report(join(repoRoot, "tests/fixtures/npm/cases/esbuild-require/main.ts"), { dynamic: true }), - ).toMatchFileSnapshot("__snapshots__/coverage-npm-lazy-builtin.txt"); + report(join(repoRoot, "tests/corpus/native-npm-imports/main.ts")), + ).toMatchFileSnapshot("__snapshots__/coverage-npm-packages.txt"); }); test("import fences no longer stop analysis: percentage plus module blockers", async () => { @@ -413,15 +365,13 @@ test("external declaration barrels leave type-only local code fully analyzable", expect(coverage.stats.statementsFailed).toBe(0); }); -test("external host mappings fence dynamic imports even with the island enabled", () => { +test("external host mappings fence dynamic imports", () => { const root = fixture("external-types"); const { coverage } = analyze(join(root, "dynamic.ts"), { - dynamic: true, externalTypes: { "@native-sdk/core": join(root, "native-sdk-core.d.ts") }, }); expect(coverage.preflightFailed).toBe(false); expect(coverage.stats.statementsFailed).toBeGreaterThan(0); - expect(coverage.stats.statementsIsland).toBe(0); expect( coverage.diagnostics.some( (d) => @@ -497,7 +447,7 @@ test("external host mappings take precedence over overlapping npm-static package expect(coverage.npmStatic).toEqual([ { package: "slash", - status: "fallback", + status: "refused", detail: 'mapped as an external host module by --external-types ("slash")', }, ]); @@ -605,7 +555,7 @@ test("a cycle whose top level calls a builtin with a builtin function value is a test(`every corpus program is 100% static (corpus and coverage agree${shardSuffix()})`, async () => { // The differential corpus compiles by definition; coverage must agree. - // `// @dynamic` programs compile under --dynamic, so analyze them that way. + // The sweep runs minutes on slow machines and each analyze() blocks the // worker thread — without the periodic yield, vitest's worker RPC starves // ("Timeout calling onTaskUpdate") even while every check passes, and the @@ -624,7 +574,7 @@ test(`every corpus program is 100% static (corpus and coverage agree${shardSuffi // (the deferred-fence corpus) — it still passes the differential // oracle because the fences never execute. const deferred = /^\/\/ @deferred-fences:\s*(\d+)\s*$/.exec(firstLine); - const { coverage } = analyze(file, { dynamic: /^\/\/ @dynamic\s*$/.test(firstLine) }); + const { coverage } = analyze(file, {}); expect.soft(coverage.diagnostics, file).toEqual([]); // Corpus programs match Node by definition: a divergence warning on one // is a false positive. diff --git a/tests/harness/diagnostics.test.ts b/tests/harness/diagnostics.test.ts index ff02405a0..57ac8c6c0 100644 --- a/tests/harness/diagnostics.test.ts +++ b/tests/harness/diagnostics.test.ts @@ -3,7 +3,7 @@ * must FAIL to compile, and the full rendered output (codes, spans, code * frames, hints) is snapshotted. */ -import { globSync, readFileSync } from "node:fs"; +import { globSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { describe, expect, test } from "vitest"; @@ -29,15 +29,11 @@ describe(`diagnostics corpus (${files.length} programs)`, () => { tmpdir(), `scriptc-diag-${process.env["SCRIPTC_SAN"] === "1" ? "san" : "plain"}`, ); - // `// @dynamic` on the entry's FIRST line: compile with the island - // engine embedded — for diagnostics only --dynamic builds can reach - // (dynamic-import resolution failures, island-only fences). - const dynamic = /^\/\/ @dynamic\s*$/.test(readFileSync(file, "utf8").split("\n", 1)[0] ?? ""); // Deliberately NO backend pin: every program here must fail before // any backend runs (that is the suite's contract), so the default // lane is irrelevant by construction — and riding it proves the // fallback machinery never turns a diagnostic into a build. - const result = await compile(file, { outPath: join(outDir, "never"), outDir, dynamic }); + const result = await compile(file, { outPath: join(outDir, "never"), outDir }); if (result.ok) { expect.unreachable(`${name} compiled successfully but must produce diagnostics`); } diff --git a/tests/harness/differential.test.ts b/tests/harness/differential.test.ts index 3f0adbc24..7a3b37be4 100644 --- a/tests/harness/differential.test.ts +++ b/tests/harness/differential.test.ts @@ -78,14 +78,6 @@ function expectedExitCode(file: string): number { return 0; } -/** `// @dynamic` in the entry file's directive head: compile with the - * island engine embedded (--dynamic). The Node side needs no flag — the - * island shim (island-shim.mjs) makes __island_eval a global indirect - * eval, so Node stays the oracle for island VALUE results. */ -function wantsDynamic(file: string): boolean { - return directiveHead(file).some((l) => /^\/\/ @dynamic\s*$/.test(l)); -} - /** `// @optimization: speed` in the entry file's directive head (or the * SCRIPTC_TEST_OPTIMIZATION=speed lane): compile with --optimization=speed, * for programs that pin behavior of the size-for-speed code paths. */ @@ -167,9 +159,7 @@ function nodeOracleArgs(file: string): string[] { const nodep = wantsNoDeprecation(file) ? ["--no-deprecation"] : []; // --import makes Node load even a CJS entry through its ESM loader, // changing an entry throw's uncaughtException origin to unhandledRejection. - const shims = directiveHead(file).includes("// @no-node-shims") - ? [] - : ["--import", comptimeShim, "--import", islandShim]; + const shims = directiveHead(file).includes("// @no-node-shims") ? [] : ["--import", comptimeShim]; return [...transform, ...nodep, ...shims, nodeOracleFile(file)]; } @@ -227,10 +217,6 @@ function comparableStderr(stderr: Buffer): Buffer { // globally so Node stays the oracle for comptime programs (the compile-time // result must equal what Node computes at runtime); inert for the rest. const comptimeShim = pathToFileURL(join(import.meta.dirname, "comptime-shim.mjs")).href; -// `__island_eval(code)` in plain JS semantics is a global indirect eval + -// String() — the island shim defines it so Node stays the oracle for island -// programs too; inert for the rest. -const islandShim = pathToFileURL(join(import.meta.dirname, "island-shim.mjs")).href; /** Entry file plus siblings for directory tests — every byte a program run * depends on, shared by the oracle cache key and the compile cache key. @@ -276,7 +262,6 @@ function oracleKeyBase(): Promise { .update("\0") .update(readFileSync(fileURLToPath(comptimeShim))) .update("\0") - .update(readFileSync(fileURLToPath(islandShim))) .update("\0") .update(process.env["SCRIPTC_TEST_ENV"] ?? "") .update("\0") @@ -370,13 +355,11 @@ async function runNode(file: string): Promise { async function compileAndRun(file: string): Promise { // Directory tests hash every sibling file so edits to imports bust the cache. const inputs = programInputs(file); - const dynamic = wantsDynamic(file); const speed = wantsSpeed(file); const hash = createHash("sha256"); for (const f of inputs) hash.update(f).update(readFileSync(f)); const key = hash .update(sanitize ? "san" : "plain") - .update(dynamic ? "dyn" : "") .update(speed ? "speed" : "") .digest("hex") .slice(0, 16); @@ -386,7 +369,6 @@ async function compileAndRun(file: string): Promise { outPath: join(outDir, process.platform === "win32" ? "program.exe" : "program"), outDir, sanitize, - dynamic, backend: "llvm", ...(speed ? { optimization: "speed" as const } : {}), }); diff --git a/tests/harness/dyncheck.test.ts b/tests/harness/dyncheck.test.ts index 0e44786bf..10b5b58de 100644 --- a/tests/harness/dyncheck.test.ts +++ b/tests/harness/dyncheck.test.ts @@ -42,12 +42,11 @@ async function compileAndRun( name: string, source: string, ext: "ts" | "cjs" = "ts", - dynamic = false, + compareNode = false, ): Promise { const key = createHash("sha256") .update(source) .update(sanitize ? "san" : "plain") - .update(dynamic ? "dyn" : "") .digest("hex") .slice(0, 16); const outDir = join(cacheDir, `dyncheck-${key}`); @@ -62,7 +61,6 @@ async function compileAndRun( outDir, sanitize, backend: "llvm", - dynamic, }); if (!result.ok) { throw new Error( @@ -70,14 +68,31 @@ async function compileAndRun( result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n"), ); } - try { - const { stdout, stderr } = await execFileAsync(result.binaryPath, [], { encoding: "utf8" }); - return { stdout, stderr, exitCode: 0 }; - } catch (err) { - const e = err as { code?: unknown; stdout?: string; stderr?: string }; - if (typeof e.code !== "number") throw err; - return { stdout: e.stdout ?? "", stderr: e.stderr ?? "", exitCode: e.code }; + const run = async (executable: string, args: string[]): Promise => { + try { + const { stdout, stderr } = await execFileAsync(executable, args, { encoding: "utf8" }); + return { stdout, stderr, exitCode: 0 }; + } catch (err) { + const e = err as { code?: unknown; stdout?: string; stderr?: string }; + if (typeof e.code !== "number") throw err; + return { stdout: e.stdout ?? "", stderr: e.stderr ?? "", exitCode: e.code }; + } + }; + const actual = await run(result.binaryPath, []); + if (compareNode) { + const expected = await run( + process.execPath, + ext === "ts" ? ["--input-type=module-typescript", "--eval", source] : [file], + ); + const stderr = sanitize + ? actual.stderr.replace( + /^==\d+==WARNING: ASan doesn't fully support makecontext\/swapcontext functions and may produce false positives in some cases!\n/gm, + "", + ) + : actual.stderr; + expect({ ...actual, stderr }).toEqual(expected); } + return actual; } describe(`dynamic-boundary checks (scriptc-only${sanitize ? ", sanitized" : ""})`, () => { @@ -919,28 +934,14 @@ console.log("unreachable", req.url); ); }); - /* ── the jsval→dyn crossing's honesty ladder (SCR_DYN_JSVAL) ──────── - * The armed rows (typeof/truthiness/String()/===, the narrowing tests, - * the identity round trip; the routed-ops lane's keyed read/write, - * calls, method dispatch, Object statics, JSON.stringify) are - * corpus-tested differentially (2578, 2579, 2582-2585, npm - * jsval-into-dyn). These pin the LOUD fences of every dyn walk still - * un-armed over an island-held value — the retired fence box answered - * typeof "function" and .length 0 SILENTLY here; a wrong answer is - * never acceptable, a named refusal is. All --dynamic. */ - - // A JS-lane `any` producer: JSDoc-`any` returns are ISLAND values under - // --dynamic (a bare record literal would infer a typed record and take - // the deep-copy path instead; a local initialized FROM an island value - // also stays island-world by the ratified runtime-world dispatch — the - // crossing needs a real dyn slot: a param, a literal member, a return). - const wrapPreamble = `const eng: any = { a: 1, list: [1, 2, 3] }; -const u: unknown = eng; + // Exercise native checked-value slots through parameters and aliases. + const wrapPreamble = `const value: any = { a: 1, list: [1, 2, 3] }; +const u: unknown = value; `; - test("a keyed read on an island-held unknown routes to the engine (the retired .length fence)", async () => { + test("a keyed read on a native checked value preserves property lookup", async () => { const r = await compileAndRun( - "jsval-key-read", + "checked-key-read", `/** @returns {any} */ function mint() { return { a: 1, list: [1, 2, 3] }; } const eng = mint(); @@ -956,19 +957,14 @@ probe(eng); }); test("the collapsed (string | object)[] slot compiles and the element read routes", async () => { - // Appendix-A repro 4's exit, one lane further along: the union-arm - // SC2009 fence is RETIRED — `(string | object)[]` maps to the - // checked-dynamic representation wholesale (every arm dyn-subsumable), - // the island plugins array WRAPS at the slot (dynFromJsval), and the - // element read rides the routed keyed-read arm: the engine answers, - // the scalar normalizes, and typeof prints Node's answer. + // Every union arm fits the checked-value representation. const r = await compileAndRun( - "jsval-collapsed-union-slot", - `const eng: any = ["p1", { languages: ["js"] }]; + "checked-collapsed-union-slot", + `const value: any = ["p1", { languages: ["js"] }]; function firstPlugin(ps: (string | object)[]): void { console.log(typeof ps[0]); } -firstPlugin(eng); +firstPlugin(value); `, "ts", true, @@ -977,12 +973,9 @@ firstPlugin(eng); expect(r.stdout).toBe("string\n"); }); - test("a method call on an island-held unknown runs the engine's own prototype", async () => { - // scr_dyn_invoke's JSVAL arm routes to scr_jsval_call_method — the - // ENGINE's Array.prototype.slice runs (JS-exact), and the result - // wraps back for further routed reads. + test("a method call on a native checked value uses Array.prototype", async () => { const r = await compileAndRun( - "jsval-method", + "checked-method", `/** @returns {any} */ function mint() { return [{ languages: ["js"] }]; } const eng = mint(); @@ -997,9 +990,9 @@ console.log(\`\${walk(eng).length}\`); expect(r.stdout).toBe("1\n"); }); - test("JSON.stringify of an island-held unknown is the engine's own stringify", async () => { + test("JSON.stringify serializes a native checked value", async () => { const r = await compileAndRun( - "jsval-stringify", + "checked-stringify", wrapPreamble + `console.log(JSON.stringify(u)); `, @@ -1010,25 +1003,23 @@ console.log(\`\${walk(eng).length}\`); expect(r.stdout).toBe('{"a":1,"list":[1,2,3]}\n'); }); - test("structuredClone of an island-held unknown fences loudly", async () => { + test("structuredClone copies a native checked value", async () => { const r = await compileAndRun( - "jsval-clone", + "checked-clone", wrapPreamble + `const c = structuredClone(u); -console.log("unreachable", typeof c); +console.log(JSON.stringify(c), c === u); `, "ts", true, ); - expect(r.exitCode).toBe(1); - expect(r.stderr).toContain( - "structuredClone on an island value held in 'unknown' is not supported yet", - ); + expect(r.exitCode).toBe(0); + expect(r.stdout).toBe('{"a":1,"list":[1,2,3]} false\n'); }); - test("Object.keys over an island-held unknown walks the engine object", async () => { + test("Object.keys walks a native checked value", async () => { const r = await compileAndRun( - "jsval-keys", + "checked-keys", `/** @returns {any} */ function mint() { return { a: 1, b: 2 }; } const eng = mint(); @@ -1043,53 +1034,43 @@ console.log(keys(eng).length, keys(eng).join(",")); expect(r.stdout).toBe("2 a,b\n"); }); - test("deepStrictEqual over island-held values: identity passes, structure fences", async () => { + test("deepStrictEqual compares native checked values by identity and structure", async () => { const r = await compileAndRun( - "jsval-deepeq", + "checked-deepeq", `import assert from "node:assert"; -const eng: any = { a: 1 }; +const value: any = { a: 1 }; const other: any = { a: 1 }; -const u1: unknown = eng; -const u2: unknown = eng; -assert.deepStrictEqual(u1, u2); // the same engine value: honest true +const u1: unknown = value; +const u2: unknown = value; +assert.deepStrictEqual(u1, u2); console.log("identity ok"); const u3: unknown = other; -assert.deepStrictEqual(u1, u3); // distinct values: the structural walk fences -console.log("unreachable"); +assert.deepStrictEqual(u1, u3); +console.log("structure ok"); `, "ts", true, ); - expect(r.exitCode).toBe(1); - expect(r.stdout).toContain("identity ok"); - expect(r.stderr).toContain( - "deepStrictEqual on an island value held in 'unknown' is not supported yet", - ); + expect(r.exitCode).toBe(0); + expect(r.stdout).toBe("identity ok\nstructure ok\n"); }); - test("util.inspect (console.log) of an island-held unknown fences with the engine typeof", async () => { + test("util.inspect formats a native checked value", async () => { const r = await compileAndRun( - "jsval-inspect", + "checked-inspect", wrapPreamble + `console.log(u); `, "ts", true, ); - expect(r.exitCode).toBe(1); - expect(r.stderr).toContain( - "util.inspect of a composite 'any' value (typeof 'object') is not supported yet", - ); + expect(r.exitCode).toBe(0); + expect(r.stdout).toBe("{ a: 1, list: [ 1, 2, 3 ] }\n"); }); - test("destructuring and for-of over an island-held unknown drain the engine's own iterator", async () => { - // The iteration arm (lane dom-jsval-long-tail): dyn.iterPack's JSVAL - // arm drains the ENGINE's iterator protocol — the wrapped engine - // array destructures and iterates with Node's answers, and a - // non-iterable engine value throws V8's for-of spelling instead of - // the retired island fence. + test("destructuring and for-of iterate native checked values", async () => { const r = await compileAndRun( - "jsval-iterate", + "checked-iterate", `/** @returns {any} */ function mint() { return { list: [10, 20], num: 7 }; } const eng = mint(); @@ -1115,11 +1096,9 @@ walk(eng); expect(r.stdout).toBe("first 10\nsum 30\ncaught: bag.num is not iterable\n"); }); - test("a keyed write through an island-held unknown lands on the real engine object", async () => { - // Aliasing preserved: the island-side reader sees the write made - // through the wrapped alias (the retired setting-fence row). + test("a keyed write through a native checked value updates its alias", async () => { const r = await compileAndRun( - "jsval-key-write", + "checked-key-write", `/** @returns {any} */ function mint() { return { a: 1 }; } const eng = mint(); @@ -1135,9 +1114,9 @@ console.log(\`\${eng.a} \${eng.fresh}\`); expect(r.stdout).toBe("2 x\n"); }); - test("'in' over an island-held unknown fences (never a silent false)", async () => { + test("'in' checks native checked-value properties", async () => { const r = await compileAndRun( - "jsval-in", + "checked-in", `/** @returns {any} */ function mint() { return { a: 1 }; } const eng = mint(); @@ -1148,27 +1127,25 @@ console.log(has(eng)); "cjs", true, ); - expect(r.exitCode).toBe(1); - expect(r.stderr).toContain("'in' on an island value held in 'unknown' is not supported yet"); + expect(r.exitCode).toBe(0); + expect(r.stdout).toBe("true\n"); }); - test("a wrapped island value RC-balances through catch-and-continue fences", async () => { - // The fence throws are catchable; the wrapped cell must release - // cleanly through the unwind (the SAN lane's RC audit is the check). - // The crossing rides a real dyn PARAM slot — a local initialized from - // an island value stays island-world by the runtime-world dispatch. + test("a checked value RC-balances through catch-and-continue", async () => { + // The sanitizer lane audits releases while checked values unwind. const r = await compileAndRun( - "jsval-fence-unwind", - `const eng: any = { a: 1 }; + "checked-fence-unwind", + `const value: any = { a: 1 }; let caught = 0; function probe(u: unknown): void { try { - structuredClone(u); + const copy = structuredClone(u); + if (copy !== u) throw new Error("unwind"); } catch (e) { if (e instanceof Error) caught++; } } -for (let i = 0; i < 100; i++) probe(eng); +for (let i = 0; i < 100; i++) probe(value); console.log("done", caught); `, "ts", diff --git a/tests/harness/effect-runner.ts b/tests/harness/effect-runner.ts index d99b64cac..e3ccb2ab5 100644 --- a/tests/harness/effect-runner.ts +++ b/tests/harness/effect-runner.ts @@ -39,7 +39,6 @@ export async function checkEffectFixture( outPath: join(dir, "program"), backend: "llvm", optimization, - dynamic: false, npmStatic, sanitize, }; diff --git a/tests/harness/errors.test.ts b/tests/harness/errors.test.ts index 1b6d69044..4188b20e0 100644 --- a/tests/harness/errors.test.ts +++ b/tests/harness/errors.test.ts @@ -61,16 +61,11 @@ async function compileAndRun( for (const [extraName, text] of Object.entries(extraFiles)) { writeFileSync(join(outDir, extraName), text); } - // `// @dynamic` on the entry's FIRST line embeds the island engine — - // for runtime-fence shapes only mixed dynamic graphs can spell (the - // diagnostics suite's directive, applied to the run-and-observe lane). - const dynamic = /^\/\/ @dynamic\s*$/.test(source.split("\n", 1)[0] ?? ""); const result = await compile(file, { outPath: join(outDir, name), outDir, sanitize, backend: "llvm", - dynamic, }); if (!result.ok) { throw new Error( @@ -668,7 +663,7 @@ export type Other = string; ); }); - test("dynamic islands retain the native ESM link failure", async () => { + test("native compilation retains the ESM link failure", async () => { const r = await compileAndRun( "esm-type-link-dynamic", `// @dynamic @@ -762,18 +757,18 @@ console.log('middle never runs'); }); }); -describe("checked-dynamic/island boundary fences (scriptc-only)", () => { - test("an island-typed argument into a call through 'unknown' runs Node-exactly (the retired SC1101 fence)", async () => { +describe("checked-dynamic boundary behavior (scriptc-only)", () => { + test("a checked argument into a call through 'unknown' matches Node", async () => { // `this` in a plain JS function is the checked-dynamic ambient // receiver; a member CALL through it with an 'any'-typed argument - // used to fence at compile (no jsval→dyn crossing existed — SEMANTICS + // 383(d)'s "one unbridgeable mix"). The crossing exists now // (dynFromJsval, SEMANTICS 394): the argument wraps by reference, the // statement compiles for real, and the unbound-`this` member read // throws Node's OWN TypeError — the divergence this pin used to own // is retired. const r = await compileAndRun( - "island-arg-dyn-call", + "checked-arg-dyn-call", `// @dynamic 'use strict'; function register(item) { diff --git a/tests/harness/fetch-conformance.test.ts b/tests/harness/fetch-conformance.test.ts index efa5992e2..5b6d62f08 100644 --- a/tests/harness/fetch-conformance.test.ts +++ b/tests/harness/fetch-conformance.test.ts @@ -244,7 +244,7 @@ describe("Node 24 fetch compatibility profile", () => { if (entry.status === "static") { expect(entry.code, `${entry.id}: static rows have no refusal code`).toBeUndefined(); expect(entry.reason, `${entry.id}: static rows are explained by evidence`).toBeUndefined(); - } else if (entry.status === "dynamic-only" || entry.status === "unsupported") { + } else if (entry.status === "unsupported") { expect(entry.code, `${entry.id}: non-static rows use the stdlib fence`).toBe("SC2020"); expect(entry.reason?.length, `${entry.id}: missing gap rationale`).toBeGreaterThan(0); } else { @@ -253,7 +253,6 @@ describe("Node 24 fetch compatibility profile", () => { } } - expect(entries.some((entry) => entry.status === "dynamic-only")).toBe(true); expect(entries.some((entry) => entry.status === "unsupported")).toBe(true); expect(entries.some((entry) => entry.status === "out-of-scope")).toBe(true); expect(profile.inventory.excludedInterfaces.length).toBeGreaterThan(0); diff --git a/tests/harness/fetch.test.ts b/tests/harness/fetch.test.ts index a9b5a2907..76d162a03 100644 --- a/tests/harness/fetch.test.ts +++ b/tests/harness/fetch.test.ts @@ -1,24 +1,3 @@ -/* fetch differential: embedded npm code AND user-code fetch (the - * island-backed ambient — the user-fetch case) issue REAL http requests - * against local Node servers (tests/fixtures/fetch/servers.mjs — this file - * runs them in-process; the Linux lane runs the identical routes inside - * its container) — never the network. Each fixture - * program runs under Node AND compiled --dynamic with the server's base - * URL in argv; stdout must match byte-for-byte and exit codes agree. The - * suite covers the enumerated request-time needs of the AI-SDK graph: - * text/json bodies, POST with implicit/explicit content-types, string-chunk - * request streams, header round trips, chunked response streaming consumed - * through the reader protocol, - * SSE through the real eventsource-parser (TextDecoderStream → - * EventSourceParserStream — the exact AI-SDK shape), 404-resolves, - * redirect following, gzip/deflate response decoding, and - * connection-refused rejection (TypeError "fetch failed", Node's - * message). - * - * SCRIPTC_SAN=1 rebuilds with ASan + the RC audit: transfer/socket handle - * hygiene and the island's zero-live-allocations teardown audit run over - * every case. - */ import { execFile } from "node:child_process"; import { createHash } from "node:crypto"; import { globSync, mkdirSync, readFileSync } from "node:fs"; @@ -27,7 +6,7 @@ import { createServer as createHttpsServer } from "node:https"; import { join } from "node:path"; import { promisify } from "node:util"; import { afterAll, beforeAll, describe, expect, test } from "vitest"; -import { compile } from "@scriptc/compiler"; +import { analyze, compile } from "@scriptc/compiler"; // The servers live in the fixture tree (a plain .mjs): the Linux lane runs // the IDENTICAL routes standalone inside its container. // eslint-disable-next-line import/no-relative-packages @@ -63,8 +42,8 @@ beforeAll(async () => { // Every child below inherits POISONED proxy env pointing at the refused // port: Node's fetch ignores http_proxy/https_proxy without the - // NODE_USE_ENV_PROXY=1 opt-in, and the embedded runtime must match - // (libcurl's default is to honor them) — so every case in this file + // NODE_USE_ENV_PROXY=1 opt-in, and the native runtime must match + // — so every case in this file // doubles as the regression test for that parity, and any fixture that // DID consult the env would fail loudly instead of leaving the machine. process.env["http_proxy"] = refusedUrl; @@ -85,6 +64,7 @@ afterAll(async () => { interface RunResult { stdout: Buffer; + stderr: Buffer; exitCode: number; } @@ -92,23 +72,42 @@ async function runBinary( cmd: string, args: string[], env?: NodeJS.ProcessEnv, - timeout?: number, + timeout = 30_000, ): Promise { + // These fixtures intentionally exercise missing listeners, and some JS + // entries rely on Node's module detection. Neither warning is program output. + if (cmd === "node") { + args = [ + "--disable-warning=MODULE_TYPELESS_PACKAGE_JSON", + "--disable-warning=AddEventListenerArgumentTypeWarning", + ...args, + ]; + } try { - const { stdout } = await execFileAsync(cmd, args, { + const { stdout, stderr } = await execFileAsync(cmd, args, { encoding: "buffer", env, timeout, }); - return { stdout, exitCode: 0 }; + return { stdout, stderr, exitCode: 0 }; } catch (err) { - const e = err as { code?: unknown; stdout?: Buffer }; - if (typeof e.code !== "number" || !Buffer.isBuffer(e.stdout)) throw err; - return { stdout: e.stdout, exitCode: e.code }; + const e = err as { code?: unknown; stdout?: Buffer; stderr?: Buffer }; + if (typeof e.code !== "number" || !Buffer.isBuffer(e.stdout) || !Buffer.isBuffer(e.stderr)) + throw err; + return { stdout: e.stdout, stderr: e.stderr, exitCode: e.code }; } } -async function build(entry: string): Promise { +// Keep sanitizer infrastructure noise separate from program stderr. +function expectCleanStderr(native: RunResult, node: RunResult): void { + if (node.exitCode !== 0) return; + const stderr = native.stderr + .toString("utf8") + .replace(/^==\d+==WARNING: ASan doesn't fully support makecontext\/swapcontext.*\n/gm, ""); + expect(stderr).toBe(node.stderr.toString("utf8")); +} + +async function build(entry: string, flavor = ""): Promise { const hash = createHash("sha256"); const inputs = [ entry, @@ -117,6 +116,7 @@ async function build(entry: string): Promise { for (const f of inputs) hash.update(f).update(readFileSync(f)); const key = hash .update(sanitize ? "san" : "plain") + .update(flavor) .digest("hex") .slice(0, 16); const outDir = join(cacheDir, `fetch-${key}`); @@ -125,10 +125,6 @@ async function build(entry: string): Promise { outPath: join(outDir, "program"), outDir, sanitize, - dynamic: true, - // Pinned: real-socket fixtures — the compiled lane stays the C - // reference so a diff is fetch behavior, never a backend-lane change - // (npm.test.ts rides the default and covers the fallback at scale). backend: "llvm", }); if (!result.ok) { @@ -140,50 +136,22 @@ async function build(entry: string): Promise { return result.binaryPath; } -async function buildStatic(entry: string, backend: "llvm", flavor = ""): Promise { - const hash = createHash("sha256"); - const key = hash - .update(entry) - .update(readFileSync(entry)) - .update(`static-${backend}-${sanitize ? "san" : "plain"}-${flavor}`) - .digest("hex") - .slice(0, 16); - const outDir = join(cacheDir, `fetch-${key}`); - mkdirSync(outDir, { recursive: true }); - const result = await compile(entry, { - outPath: join(outDir, "program"), - outDir, - sanitize, - dynamic: false, - backend, - }); - if (!result.ok) { - throw new Error( - "static fetch fixture failed to compile:\n" + - result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n"), - ); - } - return result.binaryPath; -} - const cases = globSync(join(fixturesRoot, "cases/*/main.ts")) .sort() .map((entry) => ({ name: entry.split("/").at(-2)!, entry })); describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { - test.for(["dynamic", "llvm"] as const)( - "RequestInit wrapper spread / %s backend", - async (lane) => { - const entry = join(fixturesRoot, "spread-wrapper/main.mts"); - const binary = lane === "dynamic" ? await build(entry) : await buildStatic(entry, lane); - const [nodeRes, nativeRes] = await Promise.all([ - runBinary("node", [entry, baseUrl]), - runBinary(binary, [baseUrl]), - ]); - expect(nativeRes.stdout).toEqual(nodeRes.stdout); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); - }, - ); + test.for(["llvm"] as const)("RequestInit wrapper spread / %s backend", async () => { + const entry = join(fixturesRoot, "spread-wrapper/main.mts"); + const binary = await build(entry); + const [nodeRes, nativeRes] = await Promise.all([ + runBinary("node", [entry, baseUrl]), + runBinary(binary, [baseUrl]), + ]); + expect(nativeRes.stdout).toEqual(nodeRes.stdout); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); + }); const staticCases = [ "static", @@ -212,36 +180,38 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { : "main.mts" }`, ); - const binary = await buildStatic(entry, backend); + const binary = await build(entry); const redirectKey = `${name}-${backend}`; const [nodeRes, nativeRes] = await Promise.all([ runBinary("node", [entry, baseUrl, `${redirectKey}-node`]), runBinary(binary, [baseUrl, `${redirectKey}-native`]), ]); expect(nativeRes.stdout.toString("utf8")).toBe(nodeRes.stdout.toString("utf8")); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); }, 120_000, ); test.for(["llvm"] as const)( "static fetch / %s backend settles an abandoned compressed response", - async (backend) => { + async () => { const entry = join(fixturesRoot, "static-abandon/main.mts"); - const binary = await buildStatic(entry, backend); + const binary = await build(entry); const [nodeRes, nativeRes] = await Promise.all([ runBinary("node", [entry, baseUrl], undefined, 3_000), runBinary(binary, [baseUrl], undefined, 3_000), ]); expect(nativeRes.stdout.equals(nodeRes.stdout)).toBe(true); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); }, 120_000, ); test.for(["llvm"] as const)( "static fetch / %s backend trusts NODE_EXTRA_CA_CERTS", - async (backend) => { + async () => { const certs = join(fixturesRoot, "../server/certs"); const server = createHttpsServer( { @@ -262,7 +232,7 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { if (address === null || typeof address === "string") throw new Error("missing HTTPS address"); const entry = join(fixturesRoot, "static-network/main.mts"); - const binary = await buildStatic(entry, backend, "https-extra-ca"); + const binary = await build(entry, "https-extra-ca"); const argv = [`https://localhost:${address.port}`]; const env = { ...process.env, @@ -273,7 +243,8 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { runBinary(binary, argv, env), ]); expect(nativeRes.stdout.toString("utf8")).toBe(nodeRes.stdout.toString("utf8")); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); } finally { await new Promise((resolve, reject) => { server.close((error) => (error ? reject(error) : resolve())); @@ -283,7 +254,7 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { 120_000, ); - test("all native fetch lanes snapshot proxy and extra-CA env before user code", async () => { + test("native fetch snapshots proxy and extra-CA env before user code", async () => { const certs = join(fixturesRoot, "../server/certs"); const server = createHttpsServer( { @@ -305,10 +276,7 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { throw new Error("missing HTTPS address"); } const entry = join(fixturesRoot, "static-env-snapshot/main.mts"); - const [dynamic, llvm] = await Promise.all([ - build(entry), - buildStatic(entry, "llvm", "env-snapshot"), - ]); + const binary = await build(entry, "env-snapshot"); const argv = [ `${baseUrl}/text`, proxyUrl, @@ -331,12 +299,12 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { const before = servers.proxiedRequests(); const [nodeRes, ...nativeResults] = await Promise.all([ runBinary("node", [entry, ...argv], env), - runBinary(dynamic, argv, env), - runBinary(llvm, argv, env), + runBinary(binary, argv, env), ]); for (const nativeRes of nativeResults) { expect(nativeRes.stdout.toString("utf8")).toBe(nodeRes.stdout.toString("utf8")); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); } expect(servers.proxiedRequests() - before).toBe(0); } finally { @@ -348,7 +316,7 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { test.for(["llvm"] as const)( "static fetch / %s backend supports IPv6 URL literals and NO_PROXY", - async (backend) => { + async () => { const server = createHttpServer((_request, response) => response.end("ipv6")); await new Promise((resolve, reject) => { server.once("error", reject); @@ -362,7 +330,7 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { if (address === null || typeof address === "string") throw new Error("missing HTTP address"); const entry = join(fixturesRoot, "static-network/main.mts"); - const binary = await buildStatic(entry, backend, "ipv6"); + const binary = await build(entry, "ipv6"); const argv = [`http://[::1]:${address.port}`]; const env = { ...process.env, @@ -378,7 +346,8 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { runBinary(binary, argv, env), ]); expect(nativeRes.stdout.toString("utf8")).toBe(nodeRes.stdout.toString("utf8")); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); expect(servers.proxiedRequests() - before).toBe(0); } finally { await new Promise((resolve, reject) => { @@ -389,7 +358,7 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { 120_000, ); - test("all native fetch lanes block bad ports on initial and redirect hops", async () => { + test("native fetch blocks bad ports on initial and redirect hops", async () => { let blockedRequests = 0; let redirectRequests = 0; let blockedServer: ReturnType | undefined; @@ -448,21 +417,18 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { const redirectUrl = `http://127.0.0.1:${redirectAddress.port}/to-blocked-port`; const entry = join(fixturesRoot, "static-bad-port/main.mts"); - const [dynamic, llvm] = await Promise.all([ - build(entry), - buildStatic(entry, "llvm", "bad-port"), - ]); + const binary = await build(entry, "bad-port"); const argv = [blockedUrl, redirectUrl]; const [nodeRes, ...nativeResults] = await Promise.all([ runBinary("node", [entry, ...argv]), - runBinary(dynamic, argv), - runBinary(llvm, argv), + runBinary(binary, argv), ]); for (const nativeRes of nativeResults) { expect(nativeRes.stdout.equals(nodeRes.stdout)).toBe(true); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); } - expect(redirectRequests).toBe(3); + expect(redirectRequests).toBe(2); expect(blockedRequests).toBe(0); } finally { await Promise.all( @@ -477,53 +443,9 @@ describe(`static fetch differential${sanitize ? " (sanitized)" : ""}`, () => { ); } }, 120_000); - - test("the dynamic curl comparison switch leaves static fetch native", async () => { - const previous = process.env["SCRIPTC_FETCH_CURL"]; - process.env["SCRIPTC_FETCH_CURL"] = "1"; - try { - const entry = join(fixturesRoot, "static/main.mts"); - await buildStatic(entry, "llvm", "curl-env"); - } finally { - if (previous === undefined) { - delete process.env["SCRIPTC_FETCH_CURL"]; - } else { - process.env["SCRIPTC_FETCH_CURL"] = previous; - } - } - }, 120_000); }); describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})`, () => { - test.for(["HTTP_PROXY", "ALL_PROXY"] as const)( - "Vercel EnvProxyDispatcher activates %s without the Node opt-in", - async (proxyVariable) => { - const entry = join(fixturesRoot, "vercel-env-proxy/main.mts"); - const binary = await build(entry); - const env: NodeJS.ProcessEnv = { ...process.env }; - for (const key of [ - "http_proxy", - "HTTP_PROXY", - "https_proxy", - "HTTPS_PROXY", - "all_proxy", - "ALL_PROXY", - "NODE_USE_ENV_PROXY", - ]) { - delete env[key]; - } - env[proxyVariable] = proxyUrl; - env.no_proxy = ""; - env.NO_PROXY = ""; - const before = servers.proxiedRequests(); - const result = await runBinary(binary, [baseUrl], env); - expect(result.stdout.toString("utf8")).toBe("héllo wörld 😀\n"); - expect(result.exitCode).toBe(0); - expect(servers.proxiedRequests() - before).toBe(1); - }, - 120_000, - ); - // The other half of the proxy parity: WITH NODE_USE_ENV_PROXY=1 both // lanes honor http_proxy and route through the local forward proxy — // outputs stay byte-identical AND the proxy sees exactly one relayed @@ -547,7 +469,8 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` runBinary(binary, argv, env), ]); expect(nativeRes.stdout.toString("utf8")).toBe(nodeRes.stdout.toString("utf8")); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); expect(servers.proxiedRequests() - before).toBe(2); expect(servers.proxyAuthorizations().slice(authBefore)).toEqual([ expectedProxyAuthorization, @@ -557,9 +480,9 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` test.for(["llvm"] as const)( "static fetch / %s backend authenticates to http_proxy", - async (backend) => { + async () => { const entry = join(fixturesRoot, "static-proxy/main.mts"); - const binary = await buildStatic(entry, backend, "proxy-optin"); + const binary = await build(entry, "proxy-optin"); const env = { ...process.env, NODE_USE_ENV_PROXY: "1", @@ -575,7 +498,8 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` runBinary(binary, [baseUrl], env), ]); expect(nativeRes.stdout.equals(nodeRes.stdout)).toBe(true); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); expect(servers.proxiedRequests() - before).toBe(2); expect(servers.proxyAuthorizations().slice(authBefore)).toEqual([ expectedProxyAuthorization, @@ -585,12 +509,11 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` 120_000, ); - test.for(["dynamic", "llvm"] as const)( + test.for(["llvm"] as const)( "%s fetch authenticates over an HTTPS proxy transport", - async (lane) => { + async () => { const entry = join(fixturesRoot, "static-proxy/main.mts"); - const binary = - lane === "dynamic" ? await build(entry) : await buildStatic(entry, lane, "proxy-https"); + const binary = await build(entry, "proxy-https"); const env = { ...process.env, NODE_EXTRA_CA_CERTS: join(fixturesRoot, "../server/certs/ca.pem"), @@ -607,7 +530,8 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` runBinary(binary, [baseUrl], env), ]); expect(nativeRes.stdout.equals(nodeRes.stdout)).toBe(true); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); expect(servers.proxiedRequests() - before).toBe(2); expect(servers.proxyAuthorizations().slice(authBefore)).toEqual([ expectedProxyAuthorization, @@ -617,7 +541,7 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` 120_000, ); - test("all native fetch lanes reject an opted-in HTTPS proxy instead of dialing directly", async () => { + test("native fetch rejects an opted-in HTTPS proxy instead of dialing directly", async () => { const certs = join(fixturesRoot, "../server/certs"); let directRequests = 0; const server = createHttpsServer( @@ -643,10 +567,7 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` throw new Error("missing HTTPS address"); } const entry = join(fixturesRoot, "static-network-error/main.mts"); - const [dynamic, llvm] = await Promise.all([ - build(entry), - buildStatic(entry, "llvm", "https-proxy-reject"), - ]); + const binary = await build(entry, "https-proxy-reject"); const argv = [`https://localhost:${address.port}`]; const env = { ...process.env, @@ -659,12 +580,12 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` }; const [nodeRes, ...nativeResults] = await Promise.all([ runBinary("node", [entry, ...argv], env), - runBinary(dynamic, argv, env), - runBinary(llvm, argv, env), + runBinary(binary, argv, env), ]); for (const nativeRes of nativeResults) { expect(nativeRes.stdout.equals(nodeRes.stdout)).toBe(true); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); } expect(directRequests).toBe(0); } finally { @@ -674,12 +595,11 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` } }, 120_000); - test.for(["dynamic", "llvm"] as const)( + test.for(["llvm"] as const)( "%s fetch rejects an invalid opted-in proxy instead of dialing directly", - async (lane) => { + async () => { const entry = join(fixturesRoot, "static-proxy/main.mts"); - const binary = - lane === "dynamic" ? await build(entry) : await buildStatic(entry, lane, "proxy-invalid"); + const binary = await build(entry, "proxy-invalid"); const env = { ...process.env, NODE_USE_ENV_PROXY: "1", @@ -693,13 +613,14 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` runBinary(binary, [baseUrl], env), ]); expect(nativeRes.stdout.equals(nodeRes.stdout)).toBe(true); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); expect(nativeRes.exitCode).not.toBe(0); }, 120_000, ); - test("dynamic fetch honors wildcard no_proxy exclusions", async () => { + test("fetch honors wildcard no_proxy exclusions", async () => { const entry = join(fixturesRoot, "cases/proxy-optin/main.ts"); const binary = await build(entry); const argv = ["http://sub.example.invalid", refusedUrl]; @@ -717,15 +638,16 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` runBinary(binary, argv, env), ]); expect(nativeRes.stdout.toString("utf8")).toBe(nodeRes.stdout.toString("utf8")); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); expect(servers.proxiedRequests() - before).toBe(0); }, 120_000); test.for(["llvm"] as const)( "static fetch / %s backend honors wildcard no_proxy exclusions", - async (backend) => { + async () => { const entry = join(fixturesRoot, "static-network/main.mts"); - const binary = await buildStatic(entry, backend, "proxy-wildcard"); + const binary = await build(entry, "proxy-wildcard"); const argv = ["http://sub.example.invalid/path"]; const env = { ...process.env, @@ -741,7 +663,8 @@ describe(`proxy env opt-in (NODE_USE_ENV_PROXY${sanitize ? ", sanitized" : ""})` runBinary(binary, argv, env), ]); expect(nativeRes.stdout.toString("utf8")).toBe(nodeRes.stdout.toString("utf8")); - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); expect(servers.proxiedRequests() - before).toBe(0); }, 120_000, @@ -766,25 +689,19 @@ describe(`fetch differential (${cases.length} programs${sanitize ? ", sanitized" expect(nativeRes.stdout.toString("utf8")).toBe(nodeRes.stdout.toString("utf8")); expect.unreachable("stdout differed at byte level but not after utf8 decode"); } - expect(nativeRes.exitCode).toBe(nodeRes.exitCode); + expect(nativeRes.exitCode, nativeRes.stderr.toString("utf8")).toBe(nodeRes.exitCode); + expectCleanStderr(nativeRes, nodeRes); }, 120_000, ); }); -test(`dynamic fetch runtime fences computed unsupported RequestInit${sanitize ? " (sanitized)" : ""}`, async () => { - const entry = join(fixturesRoot, "unsupported-init-dynamic/main.mts"); - const binary = await build(entry); - const result = await runBinary(binary, [], { - ...process.env, - NODE_USE_ENV_PROXY: "1", - }); - expect(result.stdout.toString("utf8")).toBe( - "cache TypeError unsupported RequestInit option: cache\n" + - "dispatcher TypeError unsupported RequestInit option: dispatcher\n" + - "env dispatcher string env dispatcher accepted\n" + - "stream from: false 7\n" + - "stream constructor: false\n", +test("custom RequestInit dispatchers are refused without the engine", () => { + const entry = join(fixturesRoot, "vercel-env-proxy/main.mts"); + expect(analyze(entry).coverage.diagnostics).toContainEqual( + expect.objectContaining({ + code: "SC2020", + message: expect.stringContaining("RequestInit option 'dispatcher'"), + }), ); - expect(result.exitCode).toBe(0); -}, 120_000); +}); diff --git a/tests/harness/ffi-callback-pool.test.ts b/tests/harness/ffi-callback-pool.test.ts index 3ef217f74..dce0ef82f 100644 --- a/tests/harness/ffi-callback-pool.test.ts +++ b/tests/harness/ffi-callback-pool.test.ts @@ -48,7 +48,6 @@ describe.each(["llvm"] as const)("static native callback pool, %s", (backend) => ); const result = await compile(entry, { backend, - dynamic: false, sanitize, outDir, outPath: join(outDir, "program"), @@ -88,7 +87,6 @@ describe.each(["llvm"] as const)("static native callback pool, %s", (backend) => ); const result = await compile(join(fixture, "callback-pool.mjs"), { backend, - dynamic: false, sanitize, outDir, outPath: join(outDir, "program"), diff --git a/tests/harness/ffi-catalog.test.ts b/tests/harness/ffi-catalog.test.ts index 3115d1437..048feeacb 100644 --- a/tests/harness/ffi-catalog.test.ts +++ b/tests/harness/ffi-catalog.test.ts @@ -45,7 +45,6 @@ describe.each(["llvm"] as const)("static node:ffi catalog, %s", (backend) => { const entry = join(fixture, "catalog.mjs"); const result = await compile(entry, { backend, - dynamic: false, sanitize, outDir, outPath: join(outDir, "program"), diff --git a/tests/harness/ffi-frameworks.test.ts b/tests/harness/ffi-frameworks.test.ts index 17700b9d5..41745bbf8 100644 --- a/tests/harness/ffi-frameworks.test.ts +++ b/tests/harness/ffi-frameworks.test.ts @@ -28,7 +28,6 @@ describe.skipIf(process.platform !== "darwin").each(["llvm"] as const)( ); const result = await compile(entry, { backend, - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", outDir, outPath: join(outDir, "program"), diff --git a/tests/harness/ffi-memory.test.ts b/tests/harness/ffi-memory.test.ts index a5cd3638b..b1bdf08ce 100644 --- a/tests/harness/ffi-memory.test.ts +++ b/tests/harness/ffi-memory.test.ts @@ -27,7 +27,6 @@ describe.each(["llvm"] as const)("native FFI memory, %s", (backend) => { writeFileSync(entry, readFileSync(fixture, "utf8").replaceAll("require", loader)); const result = await compile(entry, { backend, - dynamic: false, sanitize, outDir, outPath: join(outDir, loader), diff --git a/tests/harness/ffi-scalars.test.ts b/tests/harness/ffi-scalars.test.ts index a0527f3ac..d66022290 100644 --- a/tests/harness/ffi-scalars.test.ts +++ b/tests/harness/ffi-scalars.test.ts @@ -108,7 +108,6 @@ describe.each(["llvm"] as const)("native FFI scalar widths, %s", (backend) => { const entry = join(fixture, "scalars.ts"); const result = await compile(entry, { backend, - dynamic: false, sanitize, outDir, outPath: join(outDir, "program"), diff --git a/tests/harness/ffi-wide.test.ts b/tests/harness/ffi-wide.test.ts index 37f617c39..95248de1e 100644 --- a/tests/harness/ffi-wide.test.ts +++ b/tests/harness/ffi-wide.test.ts @@ -90,7 +90,6 @@ describe.each(["llvm"] as const)("native FFI wide integers and pointers, %s", (b const entry = join(fixture, "wide.ts"); const result = await compile(entry, { backend, - dynamic: false, sanitize, outDir, outPath: join(outDir, "program"), diff --git a/tests/harness/installed-entry.test.ts b/tests/harness/installed-entry.test.ts index 1fa6c9daa..0bf9928a4 100644 --- a/tests/harness/installed-entry.test.ts +++ b/tests/harness/installed-entry.test.ts @@ -40,12 +40,11 @@ test.each([ expect(native.stdout).toBe(oracle.stdout); expect(native.stderr).toBe(oracle.stderr); } - for (const dynamic of [false, true]) { - const { coverage } = analyze(entry, { dynamic }); + { + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); } } finally { rmSync(dir, { recursive: true, force: true }); @@ -56,36 +55,47 @@ test.each([ ["dependency", "package/node_modules/dependency", "dependency"], ["package-extra", "package-extra", "package-extra"], ["relative dependency", "package/node_modules/dependency", "./node_modules/dependency/index.js"], -])("installed entry keeps %s on the npm boundary", (label, dependencyPath, specifier) => { - const dir = mkdtempSync(join(tmpdir(), "scriptc-installed-entry-dependency-")); - try { - const entry = join(dir, "node_modules/package/main.ts"); - const dependency = join(dir, "node_modules", dependencyPath); - mkdirSync(dirname(entry), { recursive: true }); - mkdirSync(dependency, { recursive: true }); - writeFileSync(join(dirname(entry), "package.json"), '{"type":"module"}\n'); - writeFileSync( - join(dependency, "package.json"), - JSON.stringify({ type: "module", main: "index.js", types: "index.d.ts" }), - ); - writeFileSync(join(dependency, "index.d.ts"), "export declare const value: number;\n"); - writeFileSync(join(dependency, "index.js"), "export const value = 42;\n"); - writeFileSync( - entry, - `import { value } from ${JSON.stringify(specifier)}; ` + "console.log(`value ${value}`);\n", - ); - const withoutIsland = analyze(entry).coverage; - expect(withoutIsland.preflightFailed, label).toBe(false); - expect(new Set(withoutIsland.diagnostics.map((d) => d.code)), label).toEqual( - new Set(["SC2013"]), - ); - const withIsland = analyze(entry, { dynamic: true }).coverage; - expect(withIsland.diagnostics, label).toEqual([]); - expect(withIsland.stats.statementsIsland, label).toBeGreaterThan(0); - } finally { - rmSync(dir, { recursive: true, force: true }); - } -}); +])( + "installed entry resolves %s with native package rules", + async (label, dependencyPath, specifier) => { + const dir = mkdtempSync(join(tmpdir(), "scriptc-installed-entry-dependency-")); + try { + const entry = join(dir, "node_modules/package/main.ts"); + const dependency = join(dir, "node_modules", dependencyPath); + mkdirSync(dirname(entry), { recursive: true }); + mkdirSync(dependency, { recursive: true }); + writeFileSync(join(dirname(entry), "package.json"), '{"type":"module"}\n'); + writeFileSync( + join(dependency, "package.json"), + JSON.stringify({ type: "module", main: "index.js", types: "index.d.ts" }), + ); + writeFileSync(join(dependency, "index.d.ts"), "export declare const value: number;\n"); + writeFileSync(join(dependency, "index.js"), "export const value = 42;\n"); + writeFileSync( + entry, + `import { value } from ${JSON.stringify(specifier)}; ` + "console.log(`value ${value}`);\n", + ); + const { coverage } = analyze(entry); + expect(coverage.preflightFailed, label).toBe(false); + if (specifier.startsWith(".")) { + // A relative path into a nested dependency does not select that + // package's implementation graph or extend the entry's ownership. + expect(new Set(coverage.diagnostics.map((d) => d.code))).toEqual(new Set(["SC2013"])); + return; + } + expect(coverage.diagnostics, label).toEqual([]); + const outDir = join(dir, "out"); + const built = await compile(entry, { outDir, outPath: join(outDir, "program"), sanitize }); + expect(built.ok, JSON.stringify(built.diagnostics)).toBe(true); + if (!built.ok) return; + const native = await execFileAsync(built.binaryPath); + expect(native.stdout).toBe("value 42\n"); + expect(native.stderr).toBe(""); + } finally { + rmSync(dir, { recursive: true, force: true }); + } + }, +); test("installed entry ownership follows a linked package's source graph", async () => { const dir = mkdtempSync(join(tmpdir(), "scriptc-installed-entry-link-")); diff --git a/tests/harness/island-shim.mjs b/tests/harness/island-shim.mjs deleted file mode 100644 index 0fb12d2b2..000000000 --- a/tests/harness/island-shim.mjs +++ /dev/null @@ -1,10 +0,0 @@ -/* The Node-side island oracle. __island_eval(code) in the native binary - * evaluates `code` in the embedded engine's global scope and returns - * String(result); plain-JS semantics for the same operation are an indirect - * (global-scope) eval plus String(). Defining it globally keeps Node the - * differential oracle for island corpus programs — VALUE results only: - * engine error-message text is never compared (the scriptc-only island - * tests own that). Loaded via `--import` for every corpus run; inert for - * programs that never mention the island. */ -// oxlint-disable-next-line no-eval -- Match the native island’s global-scope evaluation in the Node oracle. -globalThis.__island_eval = (code) => String((0, eval)(code)); diff --git a/tests/harness/island.test.ts b/tests/harness/island.test.ts deleted file mode 100644 index cd9edb606..000000000 --- a/tests/harness/island.test.ts +++ /dev/null @@ -1,633 +0,0 @@ -/* Island engine behavior that is scriptc-only by nature — deliberately NOT - * in the differential corpus: - * - * - Exception TEXT crossing the boundary: the bridge renders an island - * exception as String(e) ("TypeError: boom") and throws it as a catchable - * scriptc string. Node's engine (V8) words some messages differently, so - * message content is asserted here against OUR bridge, never against Node - * (island VALUE results stay differential — tests/corpus/1100..). - * - Stack-overflow containment on fibers: async bodies run on ucontext - * fibers (256KB; 1MB under ASan — frames inflate); the island re-anchors - * the engine's stack check on every entry. Unbounded recursion in an - * island eval must surface as a catchable RangeError — a crash here - * means the re-anchor regressed. - * - The static/dynamic fence: --dynamic must not change emitted LLVM, and a - * static binary must stay in its size class (the ~620KB engine must never - * leak into default builds). - * - * SCRIPTC_SAN=1 builds the programs with ASan + the RC audit; the island's - * counting allocator asserts zero live engine allocations at teardown. - */ -import { execFile } from "node:child_process"; -import { createHash } from "node:crypto"; -import { mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs"; -import { dirname, join } from "node:path"; -import { promisify } from "node:util"; -import { describe, expect, test } from "vitest"; -import { compile } from "@scriptc/compiler"; - -const execFileAsync = promisify(execFile); -const repoRoot = join(import.meta.dirname, "../.."); -const cacheDir = join(repoRoot, "node_modules/.cache/scriptc-tests"); -const sanitize = process.env["SCRIPTC_SAN"] === "1"; -const platformTest = process.env["SCRIPTC_PORTABLE_ONLY"] === "1" ? test.skip : test; - -interface RunResult { - stdout: string; - stderr: string; - exitCode: number; -} - -interface BuildResult { - binaryPath: string; - llvmPath: string; -} - -/** Compiles an inline program (island tests default to --dynamic). */ -async function build( - name: string, - source: string, - opts: { dynamic?: boolean; sanitize?: boolean } = {}, -): Promise { - const dynamic = opts.dynamic ?? true; - const san = opts.sanitize ?? sanitize; - const key = createHash("sha256") - .update(source) - .update(san ? "san" : "plain") - .update(dynamic ? "dyn" : "") - .digest("hex") - .slice(0, 16); - const outDir = join(cacheDir, `island-${key}`); - mkdirSync(outDir, { recursive: true }); - const file = join(outDir, `${name}.ts`); - writeFileSync(file, source); - const result = await compile(file, { - outPath: join(outDir, name), - outDir, - sanitize: san, - dynamic, - backend: "llvm", - }); - if (!result.ok) { - throw new Error( - "island program failed to compile:\n" + - result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n"), - ); - } - return { binaryPath: result.binaryPath, llvmPath: result.llvmPath }; -} - -/** Linux ASan prints a once-per-process warning to stderr the first time a - * fiber swapcontext()s (the interceptor has no off switch; Apple's ASan - * never intercepts ucontext, so the macOS lanes never see it). Sanitizer - * diagnostic noise, never program output — dropped before any stderr - * expectation, the RC-audit-skip-notice pattern from differential.test.ts. */ -const stripAsanFiberWarning = (s: string): string => - s.replace(/^==\d+==WARNING: ASan doesn't fully support makecontext\/swapcontext.*\n/gm, ""); - -/** build() + run, tolerating nonzero exit. */ -async function compileAndRun( - name: string, - source: string, - opts: { dynamic?: boolean } = {}, -): Promise { - const { binaryPath } = await build(name, source, opts); - try { - const { stdout, stderr } = await execFileAsync(binaryPath, [], { encoding: "utf8" }); - return { stdout, stderr: stripAsanFiberWarning(stderr), exitCode: 0 }; - } catch (err) { - const e = err as { code?: unknown; stdout?: string; stderr?: string }; - if (typeof e.code !== "number") throw err; - return { - stdout: e.stdout ?? "", - stderr: stripAsanFiberWarning(e.stderr ?? ""), - exitCode: e.code, - }; - } -} - -describe(`island engine (scriptc-only${sanitize ? ", sanitized" : ""})`, () => { - test("island throw is caught by static try/catch and execution recovers", async () => { - const r = await compileAndRun( - "catchable", - `function attempt(code: string): string { - try { - return __island_eval(code); - } catch { - return "recovered"; - } -} -console.log(attempt("1 + 1"), attempt("throw new TypeError('boom')"), attempt("'still ok'")); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("2 recovered still ok\n"); - expect(r.stderr).toBe(""); - }); - - test("uncaught island exception prints the bridge's String(e) message", async () => { - const r = await compileAndRun( - "uncaught", - `console.log("before"); -const x = __island_eval("(function () { throw new TypeError('boom') })()"); -console.log("unreachable", x); -`, - ); - expect(r.exitCode).toBe(1); - expect(r.stdout).toBe("before\n"); - expect(r.stderr).toContain("Uncaught TypeError: boom"); - }); - - test("thrown non-Error island values stringify through the bridge", async () => { - const r = await compileAndRun( - "throw-value", - `const x = __island_eval("throw 'plain string reason'"); -console.log("unreachable", x); -`, - ); - expect(r.exitCode).toBe(1); - expect(r.stderr).toContain("Uncaught plain string reason"); - }); - - test("island Error instances cross out as real error objects", async () => { - // Engine Errors arrive as ScrError instances: the builtin vtable is - // picked by NAME (instanceof TypeError narrows engine TypeErrors), - // custom names ride an Error-rooted instance, and non-Error throws - // keep the string payload — never wrongly an Error. - const r = await compileAndRun( - "error-crossing-out", - `try { - __island_eval("throw new TypeError('island boom')"); -} catch (e) { - if (e instanceof TypeError) { - console.log("typed", e.name, e.message); - } -} -try { - __island_eval("class Weird extends Error { constructor(m) { super(m); this.name = 'Weird'; } } throw new Weird('custom')"); -} catch (e) { - if (e instanceof Error && !(e instanceof TypeError)) { - console.log("custom", e.name, e.message, e.toString()); - } -} -try { - __island_eval("throw 'plain reason'"); -} catch (e) { - if (typeof e === "string") console.log("string payload", e); - if (e instanceof Error) console.log("wrongly an Error"); -} -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe( - "typed TypeError island boom\ncustom Weird custom Weird: custom\nstring payload plain reason\n", - ); - expect(r.stderr).toBe(""); - }); - - test("island syntax errors arrive as catchable errors, not crashes", async () => { - const r = await compileAndRun( - "syntax", - `let ok = "no"; -try { - const x = __island_eval("this is ( not JS"); - console.log("unreachable", x); -} catch { - ok = "caught"; -} -console.log(ok); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("caught\n"); - }); - - test("deep island recursion on a fiber is a catchable RangeError, not a crash", async () => { - // Async bodies run on fixed-size ucontext fibers; without the - // per-entry JS_UpdateStackTop re-anchor this SIGBUSes instead of - // throwing. - const r = await compileAndRun( - "fiber-overflow", - `async function deep(): Promise { - try { - return __island_eval("function r(n) { return r(n + 1); } r(0)"); - } catch { - return "caught overflow on fiber"; - } -} -async function main(): Promise { - console.log(await deep()); - console.log(__island_eval("'engine still ' + 'usable'")); - console.log(await deep()); -} -main(); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe( - "caught overflow on fiber\nengine still usable\ncaught overflow on fiber\n", - ); - expect(r.stderr).toBe(""); - }); - - test("overflow NAME is the engine's RangeError (island-side catch)", async () => { - const r = await compileAndRun( - "overflow-name", - `async function name(): Promise { - return __island_eval("function r(n) { return r(n + 1); } try { r(0); 'no-overflow' } catch (e) { e.name }"); -} -async function main(): Promise { - console.log(await name()); -} -main(); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("RangeError\n"); - }); - - test("a never-observed island rejection reports at its checkpoint and exits 1", async () => { - // The island's JS_SetHostPromiseRejectionTracker ledger joins the - // static promise ledger's report — same line shape ("Unhandled promise - // rejection: ", an Error reason rendering name: - // message), same exit code 1. scriptc-only: Node's stderr for this - // wears ERR_UNHANDLED_REJECTION clothing; the LINE is ours to pin. - // The async main gives the program a loop turn (a program with no - // async/timers/embedded modules never runs the loop, and its island - // promise machinery is dormant anyway). - const r = await compileAndRun( - "island-unhandled-rejection", - `async function main(): Promise { - console.log(__island_eval("Promise.reject(new TypeError('island boom')); 'armed'")); -} -main(); -`, - ); - expect(r.stdout).toBe("armed\n"); - expect(r.stderr).toBe("Unhandled promise rejection: TypeError: island boom\n"); - expect(r.exitCode).toBe(1); - }); - - test("a non-Error island rejection reason prints through String()", async () => { - const r = await compileAndRun( - "island-unhandled-primitive", - `async function main(): Promise { - console.log(__island_eval("Promise.reject('plain reason'); 'armed'")); -} -main(); -`, - ); - expect(r.stdout).toBe("armed\n"); - expect(r.stderr).toBe("Unhandled promise rejection: plain reason\n"); - expect(r.exitCode).toBe(1); - }); - - test("an island rejection observed at rejection time never reports", async () => { - const r = await compileAndRun( - "island-rejection-observed", - `async function main(): Promise { - console.log(__island_eval("Promise.reject(new Error('seen')).catch((e) => {}); 'ok'")); -} -main(); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("ok\n"); - expect(r.stderr).toBe(""); - }); - - test("an island rejection handled LATER is rescinded, not reported", async () => { - // The tracker signals both directions: the rejection enters the ledger - // when it happens, and attaching a handler afterwards (a later - // microtask) removes it — Node's rejectionHandled rescission. The - // second eval runs BEFORE the loop drains engine jobs, proving the - // catch really attached later. - const r = await compileAndRun( - "island-rejection-rescinded", - `async function main(): Promise { - console.log( - __island_eval( - "globalThis.p = Promise.reject(new Error('late catch'));" + - "Promise.resolve().then(() => { globalThis.p.catch(() => { globalThis.caught = true; }); });" + - "'armed'", - ), - ); - console.log(__island_eval("globalThis.caught === undefined ? 'not yet' : 'too early'")); -} -main(); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("armed\nnot yet\n"); - expect(r.stderr).toBe(""); - }); - - test("the static ledger keeps one voice when both worlds have survivors", async () => { - // Only ONE line reports (the static ledger's), exit stays 1 — the - // island ledger frees silently when the static side already spoke. - const r = await compileAndRun( - "island-and-static-rejections", - `async function fail(): Promise { - throw new RangeError("static first"); -} -fail(); -console.log(__island_eval("Promise.reject(new TypeError('island second')); 'armed'")); -`, - ); - expect(r.exitCode).toBe(1); - expect(r.stdout).toBe("armed\n"); - expect(r.stderr).toBe("Unhandled promise rejection: RangeError: static first\n"); - }); - - test("--dynamic does not change emitted LLVM for island-free programs", async () => { - const source = `function greet(who: string): string { - return "hello " + who; -} -console.log(greet("world"), 6 * 7); -`; - // Same program name in two cache dirs: the C is identical modulo the - // hashed cache-dir path embedded in source-location comments. - const [stat, dyn] = await Promise.all([ - build("same-c", source, { dynamic: false }), - build("same-c", source, { dynamic: true }), - ]); - const body = (r: BuildResult) => - readFileSync(r.llvmPath, "utf8").replaceAll(dirname(r.llvmPath), "OUTDIR"); - expect(body(dyn)).toBe(body(stat)); - }); - - platformTest( - "static hello-world stays in its size class; island use pays the engine", - async () => { - // The engine must NEVER leak into static builds: a default-built - // hello-world stays in the platform's compact class, while entering an - // island carries the embedded engine. An island-FREE --dynamic binary - // stays small too because the linker dead-strips the unreferenced archive. - // Measured on plain (non-ASan) builds in both lanes. - const [stat, dyn] = await Promise.all([ - build("size-static", `console.log("hello", "world");\n`, { - dynamic: false, - sanitize: false, - }), - build("size-dynamic", `console.log(__island_eval("'hello ' + 'world'"));\n`, { - dynamic: true, - sanitize: false, - }), - ]); - const staticSize = statSync(stat.binaryPath).size; - const dynamicSize = statSync(dyn.binaryPath).size; - // The class is toolchain-specific and page-granular. The canonical - // Ubuntu 24.04/clang Sandbox measures 423,488 bytes after the sparse - // UTF-16 string index added its always-linked cache/allocator path; - // current Mach-O toolchains measure about 434KB. Each bound leaves - // roughly one native page of growth while staying far below the >1MB - // jump measured when the engine is linked. - expect(staticSize).toBeLessThan(process.platform === "linux" ? 440_000 : 450_000); - expect(dynamicSize).toBeGreaterThan(500_000); - }, - ); - - /* ── the `any` boundary (validated exits) ───────────────────────────── - * Node never checks an `as`, so LYING casts cannot be differential: - * scriptc throws a catchable TypeError (the same trust-but-verify rule - * as the dyn boundary — SEMANTICS.md documents both under the headline - * divergence). Valid casts live in the corpus (760–764). */ - - test("a lying primitive exit throws a catchable TypeError naming both types", async () => { - const r = await compileAndRun( - "any-lying-primitive", - `const s: any = "abc"; -try { - const n = s as number; - console.log("unreachable", n); -} catch { - console.log("caught"); -} -const direct = s as number; -console.log("unreachable", direct); -`, - ); - expect(r.exitCode).toBe(1); - expect(r.stdout).toBe("caught\n"); - expect(r.stderr).toContain("TypeError: expected number, got string"); - }); - - test("a composite exit inherits dynCheck's path-annotated failures", async () => { - const r = await compileAndRun( - "any-lying-record", - `const o: any = { a: 1, b: 2 }; -const r = o as { a: number; b: string }; -console.log("unreachable", r.b); -`, - ); - expect(r.exitCode).toBe(1); - expect(r.stderr).toContain("TypeError"); - expect(r.stderr).toContain("$.b"); // the dynCheck walker's path - }); - - test("an implicit exit at a typed slot validates exactly like an explicit cast", async () => { - const r = await compileAndRun( - "any-implicit-exit", - `function takes(n: number): number { - return n + 1; -} -const good: any = 41; -console.log(takes(good)); -const bad: any = "not a number"; -try { - console.log(takes(bad)); -} catch { - console.log("implicit exit caught"); -} -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("42\nimplicit exit caught\n"); - }); - - test("island values survive the RC audit through churn and try/catch unwinds", async () => { - const r = await compileAndRun( - "any-churn-unwind", - `let recovered = 0; -for (let i = 0; i < 300; i = i + 1) { - const v: any = { n: i, s: \`x\${i}\` }; - try { - const bad = v as { n: number; s: number }; // s is a string: throws - console.log("unreachable", bad.n); - } catch { - recovered = recovered + 1; - } -} -console.log(recovered); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("300\n"); - expect(r.stderr).toBe(""); - }); - - /* ── the island-backed ambient surface (Math, methods, globals) ─────── - * Value results are differential (corpus 1110–1116 and 2113); this - * checks that --dynamic leaves static .at() behavior unchanged and that - * surface calls re-anchor the engine on fibers inside async bodies. */ - - test("string .at() returns undefined out of range in both build modes", async () => { - const source = `const s = "abc"; -console.log("in range", s.at(1), s.at(-1)); -console.log("out of range", s.at(99), s.at(-4)); -`; - for (const dynamic of [false, true]) { - const r = await compileAndRun("at-out-of-range", source, { dynamic }); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("in range b c\nout of range undefined undefined\n"); - expect(r.stderr).toBe(""); - } - }); - - test("island-backed calls re-anchor the engine on fibers (Math after await)", async () => { - const r = await compileAndRun( - "math-on-fiber", - `async function calc(n: number): Promise { - await new Promise((resolve) => resolve()); - return Math.sign(n) + Math.floor(1.9); -} -async function main(): Promise { - console.log(await calc(144)); - console.log((await calc(-1)).toFixed(1)); -} -main(); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("2\n0.0\n"); - expect(r.stderr).toBe(""); - }); - - test("composites cross the boundary as deep copies (the documented aliasing divergence)", async () => { - // In Node `const d: any = point` aliases; scriptc deep-copies at the - // boundary (SEMANTICS.md). This is exactly the case that cannot be a - // differential test — pinned here so the divergence stays deliberate. - const r = await compileAndRun( - "any-copy-divergence", - `const point = { x: 1.5 }; -const d: any = point; -d.x = d.x * 2; -console.log(\`\${d.x}\`, point.x); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("3 1.5\n"); // Node would print "3 3" - }); - - test("typed arrays cross as copies too — island writes stay island-side", async () => { - // The bytes sibling of the composite copy divergence: Node would alias. - const r = await compileAndRun( - "bytes-copy-divergence", - `const b = new Uint8Array([10, 20]); -const h: any = b; -h[0] = 99; -console.log(\`\${h[0]}\`, b[0]); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("99 10\n"); // Node would print "99 99" - }); - - test("the island URL reads every component off the static parser; the base form resolves", async () => { - // The marshal installs the island URL class because the engine has no URL. - // Components and relative references use the same native parser, including - // dot segments, protocol-relative references, and file bases. - const r = await compileAndRun( - "island-url-fences", - `const box: any = { u: new URL("https://x.dev/a/b?q=1#f") }; -console.log(\`\${box.u.href}\`, \`\${box.u.protocol}\`, \`\${box.u.pathname}\`, \`\${box.u}\`); -console.log(\`\${box.u.host}\`, \`\${box.u.origin}\`, \`\${box.u.search}\`, \`\${box.u.hash}\`, \`\${box.u.port === "" ? "no-port" : box.u.port}\`); -const ctor: any = box.u.constructor; -const fresh: any = new ctor("https://y.dev/z"); -console.log(\`\${fresh.href}\`); -const rel: any = new ctor("child", "https://y.dev/base/"); -console.log(\`\${rel.href}\`); -const dots: any = new ctor("../up.wasm", "https://y.dev/a/b/c.mjs"); -console.log(\`\${dots.href}\`); -const abs: any = new ctor("https://other.dev/q", "https://y.dev/base/"); -console.log(\`\${abs.href}\`); -const filey: any = new ctor("openh264.wasm", "file:///tmp/pkg/openh264.mjs"); -console.log(\`\${filey.href}\`); -const pr: any = new ctor("//host/p", "https://y.dev/base/"); -console.log(\`\${pr.href}\`); -try { - const bad: any = new ctor("not a url at all"); - console.log(\`\${bad.href}\`); -} catch (e) { - console.log("invalid input throws"); -} -`, - ); - expect(r.exitCode).toBe(0); - const lines = r.stdout.split("\n"); - expect(lines[0]).toBe("https://x.dev/a/b?q=1#f https: /a/b https://x.dev/a/b?q=1#f"); - expect(lines[1]).toBe("x.dev https://x.dev ?q=1 #f no-port"); - expect(lines[2]).toBe("https://y.dev/z"); - expect(lines[3]).toBe("https://y.dev/base/child"); - expect(lines[4]).toBe("https://y.dev/a/up.wasm"); - expect(lines[5]).toBe("https://other.dev/q"); - expect(lines[6]).toBe("file:///tmp/pkg/openh264.wasm"); - expect(lines[7]).toBe("https://host/p"); - expect(lines[8]).toBe("invalid input throws"); - }); - - /* ── dynamic import of the program's OWN modules ────────────────────── - * Value results and evaluation order are differential (corpus - * 2050–2052); what lives here is the deliberately scriptc-only half: - * exports with no island representation cross as TRAP functions (Node's - * namespace holds the real class — divergence 700), and the namespace - * is a SNAPSHOT taken when the import resolves where Node's bindings - * are live (divergence 701). */ - - test("a class export crosses the dynamic-import namespace as a pointed trap", async () => { - const r = await compileAndRun( - "dynns-class-trap", - `export class C { - n(): number { return 1; } -} -async function main(): Promise { - const ns: any = await import("./dynns-class-trap.ts"); - console.log(typeof ns.C); // a function, like Node's namespace slot - try { - const c = new ns.C(); - console.log("unreachable"); - } catch (e) { - console.log(String(e)); - } -} -main(); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe( - "function\n" + - "TypeError: the 'C' export is a class of the compiled program, which cannot cross into dynamically-executed code yet\n", - ); - expect(r.stderr).toBe(""); - }); - - test("the dynamic-import namespace is a snapshot, not Node's live bindings", async () => { - const r = await compileAndRun( - "dynns-snapshot", - `export var counter = 0; -export function bump(): void { counter = counter + 1; } -async function main(): Promise { - const ns = await import("./dynns-snapshot.ts"); - bump(); - // Node's namespace would answer 1 (live binding); the snapshot taken - // when the import resolved answers 0 — divergence 701. - console.log(ns.counter, counter); -} -main(); -`, - ); - expect(r.exitCode).toBe(0); - expect(r.stdout).toBe("0 1\n"); - expect(r.stderr).toBe(""); - }); -}); diff --git a/tests/harness/library-mode.test.ts b/tests/harness/library-mode.test.ts index 84a78da56..80bc8e7ef 100644 --- a/tests/harness/library-mode.test.ts +++ b/tests/harness/library-mode.test.ts @@ -763,7 +763,7 @@ describe("K13: library-mode npm refusals (SC4020, static-or-refuse)", () => { ]); // The package resolves at runtime (Node would load it) but ships no // types: the library answer is the bar's, not SC1010's "nothing - // installed resolves it" nor SC2013's --dynamic teaching. + expect(diags.map((d) => d.code)).toEqual(["SC4020"]); expect(diags[0]!.message).toContain("'untyped'"); expect(diags[0]!.message).toContain("no own .d.ts"); diff --git a/tests/harness/linux-differential.test.ts b/tests/harness/linux-differential.test.ts index dccb3cd9d..3bea5fe76 100644 --- a/tests/harness/linux-differential.test.ts +++ b/tests/harness/linux-differential.test.ts @@ -1,40 +1,3 @@ -/* The Linux differential lane — env-gated (SCRIPTC_LINUX=1), skipped everywhere - * else so the macOS lanes never see it. The workflow (docs/linux-port.md): - * corpus programs are CROSS-COMPILED on the host via `zig cc` - * (SCRIPTC_CC=zigcc, SCRIPTC_TARGET=) and both sides run - * inside one Linux container — the binary, and a LINUX Node as the oracle. - * GNU targets use node:<.node-version>-bookworm (whose glibc matches the - * triple's pin); -linux-musl uses the matching Alpine Node image. - * Same contract as differential.test.ts: stdout byte-equal, stderr - * byte-equal for exit-0 programs, exit codes agree with the `// @exit:` - * directive. - * - * Scope: the whole corpus plus the LISTENING harnesses — `// @dynamic` - * programs included (the engine archive cross-builds per target). NO - * feature is cross-gated to Linux anymore (fetch, the last one, links - * through the vendored curl headers + soname stub and binds the - * container's system libcurl at load time); the compile-time skip arm - * below stays as the honest surface for any future gate. Everything runs - * for real: the loop-portable surfaces (timers/async, signals/stdin, - * process/fs, child_process), the dynamic island (per-target libqjs.a), - * regex (per-target libregexp objects), - * zlib (per-target vendored objects), fs.watch (the inotify arm), the - * net/http/tls and dgram/dns fixtures (tests/fixtures/{server,dgram}, - * mbedTLS built per target), three legs compared byte-exactly with BOTH - * lanes and the per-case driver all running inside the container - * (server.test.ts's contract), the fetch fixtures - * (tests/fixtures/fetch) — the identical servers.mjs routes running - * standalone in the container, both lanes under the poisoned proxy env, - * fetch.test.ts's whole contract including the NODE_USE_ENV_PROXY - * opt-in's relay count — the npm differential (npm-cases.ts: the - * resolution matrix plus the commander acceptance CLI), the node:test - * differential (node-test-normalize.ts's documented scrub), and the - * piped-stdin differential (event-loop-cases.ts's scripts through - * docker exec -i). macOS's known flake classes apply here - * too (event-loop - * timing, child reap-order — 1466 has been seen swapping exit order - * under the Linux reap poll). SCRIPTC_LINUX_FILTER= narrows a run - * to matching corpus/fixture names for triage. */ import { execFile, spawn } from "node:child_process"; import { createHash } from "node:crypto"; import { existsSync, globSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs"; @@ -64,23 +27,12 @@ const muslTarget = target.includes("linux-musl"); const mountPoint = repoRoot; const containerName = `scr-linux-lane-${process.pid}`; -// The lane attempts the WHOLE corpus — `// @dynamic` programs included -// (the engine archive cross-builds per target since -// buildEngineArchiveCross). Nothing in the corpus is cross-gated to -// Linux today (fetch, the last gate, lifted with the curl soname stub); -// the compile-time skip arm below is the visible surface any FUTURE gate -// would take. Everything must PASS against the Linux Node oracle. +// The lane compiles the whole corpus natively and compares it with the +// Linux Node oracle. Any future target capability refusal is visible below. function directiveHead(file: string): string[] { return readFileSync(file, "utf8").split("\n", 2); } -/** `// @dynamic` (differential.test.ts's directive): compile with the - * island engine embedded. The Node side needs no flag — the island shim - * covers the surface. */ -function wantsDynamic(file: string): boolean { - return directiveHead(file).some((l) => /^\/\/ @dynamic\s*$/.test(l)); -} - /** `// @transform-types` (differential.test.ts's directive): the Node * oracle needs --experimental-transform-types for non-erasable syntax * (namespaces). Enum-declaring programs ride the same flag without a @@ -249,12 +201,7 @@ async function runLinuxNode(file: string): Promise { : []), ...(directiveHead(file).includes("// @no-node-shims") ? [] - : [ - "--import", - inContainer(join(repoRoot, "tests/harness/comptime-shim.mjs")), - "--import", - inContainer(join(repoRoot, "tests/harness/island-shim.mjs")), - ]), + : ["--import", inContainer(join(repoRoot, "tests/harness/comptime-shim.mjs")), "--import"]), inContainer(nodeOracleFile(file)), ]); } @@ -277,7 +224,6 @@ async function crossCompileAndRun(file: string): Promise { const result = await compile(file, { outPath: join(outDir, "program"), outDir, - dynamic: wantsDynamic(file), backend: "llvm", }); if (!result.ok) { @@ -395,29 +341,9 @@ function fixtureCases(root: string): { name: string; entry: string; driver: stri const serverCases = fixtureCases(join(repoRoot, "tests/fixtures/server")); const dgramCases = fixtureCases(join(repoRoot, "tests/fixtures/dgram")); -/* ── the fetch fixtures (tests/fixtures/fetch) — fetch.test.ts's contract - * with everything in the container: servers.mjs runs standalone under the - * container's Node (the IDENTICAL routes the macOS harness runs - * in-process) and prints BASE/REFUSED/PROXY on stderr; each case then runs - * under the container's Node AND cross-compiled --dynamic, both lanes - * inheriting the POISONED proxy env that Node's fetch and libcurl-backed - * fetch must BOTH ignore (fetch.test.ts's parity regression — libcurl's - * default is to honor it); stdout byte-equal, exit codes agree. The - * proxy-optin case opts in with NODE_USE_ENV_PROXY=1 pointing at the - * counting proxy and must relay exactly one request per lane (the count - * read over the wire via the proxy's /__count query). */ - const fetchCases = fixtureCases(join(repoRoot, "tests/fixtures/fetch")); const fetchServersScript = join(repoRoot, "tests/fixtures/fetch/servers.mjs"); -/* ── the npm differential (tests/harness/npm-cases.ts — npm.test.ts's - * exact case table: the embedded-npm resolution matrix plus the commander - * acceptance CLI with its argv lists). No servers, no drivers: each argv - * runs under the container's Node (resolving the committed fixture - * node_modules from the repo mount) and cross-compiled --dynamic (the - * package sources embedded at build time); stdout byte-equal, exit codes - * agree. */ - const linuxNpmCases = enabled ? npmCases(join(repoRoot, "tests/fixtures")).filter( (c) => filter === undefined || new RegExp(filter).test(c.entry), @@ -499,8 +425,6 @@ function runWithStdinInContainer( }); } -/** Cross-compiles one npm case — npm.test.ts's build(): always --dynamic, - * the cache key hashing the program and its fixture packages. */ async function crossCompileNpmCase(entry: string): Promise { const hash = createHash("sha256"); const fixtureDir = join(entry, "../.."); @@ -515,7 +439,6 @@ async function crossCompileNpmCase(entry: string): Promise { const result = await compile(entry, { outPath: join(outDir, "program"), outDir, - dynamic: true, backend: "llvm", }); if (!result.ok) { @@ -527,9 +450,6 @@ async function crossCompileNpmCase(entry: string): Promise { return result.binaryPath; } -/** Cross-compiles one fetch fixture — fetch.test.ts's build(): always - * --dynamic (the ambient fetch is island-backed), the cache key covering - * the fixture-tree node_modules the embedded npm graphs resolve from. */ async function crossCompileFetchFixture(entry: string): Promise { const hash = createHash("sha256"); const inputs = [ @@ -545,7 +465,6 @@ async function crossCompileFetchFixture(entry: string): Promise { const result = await compile(entry, { outPath: join(outDir, "program"), outDir, - dynamic: true, backend: "llvm", }); if (!result.ok) { diff --git a/tests/harness/llvm-differential.test.ts b/tests/harness/llvm-differential.test.ts index 000cbc7ed..cd46086cb 100644 --- a/tests/harness/llvm-differential.test.ts +++ b/tests/harness/llvm-differential.test.ts @@ -60,10 +60,6 @@ function expectedExitCode(file: string): number { return 0; } -function wantsDynamic(file: string): boolean { - return directiveHead(file).some((l) => /^\/\/ @dynamic\s*$/.test(l)); -} - async function runBinary(cmd: string, args: string[]): Promise { // Linux fork/exec race (observed on the sandbox lane): a sibling // worker's fork can inherit the freshly-linked binary's write fd across @@ -104,7 +100,6 @@ function comparableStderr(stderr: Buffer): Buffer { } const comptimeShim = pathToFileURL(join(import.meta.dirname, "comptime-shim.mjs")).href; -const islandShim = pathToFileURL(join(import.meta.dirname, "island-shim.mjs")).href; /** differential.test.ts's twin: the Node oracle runs with * --experimental-transform-types for corpus programs using non-erasable @@ -158,9 +153,7 @@ function nodeOracleArgs(file: string): string[] { const nodep = wantsNoDeprecation(file) ? ["--no-deprecation"] : []; // --import makes Node load even a CJS entry through its ESM loader, // changing an entry throw's uncaughtException origin to unhandledRejection. - const shims = directiveHead(file).includes("// @no-node-shims") - ? [] - : ["--import", comptimeShim, "--import", islandShim]; + const shims = directiveHead(file).includes("// @no-node-shims") ? [] : ["--import", comptimeShim]; return [...transform, ...nodep, ...shims, nodeOracleFile(file)]; } @@ -178,7 +171,6 @@ async function build(file: string, optimization: "release" | "dev") { for (const f of programInputs(file)) hash.update(f).update(readFileSync(f)); const key = hash .update(sanitize ? "san" : "plain") - .update(wantsDynamic(file) ? "dyn" : "") .update("llvm-" + optimization) .digest("hex") .slice(0, 16); @@ -188,7 +180,6 @@ async function build(file: string, optimization: "release" | "dev") { outPath: join(outDir, `program-llvm-${optimization}${sanitize ? "-san" : ""}`), outDir, sanitize, - dynamic: wantsDynamic(file), optimization, }); } diff --git a/tests/harness/native-proxy.test.ts b/tests/harness/native-proxy.test.ts index 749a76642..cfa9721c4 100644 --- a/tests/harness/native-proxy.test.ts +++ b/tests/harness/native-proxy.test.ts @@ -34,7 +34,6 @@ console.log("after"); ); const result = await compile(entry, { backend, - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", outDir, outPath: join(outDir, "program"), diff --git a/tests/harness/native-weak-collections.test.ts b/tests/harness/native-weak-collections.test.ts index 3be154b8d..220a30a35 100644 --- a/tests/harness/native-weak-collections.test.ts +++ b/tests/harness/native-weak-collections.test.ts @@ -28,7 +28,6 @@ console.log(String(map.delete(key)), String(map.has(key)), String(set.delete(oth ); const result = await compile(entry, { backend, - dynamic: true, sanitize: process.env["SCRIPTC_SAN"] === "1", outDir, outPath: join(outDir, "program"), @@ -85,7 +84,6 @@ console.log("after"); ); const result = await compile(entry, { backend, - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", outDir, outPath: join(outDir, "program"), diff --git a/tests/harness/npm-cases.ts b/tests/harness/npm-cases.ts index dc5eb89e8..4dda0b9ad 100644 --- a/tests/harness/npm-cases.ts +++ b/tests/harness/npm-cases.ts @@ -33,7 +33,7 @@ export function npmCases(fixturesRoot: string): NpmCase[] { { // THE acceptance test: a calculator CLI on the real commander package // (pinned in the fixture; see its README), across the happy paths, - // --version/--help (island process.exit), and the error exits. + name: "commander-calc", entry: join(fixturesRoot, "commander-calc/calc.ts"), argvs: [ diff --git a/tests/harness/npm-fetch-defaults.test.ts b/tests/harness/npm-fetch-defaults.test.ts index e956bb514..7ec904fc1 100644 --- a/tests/harness/npm-fetch-defaults.test.ts +++ b/tests/harness/npm-fetch-defaults.test.ts @@ -7,7 +7,7 @@ import { expect, test } from "vitest"; const sanitize = process.env["SCRIPTC_SAN"] === "1"; for (const backend of ["llvm"] as const) { - test(`embedded package destructuring defaults retain global fetch (${backend})`, async () => { + test(`compiled package destructuring defaults retain global fetch (${backend})`, async () => { const directory = mkdtempSync( join(process.platform === "win32" ? tmpdir() : "/tmp", "scriptc-fetch-defaults-"), ); @@ -32,7 +32,8 @@ for (const backend of ["llvm"] as const) { ` const { value = fetch } = {}; const [element = fetch] = []; -function defaulted({ request = fetch } = {}) { return typeof request; } +/** @param {{ request?: typeof fetch | string }} options */ +function defaulted(options = {}) { const { request = fetch } = options; return typeof request; } function local(fetch) { const { request = fetch } = {}; return typeof request; } export function run() { console.log(typeof value, typeof element, defaulted()); @@ -51,7 +52,6 @@ export function run() { expect(expected.stderr).toBe(""); const built = await compile(entry, { backend, - dynamic: true, sanitize, optimization: "dev", outDir: directory, diff --git a/tests/harness/npm-static.test.ts b/tests/harness/npm-static.test.ts index b9e38619a..c842b223e 100644 --- a/tests/harness/npm-static.test.ts +++ b/tests/harness/npm-static.test.ts @@ -1,20 +1,3 @@ -/* --npm-static: opted-in npm packages' shipped JS compiles STATICALLY as - * program modules (no island) — the slice-2 pilot. Three tiers pinned - * here: - * - * 1. DRIVEN DIFFERENTIALS (escape-string-regexp, slash, ms, picocolors, - * commander): - * fully static builds whose stdout, stderr, and exit status byte-match - * Node for the exercised programs. - * 2. COVERAGE FRONTIERS: dormant package paths may retain runtime fences; - * coverage floors keep that broader static frontier moving forward. - * 3. The FALLBACK contract: a package whose preflight refuses (an - * unshimmed-builtin require inside its files) drops back to the - * island under --dynamic with a coverage note — never a build - * failure, and the flag never changes a flagless build. - * - * The flag defaults OFF: nothing here touches the production npm/island - * lanes (npm.test.ts, vercel-e2e.test.ts pin those). */ import { execFile } from "node:child_process"; import { createHash } from "node:crypto"; import { @@ -74,9 +57,6 @@ function comparableStderr(stderr: Buffer): Buffer { return Buffer.from(kept.join("\n"), "utf8"); } -/** Compile one pilot statically (no --dynamic — the whole point) with the - * named packages opted in; cache-keyed over the program and the vendored - * packages. */ async function buildStatic(entry: string, npmStatic: string[] | "auto"): Promise { const hash = createHash("sha256"); const inputs = [ @@ -170,7 +150,6 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { writeFileSync(entry, source); const result = await compile(entry, { backend: "llvm", - dynamic: false, npmStatic: ["dual"], sanitize, outDir: join(dir, name + "-out"), @@ -236,7 +215,6 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { ).toHaveLength(0); const result = await compile(entry, { backend, - dynamic: false, npmStatic: "auto", sanitize, outDir: join(dir, "out"), @@ -293,7 +271,6 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { expect(coverage.runtimeFences ?? [], JSON.stringify(coverage.runtimeFences)).toEqual([]); const result = await compile(entry, { backend, - dynamic: false, npmStatic: "auto", sanitize, outDir: dir, @@ -325,7 +302,6 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { const outDir = join(cacheDir, "bundled-methods", sanitize ? "san" : "plain", backend); const result = await compile(entry, { backend, - dynamic: false, npmStatic: "auto", sanitize, outDir, @@ -387,7 +363,6 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { const outDir = join(cacheDir, "virtual-classes", sanitize ? "san" : "plain", backend); const result = await compile(entry, { backend, - dynamic: false, npmStatic: "auto", sanitize, outDir, @@ -416,7 +391,6 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { const outDir = join(cacheDir, "module-loader", sanitize ? "san" : "plain", backend); const result = await compile(entry, { backend, - dynamic: false, npmStatic: "auto", sanitize, outDir, @@ -527,7 +501,7 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { cpSync(join(pilotRoot, "module-loader-cli.ts"), join(dir, "main.ts")); const { coverage } = analyze(join(dir, "main.ts"), { npmStatic: "auto" }); expect(coverage.npmStatic).toEqual([ - { package: "module-loader", status: "fallback", detail: expect.stringContaining(reason!) }, + { package: "module-loader", status: "refused", detail: expect.stringContaining(reason!) }, ]); } finally { rmSync(dir, { recursive: true, force: true }); @@ -564,7 +538,6 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { const outDir = join(cacheDir, "bundled-function", sanitize ? "san" : "plain", backend); const result = await compile(entry, { backend, - dynamic: false, npmStatic: "auto", sanitize, outDir, @@ -769,8 +742,8 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { expect(coverage.npmStatic).toEqual([ { package: "ms", - status: "fallback", - detail: "auto: it ships no own .d.ts declaration surface", + status: "refused", + detail: "it ships no own .d.ts declaration surface", }, ]); }, 120_000); @@ -862,19 +835,15 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { expect(nativeRes.exitCode).toBe(nodeRes.exitCode); }, 180_000); - // Tier 3: the island fallback — esbundled's chunk requires "net", an - // unshimmed-builtin edge preflight refuses for a static package, so the - // opt-in DROPS with a note and the --dynamic build keeps the exact - // island behavior lazybuiltin.ts pins in npm.test.ts. - test("a preflight-refused package falls back to the island with a note", () => { + // A package preflight failure stays visible as a package-specific refusal. + test("a preflight-refused package reports its native refusal", () => { const { coverage } = analyze(join(fixturesRoot, "npm/divergent/lazybuiltin.ts"), { - dynamic: true, npmStatic: ["esbundled"], }); const statuses = coverage.npmStatic ?? []; expect(statuses).toHaveLength(1); expect(statuses[0]?.package).toBe("esbundled"); - expect(statuses[0]?.status).toBe("fallback"); + expect(statuses[0]?.status).toBe("refused"); expect(coverage.preflightFailed).toBe(false); }, 120_000); @@ -882,8 +851,7 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { // cannot infer. chainy is commander's getter/setter shape in miniature: // name()/tag() return strings with no argument and `this` with one. The // safe declaration groups project into JSDoc on the matching runtime - // class, so the body still compiles from JS while calls keep the authored - // surface — no island fallback and no unchecked declaration-only value. + // class, so the body compiles from JS while calls keep the authored surface. test("auto preserves safe declaration overloads while compiling the JavaScript body", async () => { const entry = join(pilotRoot, "chainy-cli.ts"); const { coverage } = analyze(entry, { npmStatic: "auto" }); @@ -899,28 +867,25 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { expect(nativeRes.exitCode).toBe(nodeRes.exitCode); }, 180_000); - // Non-opted UNTYPED node_modules packages keep the checked-dynamic - // surface: maxNodeModuleJsDepth (active on every --npm-static load) - // would otherwise admit their JS and replace the flagless `any` with an - // inferred surface — changing the PROGRAM's own types under a flag that - // promised to touch only the opted-in packages (the jaro-winkler - // shape). The fs shadow serves those files as the any-surface stub: - // typegapped's import types `any` (its use sites meet the ordinary - // any fences, never its own checker errors), while - // escape-string-regexp compiles statically beside it. - test("a non-opted untyped package keeps the checked-dynamic any surface", () => { + // Ineligible packages remain declaration-only during analysis and receive + // a refusal, while eligible dependencies can still be analyzed natively. + test("an ineligible untyped package is refused alongside a compiled dependency", () => { const { coverage } = analyze(join(pilotRoot, "typegap-mix.ts"), { - dynamic: true, npmStatic: ["escape-string-regexp"], }); expect(coverage.preflightFailed).toBe(false); - expect(coverage.npmStatic).toEqual([{ package: "escape-string-regexp", status: "static" }]); - // typegapped's own checker errors never gate; the one report is the - // consumer's any-value fence — the same story a flagless island - // import of an untyped package tells. - expect(coverage.diagnostics).toHaveLength(1); - expect(coverage.diagnostics[0]?.code).toBe("SC1090"); - expect(coverage.diagnostics[0]?.message).toMatch(/console\.log of 'any'/); + expect(coverage.npmStatic).toEqual([ + { + package: "typegapped", + status: "refused", + detail: "it ships no own .d.ts declaration surface", + }, + { package: "escape-string-regexp", status: "static" }, + ]); + // Report package eligibility rather than errors in unselected source. + expect( + coverage.diagnostics.some((d) => d.code === "SC2013" && d.message.includes("typegapped")), + ).toBe(true); }, 120_000); test("opted-in npm packages retain imports deeper than four JavaScript modules", async () => { @@ -1108,21 +1073,18 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { expect(nativeRes.exitCode).toBe(nodeRes.exitCode); }, 120_000); - // The FLAGLESS classification of the same workspace link: an npm import - // like any other — island-capable sites (per-package attribution naming - // 'wslinked'), never "nothing installed resolves it". + // The workspace link compiles automatically without explicit selection. test("a workspace-linked package classifies as an npm import without flags", () => { const { coverage } = analyze(join(fixturesRoot, "npm/cases/workspace-linked/main.ts")); expect(coverage.preflightFailed).toBe(false); - const all = JSON.stringify(coverage.diagnostics); - expect(all).toContain("wslinked"); - expect(all).not.toContain("nothing installed resolves"); + expect(coverage.diagnostics).toEqual([]); + expect(coverage.npmStatic).toContainEqual({ package: "wslinked", status: "static" }); }, 120_000); /* ── bundler-emitted CJS: the getter-table export shapes (cases * 2465-2469) ─ the canonical-table rewrite types each shape's named * exports by their resolved values, the compiled binaries byte-match - * Node, and the consumer-anchored offender attribution degrades what + * Node, and the consumer-anchored offender attribution refuses what * inference cannot carry. */ // 2465: the esbuild __export getter table (renamed local, member-access @@ -1190,37 +1152,30 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { expect(nativeRes.exitCode).toBe(nodeRes.exitCode); }, 180_000); - // The interop's require edge is a require like any other: with only - // gtwrap opted in, the erased wrapper's require("gtcore") meets the - // existing SC1010 fence anchored in gtwrap's files, and the package - // degrades with the module-naming note — preflight and lowering agree. - test("__toESM of an unopted dependency degrades the wrapping package with the require note", () => { + // The interop's require edges join recursive automatic package selection. + test("__toESM dependencies compile recursively without explicit selection", () => { const entry = join(fixturesRoot, "npm/cases/2556-toesm-external/main.ts"); const { coverage } = analyze(entry, { npmStatic: ["gtwrap"] }); expect(coverage.preflightFailed).toBe(false); expect(coverage.npmStatic).toEqual([ - { - package: "gtwrap", - status: "fallback", - detail: expect.stringContaining("'gtcore'") as string, - }, + { package: "gtwrap", status: "static" }, + { package: "gtcore", status: "static" }, + { package: "gtable", status: "static" }, ]); + expect(coverage.diagnostics).toEqual([]); }, 120_000); // 2557: a __toESM whose TEXT deviates beyond the structural recognizer - // (a hand-rolled block-body interop). The rewrite must not guess: the - // package degrades to the island with a note NAMING the construct — - // never a failed build, and never the silent alternative (the live - // helper chain's `var __create = Object.create;` fences at module load - // while the report claims "static"). - test("a deviant __toESM helper degrades the package with a construct-naming note", () => { + // (a hand-rolled block-body interop). Refuse the package and name the + // construct rather than claiming it compiled statically. + test("a deviant __toESM helper refuses the package with a construct-naming note", () => { const entry = join(fixturesRoot, "npm/cases/2557-toesm-drift/main.ts"); const { coverage } = analyze(entry, { npmStatic: ["gtdrift", "gtcore"] }); expect(coverage.preflightFailed).toBe(false); expect(coverage.npmStatic).toEqual([ { package: "gtdrift", - status: "fallback", + status: "refused", detail: expect.stringContaining("__toESM") as string, }, { package: "gtcore", status: "static" }, @@ -1230,14 +1185,14 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { // Auto must not newly admit what the recognition cannot finish: the // eligibility heuristics pick gtdrift (own .d.ts, unminified, no // runtime markers), the attempt runs, and the SAME construct-naming - // degrade answers — the preflight refusal and the lowering agree. + // refusal answers — the preflight refusal and the lowering agree. test("--npm-static=auto degrades a deviant __toESM package with the same note", () => { const entry = join(fixturesRoot, "npm/cases/2557-toesm-drift/main.ts"); const { coverage } = analyze(entry, { npmStatic: "auto" }); expect(coverage.npmStatic).toEqual([ { package: "gtdrift", - status: "fallback", + status: "refused", detail: expect.stringContaining("__toESM") as string, }, ]); @@ -1279,9 +1234,7 @@ describe(`npm-static pilots${sanitize ? " (sanitized)" : ""}`, () => { // workspace installers copy members into node_modules), so detection // reads the workspace ROOT's "workspaces" globs instead. The member is // UNTYPED: its implicit-any module error (the import-site 7016) must - // never gate — the package is the program author's own workspace code — - // and the flagless build reports the same island-capable per-package - // attribution the symlinked twin gets. + // never gate. Package-specific diagnostics retain the workspace attribution. test("a copied workspace member classifies identically to a symlinked one", () => { const { coverage } = analyze(join(fixturesRoot, "npm/cases/workspace-copied/main.ts")); expect(coverage.preflightFailed).toBe(false); diff --git a/tests/harness/npm-typescript.test.ts b/tests/harness/npm-typescript.test.ts deleted file mode 100644 index f9d5f68bb..000000000 --- a/tests/harness/npm-typescript.test.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { execFile } from "node:child_process"; -import { cpSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; -import { tmpdir } from "node:os"; -import { join } from "node:path"; -import { promisify } from "node:util"; -import { compile } from "@scriptc/compiler"; -import { expect, test } from "vitest"; - -const execFileAsync = promisify(execFile); -const root = join(import.meta.dirname, "../.."); -const fixtures = join(root, "tests/fixtures/npm"); -const entry = join(fixtures, "typescript/main.ts"); -const sanitize = process.env["SCRIPTC_SAN"] === "1"; - -test("embedded TypeScript packages match Node type stripping outside node_modules", async () => { - const dir = mkdtempSync(join(tmpdir(), "scriptc-typescript-runtime-")); - try { - writeFileSync(join(dir, "package.json"), '{"type":"module"}'); - // Node refuses TypeScript under node_modules. Copy the identical source - // bytes into a regular module scope for its built-in stripping oracle. - cpSync(join(fixtures, "node_modules/tsruntime"), join(dir, "runtime"), { recursive: true }); - const reference = join(dir, "reference.ts"); - writeFileSync( - reference, - readFileSync(entry, "utf8") - .replace('"tsruntime"', '"./runtime/index.ts"') - .replace('"tsruntime/common"', '"./runtime/common.cts"'), - ); - const built = await compile(entry, { - outDir: dir, - outPath: join(dir, "program"), - dynamic: true, - sanitize, - }); - if (!built.ok) - throw new Error(built.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); - const [node, native] = await Promise.all([ - execFileAsync(process.execPath, [reference], { encoding: "utf8" }), - execFileAsync(built.binaryPath, [], { encoding: "utf8" }), - ]); - expect(native.stdout).toBe(node.stdout); - expect(native.stdout).toBe( - "type-specifier-side-effect\nunused-import-side-effect\ntype-export-side-effect\n42:42:7\n", - ); - expect(node.stderr).toBe(""); - expect( - sanitize - ? native.stderr.replace( - /^==\d+==WARNING: ASan doesn't fully support makecontext\/swapcontext functions and may produce false positives in some cases!\n/gm, - "", - ) - : native.stderr, - ).toBe(""); - } finally { - rmSync(dir, { recursive: true, force: true }); - } -}, 120_000); diff --git a/tests/harness/npm.test.ts b/tests/harness/npm.test.ts deleted file mode 100644 index 488c8df31..000000000 --- a/tests/harness/npm.test.ts +++ /dev/null @@ -1,214 +0,0 @@ -/* npm imports under --dynamic: every fixture program under - * tests/fixtures/npm/cases (plus the commander acceptance fixture) runs - * under Node AND as a scriptc-compiled binary; stdout must match - * byte-for-byte and exit codes must agree — the differential contract, - * extended with argv (CLI packages parse process.argv). - * - * The fixture node_modules are COMMITTED TEST DATA (hand-made minimal - * packages exercising ESM/CJS/dual/scoped/JSON resolution, and a pinned - * real commander for the acceptance CLI). Binaries embed the package - * sources at build time — nothing here reads node_modules at runtime. - * - * SCRIPTC_SAN=1 rebuilds everything with ASan + the runtime RC audit; the - * island's counting allocator asserts zero live engine allocations at - * teardown. - */ -import { execFile } from "node:child_process"; -import { createHash } from "node:crypto"; -import { globSync, mkdirSync, readFileSync, realpathSync } from "node:fs"; -import { join } from "node:path"; -import { promisify } from "node:util"; -import { describe, expect, test } from "vitest"; -import { compile } from "@scriptc/compiler"; -import { npmCases } from "./npm-cases.js"; -import { shardSelect, shardSuffix } from "./shard.js"; - -const execFileAsync = promisify(execFile); -const repoRoot = join(import.meta.dirname, "../.."); -const fixturesRoot = join(repoRoot, "tests/fixtures"); -const cacheDir = join(repoRoot, "node_modules/.cache/scriptc-tests"); -const sanitize = process.env["SCRIPTC_SAN"] === "1"; - -// The case table lives in npm-cases.ts: the Linux lane runs the identical -// cases (same entries, same argv lists) inside its container. The shard -// split (SCRIPTC_TEST_SHARD, CI's matrix) is applied HERE, not in the -// table, so that lane keeps its full list. -const cases = shardSelect(npmCases(fixturesRoot), (c) => c.name); - -interface RunResult { - stdout: Buffer; - stderr: Buffer; - exitCode: number; -} - -function programStderr(stderr: Buffer): Buffer { - if (!sanitize) return stderr; - // Linux ASan emits this instrumentation warning at the first fiber swap. - // Latin-1 preserves every other byte, including non-UTF-8 program output. - return Buffer.from( - stderr - .toString("latin1") - .replace( - /^==\d+==WARNING: ASan doesn't fully support makecontext\/swapcontext functions and may produce false positives in some cases!\n/gm, - "", - ), - "latin1", - ); -} - -async function runBinary(cmd: string, args: string[]): Promise { - try { - // stdin closes immediately (differential.test.ts's contract): fixture - // programs may read fd 0 to EOF (process.stdin is a real Readable in - // the island now), and a default open pipe would hang both lanes. - const pending = execFileAsync(cmd, args, { encoding: "buffer" }); - pending.child.stdin?.end(); - const { stdout, stderr } = await pending; - return { stdout, stderr, exitCode: 0 }; - } catch (err) { - const e = err as { code?: unknown; stdout?: Buffer; stderr?: Buffer }; - if (typeof e.code !== "number" || !Buffer.isBuffer(e.stdout) || !Buffer.isBuffer(e.stderr)) - throw err; - return { stdout: e.stdout, stderr: e.stderr, exitCode: e.code }; - } -} - -/** Compile once per (entry, lane); the cache key hashes the program AND - * the fixture packages so edits to either rebuild. */ -async function build(entry: string): Promise { - const hash = createHash("sha256"); - const inputs = [ - entry, - ...globSync(join(fixturesRoot, "**/node_modules/**/*.{js,mjs,cjs,json,d.ts,node}")).sort(), - ]; - for (const f of inputs) hash.update(f).update(readFileSync(f)); - const key = hash - .update(sanitize ? "san" : "plain") - .digest("hex") - .slice(0, 16); - const outDir = join(cacheDir, `npm-${key}`); - mkdirSync(outDir, { recursive: true }); - // Deliberately NO backend pin: this suite rides the release default. - // Embedded npm tables are production LLVM surface; this differential - // keeps package resolution, compressed source storage, and island/runtime - // boundaries covered through the backend that ships. - const result = await compile(entry, { - outPath: join(outDir, "program"), - outDir, - sanitize, - dynamic: true, - }); - if (!result.ok) { - throw new Error( - "npm fixture failed to compile:\n" + - result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n"), - ); - } - return result.binaryPath; -} - -describe(`typed-callback boundary (scriptc-only${sanitize ? ", sanitized" : ""})`, () => { - test("DNS promises imports load and network queries reject at the call", async () => { - const binary = await build(join(fixturesRoot, "npm/divergent/dns-promises.ts")); - const res = await runBinary(binary, []); - expect(res.stdout.toString("utf8")).toBe( - "lookup:ENOTFOUND:lookup:node:dns 'lookup' is not supported in the scriptc island yet\n" + - "resolve4:ENOTFOUND:resolve4:node:dns 'resolve4' is not supported in the scriptc island yet\n", - ); - expect(res.exitCode).toBe(0); - }, 120_000); - - // The one deliberate DIVERGENCE at the typed-callback boundary: a package - // argument the declared param type refuses becomes a TypeError thrown - // back into the island before the body runs (Node would run the body - // with the lie) — so this program is asserted directly, never - // differentially. SEMANTICS.md documents it with the dyn→static edges. - test("a lying engine argument throws a TypeError into the package", async () => { - const binary = await build(join(fixturesRoot, "npm/divergent/main.ts")); - const res = await runBinary(binary, []); - expect(res.stdout.toString("utf8")).toBe( - "caught:true:expected number, got string\n" + - "caught:true:expected object at $, got number\n", - ); - expect(res.exitCode).toBe(0); - }, 120_000); - - // The lazy-builtin trap (the divergent third of the lazy edge semantics - // lazy-traps pins differentially): a require() of an unshimmed Node - // BUILTIN — esbundled's __require("net") — builds fine (the lazy edge - // embeds pointing at the refused node: key) and throws the island's own - // error AT THE CALL. Node would LOAD core net here, so this program - // is asserted directly, never differentially. - test("require of an unshimmed builtin throws the island's lazy error at the call", async () => { - const binary = await build(join(fixturesRoot, "npm/divergent/lazybuiltin.ts")); - const res = await runBinary(binary, []); - expect(res.stdout.toString("utf8")).toBe( - "the island does not provide the 'node:http2' builtin\n", - ); - expect(res.exitCode).toBe(0); - }, 120_000); - - // The native-addon trap (the .node sibling of the lazy-builtin trap): - // a napi-style package's require of its .node binding embeds a throwing - // ERR_DLOPEN_FAILED stub, never the addon's machine code. Node dlopens - // the garbage fixture and fails with a PLATFORM-worded message, so the - // shape probes would agree differentially but the message probe cannot — - // asserted directly. Pins: the code, the retry (a throwing module leaves - // no cache entry), ".node" in the require extension candidates, and the - // island's exact message. - test("require of a .node native addon throws ERR_DLOPEN_FAILED at the call", async () => { - const binary = await build(join(fixturesRoot, "npm/divergent/nativeaddon.ts")); - const res = await runBinary(binary, []); - const addonKey = realpathSync(join(fixturesRoot, "npm/node_modules/nativezoo/addon.node")); - expect(res.stdout.toString("utf8")).toBe( - "caught:true:ERR_DLOPEN_FAILED\n" + - "caught:true:ERR_DLOPEN_FAILED\n" + - "caught:true:ERR_DLOPEN_FAILED\n" + - `Cannot load native addon '${addonKey}': scriptc binaries cannot load .node addons (the island has no process.dlopen)\n`, - ); - expect(res.exitCode).toBe(0); - }, 120_000); - - // The island's WebAssembly is a THROWING STUB (SEMANTICS.md): Node has a - // real wasm engine, so this surface is asserted directly, never - // differentially. The promise-shaped members REJECT with the clear - // message (the real API's shape — invalid bytes reject, never throw - // synchronously — so top-level `WebAssembly.compile(...)` module - // evaluation stays lazy exactly as under Node: es-module-lexer's - // `export const init`, undici's lazyllhttp), the error classes are real - // Error subclasses (Emscripten's abort path constructs a working - // RuntimeError), and validate() answers false. - test("WebAssembly is a rejecting stub with real error classes", async () => { - const binary = await build(join(fixturesRoot, "npm/divergent/wasm.ts")); - const res = await runBinary(binary, []); - expect(res.stdout.toString("utf8")).toBe( - "WebAssembly.instantiate is not supported in scriptc binaries (the embedded engine has no wasm runtime)\n" + - "true|RuntimeError|Aborted(Error: boom)\n" + - "false\n", - ); - expect(res.exitCode).toBe(0); - }, 120_000); -}); - -describe(`npm differential (${cases.length} programs${sanitize ? ", sanitized" : ""}${shardSuffix()})`, () => { - test.for(cases.map((c) => [c.name, c] as const))( - "%s", - async ([, c]) => { - const binary = await build(c.entry); - for (const argv of c.argvs ?? [[]]) { - const [nodeRes, nativeRes] = await Promise.all([ - runBinary("node", [c.entry, ...argv]), - runBinary(binary, argv), - ]); - const label = argv.join(" "); - if (!nodeRes.stdout.equals(nativeRes.stdout)) { - expect(nativeRes.stdout.toString("utf8"), label).toBe(nodeRes.stdout.toString("utf8")); - expect.unreachable("stdout differed at byte level but not after utf8 decode"); - } - expect(nativeRes.exitCode, label).toBe(nodeRes.exitCode); - if (c.compareStderr) expect(programStderr(nativeRes.stderr), label).toEqual(nodeRes.stderr); - } - }, - 120_000, - ); -}); diff --git a/tests/harness/opaque-class-view.test.ts b/tests/harness/opaque-class-view.test.ts index 777b9b9c3..d5b924da6 100644 --- a/tests/harness/opaque-class-view.test.ts +++ b/tests/harness/opaque-class-view.test.ts @@ -15,7 +15,6 @@ for (const backend of ["llvm"] as const) { join(import.meta.dirname, "../fixtures/self-hosting/opaque-class-view.ts"), { backend, - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", optimization: "dev", outDir: dir, diff --git a/tests/harness/opentui-native.mts b/tests/harness/opentui-native.mts index 3a1173213..31ed39d40 100644 --- a/tests/harness/opentui-native.mts +++ b/tests/harness/opentui-native.mts @@ -55,7 +55,6 @@ writeFileSync( for (const backend of ["llvm"] as const) { const result = await compile(join(fixtures, "native.ts"), { backend, - dynamic: false, outDir: join(out, backend), outPath: join(out, `opentui-${backend}`), ffiProfilePath: profile, diff --git a/tests/harness/prettier-e2e.test.ts b/tests/harness/prettier-e2e.test.ts deleted file mode 100644 index 1802d5d78..000000000 --- a/tests/harness/prettier-e2e.test.ts +++ /dev/null @@ -1,358 +0,0 @@ -/* prettier CLI end-to-end: the REAL published prettier (the `prettier` - * npm package, unmodified) runs its actual CLI workflows under Node - * (bin/prettier.cjs — the acceptance oracle) AND as a scriptc --dynamic - * binary; stdout, stderr, exit codes, and every written file's bytes - * must agree. The driver imports the package's own CLI module - * (internal/legacy-cli.mjs, exported via the package's "./*" pattern) - * and calls run() — exactly what bin/prettier.cjs does after its - * please-upgrade-node preamble. The whole package executes in the - * island; the acceptance surface leans on the island's fs (config - * discovery walks, --write), process.stdin (the get-stdin path), argv, - * exit codes, and the v8 startupSnapshot probe prettier's bundled error - * helpers make on every start. - * - * No network: prettier's CLI is fully offline (no update checks, no - * telemetry), so there is no jail — nothing to escape to. - * - * SETUP (the suite SKIPS when the scratch install is absent): - * mkdir -p ~/Developer/prettier-scratch && cd ~/Developer/prettier-scratch - * npm init -y && npm i prettier@3.9.5 - * SCRIPTC_PRETTIER_ROOT overrides the location. No output snapshots are - * committed — every assertion is Node-vs-native at run time — so a newer - * prettier keeps the suite honest as long as both lanes share the install. - * - * NORMALIZATIONS (both lanes, byte-exact otherwise): the per-file elapsed - * "12ms" → "" in --write/--check listings (wall-clock), and the lane - * cwd → "". --file-info compares parsed JSON structurally (the - * documented object key-order divergence, SEMANTICS 16/37). */ -import { spawn } from "node:child_process"; -import { createHash } from "node:crypto"; -import { - existsSync, - globSync, - mkdirSync, - mkdtempSync, - readFileSync, - readdirSync, - realpathSync, - rmSync, - statSync, - symlinkSync, - writeFileSync, -} from "node:fs"; -import { homedir, tmpdir } from "node:os"; -import { join } from "node:path"; -import { afterAll, beforeAll, describe, expect, test } from "vitest"; -import { compile } from "@scriptc/compiler"; - -const repoRoot = join(import.meta.dirname, "../.."); -const cacheDir = join(repoRoot, "node_modules/.cache/scriptc-tests"); -const sanitize = process.env["SCRIPTC_SAN"] === "1"; -const executionTag = [ - sanitize ? "san" : "plain", - process.env["SCRIPTC_TEST_RUN_ID"] ?? `pid-${process.pid}`, - process.env["SCRIPTC_TEST_SHARD"] ?? "all", -] - .join("-") - .replace(/[^a-zA-Z0-9_.-]+/g, "-"); - -const prettierRoot = - process.env["SCRIPTC_PRETTIER_ROOT"] ?? join(homedir(), "Developer/prettier-scratch"); -const prettierPkg = join(prettierRoot, "node_modules/prettier"); -const cliEntry = join(prettierPkg, "internal/legacy-cli.mjs"); -const binEntry = join(prettierPkg, "bin/prettier.cjs"); -const havePrettier = existsSync(cliEntry) && existsSync(binEntry); - -let driverBinary = ""; -let driverDir = ""; -let driverOutDir = ""; - -/* ── driver generation + build ───────────────────────────────────────── */ - -const DRIVER_ENTRY = `/// -import { run } from "prettier/internal/legacy-cli.mjs"; - -async function main(): Promise { - await run(); -} -void main(); -`; - -/** The CLI module ships no declarations (the package's types cover the - * API entry only); this ambient module is the driver's whole type - * surface for it. */ -const DRIVER_AMBIENT = `declare module "prettier/internal/legacy-cli.mjs" { - export function run(argv?: string[]): Promise; -} -`; - -const DRIVER_TSCONFIG = JSON.stringify( - { - compilerOptions: { - target: "ESNext", - module: "ESNext", - moduleResolution: "bundler", - strict: true, - esModuleInterop: true, - skipLibCheck: true, - resolveJsonModule: true, - allowJs: true, - }, - }, - null, - 2, -); - -function hashInputs(): string { - const hash = createHash("sha256"); - hash.update(DRIVER_ENTRY).update(DRIVER_AMBIENT).update(DRIVER_TSCONFIG); - const inputs = [...globSync(join(prettierPkg, "**/*.{js,cjs,mjs,json}"))].sort(); - for (const f of inputs) hash.update(f).update(readFileSync(f)); - return hash - .update(sanitize ? "san" : "plain") - .digest("hex") - .slice(0, 16); -} - -async function buildDriver(): Promise { - // realpath: macOS's tmpdir is a symlink (/var → /private/var), and Node - // resolves the entry at its REAL path. - driverDir = join(realpathSync(tmpdir()), `scriptc-prettier-e2e-driver-${executionTag}`); - rmSync(driverDir, { recursive: true, force: true }); - mkdirSync(driverDir, { recursive: true }); - writeFileSync(join(driverDir, "main.ts"), DRIVER_ENTRY); - writeFileSync(join(driverDir, "prettier-cli.d.ts"), DRIVER_AMBIENT); - writeFileSync(join(driverDir, "tsconfig.json"), DRIVER_TSCONFIG); - writeFileSync( - join(driverDir, "package.json"), - JSON.stringify({ name: "prettier-e2e-driver", type: "module" }), - ); - // The bare "prettier/…" specifier resolves through the scratch install. - symlinkSync(join(prettierRoot, "node_modules"), join(driverDir, "node_modules")); - const key = hashInputs(); - driverOutDir = join(cacheDir, `prettier-e2e-${key}-${executionTag}`); - const binary = join(driverOutDir, "program"); - mkdirSync(driverOutDir, { recursive: true }); - const result = await compile(join(driverDir, "main.ts"), { - outPath: binary, - outDir: driverOutDir, - sanitize, - dynamic: true, - }); - if (!result.ok) { - throw new Error( - "prettier e2e driver failed to compile:\n" + - result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n"), - ); - } - return binary; -} - -/* ── the two lanes ───────────────────────────────────────────────────── */ - -interface LaneResult { - stdout: Buffer; - stderr: Buffer; - code: number | null; - signal: NodeJS.Signals | null; - cwd: string; -} - -interface RunOptions { - /** Piped into the child and closed; omitted → closed immediately. */ - stdin?: string; - /** name → content, written into the lane's scratch cwd before spawning. */ - files?: Record; -} - -function runLane( - cmd: string, - cmdArgs: string[], - args: string[], - opts: RunOptions, -): Promise { - const cwd = mkdtempSync(join(tmpdir(), "scr-prettier-e2e-")); - const home = join(cwd, "scratch-home"); - mkdirSync(home); - for (const [name, content] of Object.entries(opts.files ?? {})) { - writeFileSync(join(cwd, name), content); - } - // Minimal env, built from scratch: a scratch HOME (config/editorconfig - // discovery walks up from the input file and stops inside the scratch - // cwd's tmpdir anyway, but a clean HOME keeps ~/.config/prettier out), - // NO_COLOR for both lanes, and Node's compile cache off so the oracle - // leaves the scratch install pristine. - const env: NodeJS.ProcessEnv = { - PATH: process.env["PATH"], - HOME: home, - TZ: "UTC", - NO_COLOR: "1", - NODE_DISABLE_COMPILE_CACHE: "1", - }; - return new Promise((resolve, reject) => { - const p = spawn(cmd, [...cmdArgs, ...args], { cwd, env, stdio: ["pipe", "pipe", "pipe"] }); - const out: Buffer[] = []; - const err: Buffer[] = []; - p.stdout.on("data", (c: Buffer) => out.push(c)); - p.stderr.on("data", (c: Buffer) => err.push(c)); - if (opts.stdin === undefined) p.stdin.end(); - else p.stdin.end(opts.stdin); - p.on("error", reject); - p.on("close", (code, signal) => { - resolve({ stdout: Buffer.concat(out), stderr: Buffer.concat(err), code, signal, cwd }); - }); - }); -} - -function normalize(buf: Buffer, cwd: string): string { - let text = buf - .toString("utf8") - .replaceAll(cwd, "") - .replace(/ \d+ms/g, " "); - if (sanitize) { - text = text - .replace(/==\d+==WARNING: ASan is ignoring requested __asan_handle_no_return[^\n]*\n/g, "") - .replace(/False positive error reports may follow\n/g, "") - .replace(/For details see https:\/\/github\.com\/google\/sanitizers\/issues\/189\n/g, ""); - } - return text; -} - -/** Every file under the lane cwd (the scratch HOME excluded): relative - * name → bytes. Pins --write's output files. */ -function filesOf(cwd: string): Map { - const map = new Map(); - const walk = (dir: string, prefix: string): void => { - for (const name of readdirSync(dir).sort()) { - if (prefix === "" && name === "scratch-home") continue; - const full = join(dir, name); - const rel = prefix === "" ? name : `${prefix}/${name}`; - if (statSync(full).isDirectory()) walk(full, rel); - else map.set(rel, readFileSync(full)); - } - }; - walk(cwd, ""); - return map; -} - -async function runBoth( - args: string[], - opts: RunOptions = {}, -): Promise<{ node: LaneResult; native: LaneResult }> { - const [nodeRes, nativeRes] = await Promise.all([ - runLane(process.execPath, [binEntry], args, opts), - runLane(driverBinary, [], args, opts), - ]); - const label = args.join(" "); - try { - if (args.includes("--file-info")) { - expect( - JSON.parse(normalize(nativeRes.stdout, nativeRes.cwd)), - `parsed --file-info stdout of: ${label}`, - ).toEqual(JSON.parse(normalize(nodeRes.stdout, nodeRes.cwd))); - } else { - expect(normalize(nativeRes.stdout, nativeRes.cwd), `stdout of: ${label}`).toBe( - normalize(nodeRes.stdout, nodeRes.cwd), - ); - } - expect(normalize(nativeRes.stderr, nativeRes.cwd), `stderr of: ${label}`).toBe( - normalize(nodeRes.stderr, nodeRes.cwd), - ); - expect(nativeRes.code, `exit code of: ${label}`).toBe(nodeRes.code); - expect(nativeRes.signal, `signal of: ${label}`).toBe(nodeRes.signal); - const nodeFiles = filesOf(nodeRes.cwd); - const nativeFiles = filesOf(nativeRes.cwd); - expect([...nativeFiles.keys()], `files of: ${label}`).toEqual([...nodeFiles.keys()]); - for (const [name, bytes] of nodeFiles) { - expect(nativeFiles.get(name)!.equals(bytes), `bytes of ${name} for: ${label}`).toBe(true); - } - } finally { - rmSync(nodeRes.cwd, { recursive: true, force: true }); - rmSync(nativeRes.cwd, { recursive: true, force: true }); - } - return { node: nodeRes, native: nativeRes }; -} - -/* ── sample sources (deliberately unformatted) ───────────────────────── */ - -const SAMPLE_JS = "const x={a:1,b:[1,2,3],c:'str'}\nfunction f( a,b ){return a+ b}\n"; -const SAMPLE_TS = - "interface X{a:number,b:string[]}\nconst f=(x:X):string=>{return x.b.join(',')+String(x.a)}\nexport{f}\n"; -const SAMPLE_JSON = '{"b":2,"a":[1,2, 3],"c":{"d":null}}'; -const SAMPLE_MD = "# title\n\nsome *text* and a [link](http://x.example)\n\n* a\n* b\n"; -const SAMPLE_CSS = ".cls{color:red;margin:0 0 0 0}\n#id , .other{display:flex}\n"; -const SAMPLE_YAML = "a: 1\nlist:\n - x\n - 'y'\n"; -const FORMATTED_JS = 'const x = { a: 1, b: [1, 2, 3], c: "str" };\n'; -const BROKEN_JS = "const = {;\n"; - -/* ── the suite ───────────────────────────────────────────────────────── */ - -describe.skipIf(!havePrettier)( - `prettier e2e (real published CLI vs Node${sanitize ? ", sanitized" : ""})`, - () => { - beforeAll(async () => { - driverBinary = await buildDriver(); - }, 300_000); - - afterAll(() => { - rmSync(driverDir, { recursive: true, force: true }); - rmSync(driverOutDir, { recursive: true, force: true }); - }); - - test("version, help, and usage errors", async () => { - await runBoth(["--version"]); - await runBoth(["--help"]); - await runBoth(["--help", "write"]); - await runBoth(["--bogus-flag"]); // unknown option + no input: exit 2 - await runBoth(["nonexistent.js"]); // no matching files: exit 2 - }); - - test("formatting to stdout across parsers", async () => { - await runBoth(["--parser=babel", "sample.js"], { files: { "sample.js": SAMPLE_JS } }); - await runBoth(["sample.ts"], { files: { "sample.ts": SAMPLE_TS } }); - await runBoth(["sample.json"], { files: { "sample.json": SAMPLE_JSON } }); - await runBoth(["sample.md"], { files: { "sample.md": SAMPLE_MD } }); - await runBoth(["sample.css"], { files: { "sample.css": SAMPLE_CSS } }); - await runBoth(["sample.yaml"], { files: { "sample.yaml": SAMPLE_YAML } }); - }); - - test("check, list-different, and write", async () => { - await runBoth(["--check", "formatted.js"], { files: { "formatted.js": FORMATTED_JS } }); // exit 0 - await runBoth(["--check", "sample.js"], { files: { "sample.js": SAMPLE_JS } }); // exit 1 - await runBoth(["--list-different", "sample.js"], { files: { "sample.js": SAMPLE_JS } }); - await runBoth(["--write", "sample.js"], { files: { "sample.js": SAMPLE_JS } }); // rewrites in place - await runBoth(["--write", "formatted.js"], { files: { "formatted.js": FORMATTED_JS } }); // "(unchanged)" - }); - - test("stdin formatting", async () => { - await runBoth(["--parser=babel"], { stdin: SAMPLE_JS }); - await runBoth(["--stdin-filepath", "foo.ts"], { stdin: SAMPLE_TS }); - await runBoth(["--parser=json"], { stdin: SAMPLE_JSON }); - await runBoth(["--parser=babel"], { stdin: "" }); // empty stdin: empty doc out - }); - - test("options, config discovery, and file-info", async () => { - await runBoth(["--no-semi", "--single-quote", "sample.js"], { - files: { "sample.js": SAMPLE_JS }, - }); - await runBoth(["--tab-width", "7", "sample.js"], { files: { "sample.js": SAMPLE_JS } }); - // .prettierrc in the lane cwd: the island's fs walks and finds it. - await runBoth(["sample.js"], { - files: { "sample.js": SAMPLE_JS, ".prettierrc": '{ "semi": false, "singleQuote": true }' }, - }); - await runBoth(["--no-config", "sample.js"], { - files: { "sample.js": SAMPLE_JS, ".prettierrc": '{ "semi": false }' }, - }); - await runBoth(["--find-config-path", "sample.js"], { - files: { "sample.js": SAMPLE_JS, ".prettierrc": "{}" }, - }); - await runBoth(["--file-info", "sample.js"], { files: { "sample.js": SAMPLE_JS } }); - }); - - test("parse errors and exit codes", async () => { - await runBoth(["broken.js"], { files: { "broken.js": BROKEN_JS } }); // syntax error: exit 2 - await runBoth(["--check", "broken.js"], { files: { "broken.js": BROKEN_JS } }); - await runBoth(["--parser=babel"], { stdin: BROKEN_JS }); // stdin syntax error - }); - }, -); diff --git a/tests/harness/process-argv.test.ts b/tests/harness/process-argv.test.ts index f1756face..9576c0e2c 100644 --- a/tests/harness/process-argv.test.ts +++ b/tests/harness/process-argv.test.ts @@ -22,14 +22,13 @@ const args = [ ]; for (const backend of ["llvm"] as const) { - test(`island process.argv preserves Unicode, quoting, empty values and identity (${backend})`, async () => { + test(`native process.argv preserves Unicode, quoting, empty values and identity (${backend})`, async () => { const dir = mkdtempSync( - join(process.platform === "win32" ? tmpdir() : "/tmp", "scriptc-argv-island-"), + join(process.platform === "win32" ? tmpdir() : "/tmp", "scriptc-argv-native-"), ); try { const built = await compile(entry, { backend, - dynamic: true, sanitize: process.env["SCRIPTC_SAN"] === "1", optimization: "dev", outDir: dir, diff --git a/tests/harness/project-config.test.ts b/tests/harness/project-config.test.ts index 0be93c850..c3c689c58 100644 --- a/tests/harness/project-config.test.ts +++ b/tests/harness/project-config.test.ts @@ -318,7 +318,6 @@ test("node-types: global and node:util codec instances share the stored native r outPath: join(outDir, "text-codecs"), outDir, sanitize, - dynamic: false, }); expect(result.ok, !result.ok ? JSON.stringify(result.diagnostics, null, 2) : "").toBe(true); if (!result.ok) return; @@ -337,7 +336,6 @@ test("node-types: imported console methods share native output formatting", asyn outPath: join(outDir, "console-imports"), outDir, sanitize, - dynamic: false, }); expect(result.ok, !result.ok ? JSON.stringify(result.diagnostics, null, 2) : "").toBe(true); if (!result.ok) return; diff --git a/tests/harness/provenance.test.ts b/tests/harness/provenance.test.ts index ad4852b72..e7bbc4672 100644 --- a/tests/harness/provenance.test.ts +++ b/tests/harness/provenance.test.ts @@ -1,16 +1,3 @@ -/* --provenance-sources (EXPERIMENTAL): the provenance-assisted static - * compilation pipeline, offline — the fixture manifest - * (SCRIPTC_PROVENANCE_MANIFEST) stands in for the live attestation + - * source fetch, so these tests exercise everything AFTER the network: - * source-entry mapping, the registry chokepoints (preflight edges, tsgo - * "paths", the npm-import bypass), the @__PURE__ dead-const elision, the - * per-package attribution, and the island fallback notes. - * - * The differential contract is the thesis itself: the binary compiled - * from the ATTESTED SOURCE (static, no island) must byte-match the - * binary island-running the PUBLISHED dist — and both must byte-match - * Node running the published package. - */ import { execFile } from "node:child_process"; import { mkdirSync } from "node:fs"; import { join } from "node:path"; @@ -35,13 +22,10 @@ const outDir = join(repoRoot, "node_modules/.cache/scriptc-tests/provenance", fl const EXPECTED = "hello, world\nHELLO, COMPILER!\nhello, chain!\n"; -async function buildAndRun(name: string, dynamic: boolean, program = entry): Promise { +async function buildAndRun(name: string, program = entry): Promise { mkdirSync(outDir, { recursive: true }); const outPath = join(outDir, name); - // Pinned: the provenance thesis compares a source-static binary against - // a dist-island binary — holding both on the C lane keeps that byte - // comparison about PROVENANCE, never about which backend each build drew. - const result = await compile(program, { outPath, outDir, dynamic, backend: "llvm" }); + const result = await compile(program, { outPath, outDir, backend: "llvm" }); if (!result.ok) { throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); } @@ -55,15 +39,11 @@ afterEach(() => { }); describe("provenance sources", () => { - test("attested source compiles STATIC and byte-matches the island's published dist", async () => { - // Flag off: the published dist embeds in the island (--dynamic). - const island = await buildAndRun("greet-island", true); - expect(island).toBe(EXPECTED); + test("attested source compiles natively and byte-matches the published dist under Node", async () => { + const node = await execFileAsync(process.execPath, [entry], { encoding: "utf8" }); + expect(node.stdout).toBe(EXPECTED); - // Flag on: the manifest maps greeter to its source tree; the driver - // compiles WITHOUT --dynamic — possible only because the source - // became program modules (a bare npm import would fence a static - // build), which IS the assertion that nothing islanded. + // The manifest maps greeter to its source tree and compiles it as program modules. process.env["SCRIPTC_PROVENANCE_MANIFEST"] = join(fixtureDir, "manifest.json"); const sources = await resolveProvenanceSources(entry); expect(sources.packages).toHaveLength(1); @@ -72,8 +52,8 @@ describe("provenance sources", () => { expect(pkg.version).toBe("1.2.3"); expect(pkg.entries["greeter"]).toMatch(/attested-src\/greeter\/src\/index\.ts$/); setProvenanceSources(sources); - const fromSource = await buildAndRun("greet-static", false); - expect(fromSource).toBe(island); + const fromSource = await buildAndRun("greet-static"); + expect(fromSource).toBe(node.stdout); }); test("maps a published dist/esm subpath to its unmodified TypeScript source", async () => { @@ -85,7 +65,7 @@ describe("provenance sources", () => { /attested-src\/greeter\/src\/echo\.ts$/, ); setProvenanceSources(sources); - expect(await buildAndRun("echo-static", false, subpathEntry)).toBe(node.stdout); + expect(await buildAndRun("echo-static", subpathEntry)).toBe(node.stdout); }); test("per-package attribution counts the source static; the @__PURE__ dead const elides", async () => { @@ -105,20 +85,18 @@ describe("provenance sources", () => { expect(srcStats.length).toBeGreaterThan(0); for (const [, s] of srcStats) { expect(s.failed).toBe(0); - expect(s.island).toBe(0); } }); - test("an unmappable package falls back to the island with a note, never a failure", async () => { + test("an unmappable source reports a note and uses native package resolution", async () => { process.env["SCRIPTC_PROVENANCE_MANIFEST"] = join(fixtureDir, "manifest-broken.json"); const sources = await resolveProvenanceSources(entry); expect(sources.packages).toHaveLength(0); expect(sources.notes).toHaveLength(1); expect(sources.notes[0]).toContain("greeter"); - expect(sources.notes[0]).toContain("island path used"); + expect(sources.notes[0]).toContain("published package resolution used"); setProvenanceSources(sources); - // The island path still works under the flag — the fallback contract. - const island = await buildAndRun("greet-fallback", true); - expect(island).toBe(EXPECTED); + + expect(await buildAndRun("greet-published")).toBe(EXPECTED); }); }); diff --git a/tests/harness/regex.test.ts b/tests/harness/regex.test.ts index 97e24080a..106e06465 100644 --- a/tests/harness/regex.test.ts +++ b/tests/harness/regex.test.ts @@ -87,9 +87,9 @@ console.log(/${"(a)".repeat(300)}/.test("a")); async () => { // Measured on plain (non-ASan) builds. A regex-free program's C names // no ScrRegex symbol, so its link line is the historical one (the - // compact static size class is pinned by island.test.ts). A regex-USING + // binary links libregexp + libunicode, but must stay far below the - // embedded-engine size class. + const [plainBuild, regexBuild] = await Promise.all([ build("size-plain", `console.log("hello", "world");\n`, { sanitize: false }), build( diff --git a/tests/harness/runtime-resolver.test.ts b/tests/harness/runtime-resolver.test.ts index 59eea7174..8d5d2af4e 100644 --- a/tests/harness/runtime-resolver.test.ts +++ b/tests/harness/runtime-resolver.test.ts @@ -425,16 +425,14 @@ for (const backend of ["llvm"] as const) { const requests = makeCases(directory); const input = join(directory, "requests.json"); writeFileSync(input, JSON.stringify(requests)); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); const built = await compile(entry, { outDir: directory, outPath: join(directory, process.platform === "win32" ? "resolver.exe" : "resolver"), backend, - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", }); if (!built.ok) diff --git a/tests/harness/self-hosting-backend-analysis.test.ts b/tests/harness/self-hosting-backend-analysis.test.ts index ff02ca6f7..8ccfc097e 100644 --- a/tests/harness/self-hosting-backend-analysis.test.ts +++ b/tests/harness/self-hosting-backend-analysis.test.ts @@ -66,7 +66,7 @@ test("the production optimization and backend analysis pipeline lowers entirely "--input-type=module", "--eval", `import { analyze } from ${JSON.stringify(sourceApi)}; - const { coverage } = analyze(process.argv[1], { dynamic: false }); + const { coverage } = analyze(process.argv[1], {}); console.log(JSON.stringify({ preflightFailed: coverage.preflightFailed, diagnostics: coverage.diagnostics, stats: coverage.stats }));`, entry, ], @@ -77,7 +77,6 @@ test("the production optimization and backend analysis pipeline lowers entirely expect(coverage.diagnostics).toEqual([]); expect(coverage.stats.statementsTotal).toBeGreaterThan(3800); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); }); @@ -94,7 +93,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: executable("stage"), backend, - dynamic: false, optimization: "dev", sanitize, }); @@ -145,7 +143,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: irPath, outputKind: "ir", - dynamic: false, }); if (!emitted.ok) throw new Error(emitted.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); diff --git a/tests/harness/self-hosting-class-types.test.ts b/tests/harness/self-hosting-class-types.test.ts index 367818dda..d47d7f444 100644 --- a/tests/harness/self-hosting-class-types.test.ts +++ b/tests/harness/self-hosting-class-types.test.ts @@ -16,7 +16,6 @@ test("native class type cleanup updates shared IR without dynamic snapshots", as outDir: directory, outPath: join(directory, "class-types" + (process.platform === "win32" ? ".exe" : "")), optimization: "dev", - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", }); if (!built.ok) throw new Error(JSON.stringify(built.diagnostics)); diff --git a/tests/harness/self-hosting-commonjs.test.ts b/tests/harness/self-hosting-commonjs.test.ts index 541aa300b..1c362a3d5 100644 --- a/tests/harness/self-hosting-commonjs.test.ts +++ b/tests/harness/self-hosting-commonjs.test.ts @@ -95,15 +95,13 @@ for (const backend of ["llvm"] as const) { libraries: [object], }), ); - const { coverage } = analyze(entry, { dynamic: false, ffiProfilePath: profile }); + const { coverage } = analyze(entry, { ffiProfilePath: profile }); expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.diagnostics).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); const built = await compile(entry, { backend, - dynamic: false, optimization: "dev", sanitize, ffiProfilePath: profile, diff --git a/tests/harness/self-hosting-emission-cases.ts b/tests/harness/self-hosting-emission-cases.ts index ad846d0c3..4ba6f63ea 100644 --- a/tests/harness/self-hosting-emission-cases.ts +++ b/tests/harness/self-hosting-emission-cases.ts @@ -289,10 +289,8 @@ export function emissionCases(): EmissionCase[] { add("undefined field initialization", nullable, ["@native_unit_0", "starts undefined"]); const dynField = emissionModule(); - dynField.classes = [ - { name: "Island", fields: [{ name: "value", type: { kind: "jsval" } }], loc }, - ]; - add("island field initialization", dynField, ["@scr_jsval_undefined", "@scr_jsval_release"]); + dynField.classes = [{ name: "Checked", fields: [{ name: "value", type: { kind: "dyn" } }], loc }]; + add("checked field initialization", dynField, ["@scr_dyn_undefined", "@scr_dyn_release"]); const emitter = emissionModule(); emitter.classes = [ diff --git a/tests/harness/self-hosting-emission.test.ts b/tests/harness/self-hosting-emission.test.ts index d245c136d..b6c8d52cb 100644 --- a/tests/harness/self-hosting-emission.test.ts +++ b/tests/harness/self-hosting-emission.test.ts @@ -55,12 +55,11 @@ interface Emission { } test("the production layout and metadata stage lowers statically", async () => { - const coverage = await analyzeInChild(entry, { dynamic: false }); + const coverage = await analyzeInChild(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics).toEqual([]); expect(coverage.stats.statementsTotal).toBeGreaterThan(1200); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); }); @@ -77,7 +76,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: executable("stage"), backend, - dynamic: false, optimization: "dev", sanitize, }); @@ -215,7 +213,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: irPath, outputKind: "ir", - dynamic: false, }); if (!frontend.ok) throw new Error(frontend.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); diff --git a/tests/harness/self-hosting-emitter-inputs.ts b/tests/harness/self-hosting-emitter-inputs.ts index 181f0a388..678732bf4 100644 --- a/tests/harness/self-hosting-emitter-inputs.ts +++ b/tests/harness/self-hosting-emitter-inputs.ts @@ -322,69 +322,6 @@ export function emitterInputCases(): EmitterInputCase[] { dictionary.functions[0]!.body = [effect({ kind: "mapNew", type: mapType, loc })]; add("typed map construction", dictionary); - const shortNpm = module(); - shortNpm.embedded = { - modules: [ - { key: "/node_modules/tiny/index.js", format: "esm", source: "export const n = 1;" }, - { key: "/node_modules/tiny/config.json", format: "json", source: '{"name":"π"}' }, - { key: "/node_modules/tiny/empty.js", format: "cjs", source: "", esm: "export default {};" }, - ], - edges: [ - { - from: "/node_modules/tiny/index.js", - specifier: "./config.json", - to: "/node_modules/tiny/config.json", - kind: "import", - }, - { from: "/node_modules/tiny/index.js", specifier: "node:path", to: "node:path", kind: "any" }, - ], - }; - add("uncompressed npm, JSON and CJS facade tables", shortNpm); - - const compressed = module(); - compressed.embedded = { - modules: [ - { - key: "/node_modules/large/index.js", - format: "cjs", - source: "exports.value = 'repeat π';\n".repeat(2000), - esm: "export const value = 'repeat π';\n".repeat(2000), - }, - ], - edges: [ - { - from: "/app/main.js", - specifier: "large", - to: "/node_modules/large/index.js", - kind: "require", - }, - { - from: "/app/main.js", - specifier: "large", - to: "/node_modules/large/index.js", - kind: "import", - }, - ], - }; - add("level-nine module and facade compression", compressed); - - const chunked = module(); - // A deterministic byte distribution prevents this source from being a - // single repeated run while forcing several source-literal chunks. - let state = 1; - let text = ""; - for (let i = 0; i < 12_000; i++) { - state = (Math.imul(state, 1664525) + 1013904223) >>> 0; - text += String.fromCharCode(32 + (state % 95)); - } - chunked.embedded = { - modules: [ - { key: "/node_modules/random/data.json", format: "json", source: JSON.stringify(text) }, - ], - edges: [], - }; - add("large source literal chunk boundaries", chunked); - const library = module(); library.lib = { profileName: "native-test", diff --git a/tests/harness/self-hosting-ffi-profile.test.ts b/tests/harness/self-hosting-ffi-profile.test.ts index a8ca37e68..b5bdc114a 100644 --- a/tests/harness/self-hosting-ffi-profile.test.ts +++ b/tests/harness/self-hosting-ffi-profile.test.ts @@ -29,10 +29,9 @@ const releaseContext = { context: "register:visit" }; const profile = (format: number, functions: unknown[]) => ({ ffi_format: format, functions }); test("the production FFI profile parser lowers entirely statically", () => { - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.stats.statementsFailed, JSON.stringify(coverage.diagnostics)).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); }); @@ -46,7 +45,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: join(dir, process.platform === "win32" ? "profile.exe" : "profile"), backend, - dynamic: false, optimization: "dev", sanitize: process.env["SCRIPTC_SAN"] === "1", }); diff --git a/tests/harness/self-hosting-frontend-collections.test.ts b/tests/harness/self-hosting-frontend-collections.test.ts index 62a54e759..66a1240b1 100644 --- a/tests/harness/self-hosting-frontend-collections.test.ts +++ b/tests/harness/self-hosting-frontend-collections.test.ts @@ -15,15 +15,13 @@ for (const backend of ["llvm"] as const) { join(process.platform === "win32" ? tmpdir() : "/tmp", "scriptc-frontend-collections-"), ); try { - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.diagnostics).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); const built = await compile(entry, { backend, - dynamic: false, optimization: "dev", sanitize, outDir: directory, diff --git a/tests/harness/self-hosting-frontend-lowering.test.ts b/tests/harness/self-hosting-frontend-lowering.test.ts index 708f5f8cf..e7223c0cc 100644 --- a/tests/harness/self-hosting-frontend-lowering.test.ts +++ b/tests/harness/self-hosting-frontend-lowering.test.ts @@ -34,7 +34,7 @@ test("the complete production frontend lowers with zero rejected statements", as if (preflight.length) throw new Error(JSON.stringify(preflight)); if (load.startupCrash) throw new Error(JSON.stringify(load.startupCrash)); const result = lowerToIr(load.program, load.entry, load.moduleOrder, { - dynamic: false, frontendServices: load.services, ffiImports: ffi.profile.functions, + frontendServices: load.services, ffiImports: ffi.profile.functions, }); console.log(JSON.stringify({ stats: result.stats, diagnostics: result.diagnostics, runtimeFences: result.runtimeFences, functions: result.module?.functions.length ?? 0, @@ -54,7 +54,6 @@ test("the complete production frontend lowers with zero rejected statements", as expect(result.runtimeFences).toEqual([]); expect(result.stats.statementsTotal).toBeGreaterThan(50_000); expect(result.stats.statementsFailed).toBe(0); - expect(result.stats.statementsIsland).toBe(0); expect(result.stats.functionsSkipped).toBe(0); expect(result.functions).toBeGreaterThan(1_000); expect(result.validation).toEqual([]); diff --git a/tests/harness/self-hosting-frontend-metadata.test.ts b/tests/harness/self-hosting-frontend-metadata.test.ts index bbbc3f21b..ae5a922a5 100644 --- a/tests/harness/self-hosting-frontend-metadata.test.ts +++ b/tests/harness/self-hosting-frontend-metadata.test.ts @@ -14,15 +14,13 @@ for (const backend of ["llvm"] as const) { join(process.platform === "win32" ? tmpdir() : "/tmp", "scriptc-frontend-metadata-"), ); try { - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.diagnostics).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); const built = await compile(entry, { backend, - dynamic: false, optimization: "dev", sanitize: process.env["SCRIPTC_SAN"] === "1", outDir: directory, diff --git a/tests/harness/self-hosting-frontend-program.test.ts b/tests/harness/self-hosting-frontend-program.test.ts index b3f0a6ce5..f4fc50f37 100644 --- a/tests/harness/self-hosting-frontend-program.test.ts +++ b/tests/harness/self-hosting-frontend-program.test.ts @@ -402,14 +402,12 @@ for (const backend of ["llvm"] as const) { verify(nodeReports); // Restore edits made by the Node run before starting the native client. writeFileSync(request, JSON.stringify(inputs(directory))); - const coverage = await analyzeInChild(entry, { dynamic: false, ffiProfilePath: profile }); + const coverage = await analyzeInChild(entry, { ffiProfilePath: profile }); expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.stats.statementsFailed, JSON.stringify(coverage.diagnostics)).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); const built = await compileInChild(entry, { backend, - dynamic: false, optimization: "dev", sanitize, ffiProfilePath: profile, diff --git a/tests/harness/self-hosting-frontend-services.test.ts b/tests/harness/self-hosting-frontend-services.test.ts index d294f5cdd..852126ad9 100644 --- a/tests/harness/self-hosting-frontend-services.test.ts +++ b/tests/harness/self-hosting-frontend-services.test.ts @@ -4,7 +4,6 @@ import { join } from "node:path"; import { expect, test } from "vitest"; import { ts7Executable } from "../../packages/compiler/src/frontend/ts7/rpc-api.js"; -import { npmFetchCases } from "../../packages/compiler/test/npm-fetch-cases.js"; import { analyzeInChild, compileInChild } from "./self-hosting-compiler-process.js"; import { spawnResult } from "./spawn-result.js"; @@ -27,23 +26,7 @@ function input(directory: string) { 'exports.request = globalThis.fetch; exports.leaf = require("./leaf.js"); exports.later = () => require("./missing.js");', ); writeFileSync(join(packageDirectory, "leaf.js"), "exports.local = 1;"); - const typedDirectory = join(directory, "node_modules/service-typescript"); - mkdirSync(typedDirectory, { recursive: true }); - writeFileSync( - join(typedDirectory, "package.json"), - JSON.stringify({ name: "service-typescript", type: "module", main: "index.ts" }), - ); - writeFileSync( - join(typedDirectory, "index.ts"), - 'import type { Missing } from "missing-types"; import { value } from "./value.mts"; export function get(): number { return value; }', - ); - writeFileSync(join(typedDirectory, "value.mts"), "export const value: number = 42;"); return { - modules: npmFetchCases.map((item, index) => ({ - key: `${index}.js`, - source: item.source, - format: "cjs", - })), directory, declarations: "export class Box { value(): string; value(next: string): this; peer: Box | null; }", @@ -94,15 +77,13 @@ for (const backend of ["llvm"] as const) { libraries: [object], }), ); - const coverage = await analyzeInChild(entry, { dynamic: false, ffiProfilePath: profile }); + const coverage = await analyzeInChild(entry, { ffiProfilePath: profile }); expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.diagnostics).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); const built = await compileInChild(entry, { backend, - dynamic: false, optimization: "dev", sanitize, ffiProfilePath: profile, @@ -135,39 +116,12 @@ for (const backend of ["llvm"] as const) { expect(run.stderr.toString()).toBe(node.stderr.toString()); const result = JSON.parse(readFileSync(report, "utf8")); expect(result).toEqual(JSON.parse(readFileSync(expected, "utf8"))); - expect(result.fetch).toEqual( - npmFetchCases.flatMap((item, index) => (item.usesFetch ? [`${index}.js`] : [])), - ); - expect(result.collision).toBe(true); expect(result.closed).toBe(true); expect(result.nullable).not.toBeNull(); expect(result.overloads).not.toBeNull(); expect(result.widened).not.toBeNull(); expect(typeof result.rewritten).toBe("string"); - expect(result.graph.modules).toHaveLength(4); - expect( - result.graph.modules.filter((module: { usesFetch: boolean }) => module.usesFetch), - ).toHaveLength(1); - expect(result.graph.modules[0].facade).toContain("request"); - expect( - result.graph.modules.filter((module: { key: string }) => /\.(?:ts|mts)$/.test(module.key)), - ).toEqual([ - { - key: join(directory, "node_modules/service-typescript/index.ts").replaceAll("\\", "/"), - format: "esm", - usesFetch: false, - facade: "", - }, - { - key: join(directory, "node_modules/service-typescript/value.mts").replaceAll("\\", "/"), - format: "esm", - usesFetch: false, - facade: "", - }, - ]); - expect(result.graph.lazyTraps).toEqual([ - { specifier: "./missing.js", via: ["require"], packages: ["service-fetch"] }, - ]); + expect(result.resolved).toBe(join(directory, "node_modules/service-fetch/index.js")); expect(result.versions).toEqual(["export const original = 1;", "export const changed = 2;"]); } finally { rmSync(directory, { recursive: true, force: true }); diff --git a/tests/harness/self-hosting-integer-ranges.test.ts b/tests/harness/self-hosting-integer-ranges.test.ts index 098b23588..8592dbc0d 100644 --- a/tests/harness/self-hosting-integer-ranges.test.ts +++ b/tests/harness/self-hosting-integer-ranges.test.ts @@ -23,12 +23,11 @@ interface Result { } test("production integer-range analysis lowers statically with identity-keyed maps", () => { - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics).toEqual([]); expect(coverage.stats.statementsTotal).toBeGreaterThan(250); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); }); @@ -42,7 +41,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: join(dir, process.platform === "win32" ? "stage.exe" : "stage"), backend, - dynamic: false, optimization: "dev", sanitize: process.env["SCRIPTC_SAN"] === "1", }); @@ -106,7 +104,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: path, outputKind: "ir", - dynamic: false, }); if (!result.ok) throw new Error(result.diagnostics.map((d) => d.message).join("\n")); expect(readFileSync(path, "utf8").length).toBeGreaterThan(0); diff --git a/tests/harness/self-hosting-llvm-embedding.test.ts b/tests/harness/self-hosting-llvm-embedding.test.ts deleted file mode 100644 index 5edc21495..000000000 --- a/tests/harness/self-hosting-llvm-embedding.test.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { deflateRawSync } from "node:zlib"; -import { expect, test } from "vitest"; -import { llvmBytes } from "../../packages/compiler/src/backend/literals.js"; -import { emitLlvmModule } from "../../packages/compiler/src/backend/llvm/emitter.js"; -import { emitterInputCases } from "./self-hosting-emitter-inputs.js"; -import { normalizedEmbeddingLlvm } from "./self-hosting-llvm-embedding.js"; - -const item = emitterInputCases().find( - (item) => item.name === "level-nine module and facade compression", -)!; -const original = emitLlvmModule(item.module); - -function withSource(bytes: Buffer): string { - return original - .replace( - /@sc_npm_src_0 = internal constant \[\d+ x i8\] c"[^"\n]*"/, - `@sc_npm_src_0 = internal constant [${bytes.length + 1} x i8] c"${llvmBytes(bytes)}"`, - ) - .replace(/(ptr @sc_npm_src_0, i64 )\d+/, `$1${bytes.length}`); -} - -test("LLVM comparison accepts different valid encodings of the same source", () => { - const source = item.module.embedded!.modules[0]!.source; - const stored = deflateRawSync(source, { level: 0 }); - const compressed = deflateRawSync(source, { level: 9 }); - expect(stored.equals(compressed)).toBe(false); - expect(normalizedEmbeddingLlvm(withSource(stored), item.module)).toBe( - normalizedEmbeddingLlvm(withSource(compressed), item.module), - ); -}); - -test("LLVM comparison rejects a corrupted DEFLATE stream", () => { - expect(() => - normalizedEmbeddingLlvm(withSource(Buffer.from([255, 255, 255])), item.module), - ).toThrow(); -}); - -test("LLVM comparison rejects a valid stream containing different source", () => { - const bytes = deflateRawSync("a different module"); - expect(() => normalizedEmbeddingLlvm(withSource(bytes), item.module)).toThrow( - "embedded source differs", - ); -}); - -test("LLVM comparison verifies declared array and encoded lengths", () => { - const array = original.replace(/(@sc_npm_src_0 = internal constant \[)\d+/, "$11"); - expect(() => normalizedEmbeddingLlvm(array, item.module)).toThrow("incorrect array length"); - const encoded = original.replace(/(ptr @sc_npm_src_0, i64 )\d+/, "$10"); - expect(() => normalizedEmbeddingLlvm(encoded, item.module)).toThrow("incorrect encoded length"); -}); - -test("LLVM comparison verifies inflated byte length and NUL termination", () => { - const raw = original.replace(/(ptr @sc_npm_src_0, i64 \d+, i64 )\d+/, "$11"); - expect(() => normalizedEmbeddingLlvm(raw, item.module)).toThrow("incorrect raw length"); - const terminator = original.replace( - /(@sc_npm_src_0 = internal constant \[\d+ x i8\] c"[^"\n]*)\\00"/, - '$1\\01"', - ); - expect(() => normalizedEmbeddingLlvm(terminator, item.module)).toThrow("NUL terminator"); -}); - -test("LLVM comparison preserves edge conditions and runtime installation", () => { - const changed = original.replace("@scr_zlib_inflate_exact", "@wrong_inflater"); - expect(normalizedEmbeddingLlvm(changed, item.module)).not.toBe( - normalizedEmbeddingLlvm(original, item.module), - ); - const changedEdge = original.replace(/(ptr @sc_npm_edge_0_to, i32 )\d+/, "$199"); - expect(changedEdge).not.toBe(original); - expect(normalizedEmbeddingLlvm(changedEdge, item.module)).not.toBe( - normalizedEmbeddingLlvm(original, item.module), - ); -}); - -test("LLVM comparison checks ESM facades as well as source modules", () => { - const changed = structuredClone(item.module); - changed.embedded!.modules[0]!.esm = "export default 'wrong';"; - expect(() => normalizedEmbeddingLlvm(original, changed)).toThrow( - "embedded source differs for sc_npm_esm_0", - ); -}); diff --git a/tests/harness/self-hosting-llvm-embedding.ts b/tests/harness/self-hosting-llvm-embedding.ts deleted file mode 100644 index 716a1a515..000000000 --- a/tests/harness/self-hosting-llvm-embedding.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { inflateRawSync } from "node:zlib"; -import type { IrModule } from "../../packages/compiler/src/ir/ir.js"; - -/** Parse exactly the LLVM byte-string grammar emitted by llvmBytes. */ -function literalBytes(literal: string): Buffer { - const bytes: number[] = []; - for (let i = 0; i < literal.length; i++) { - const code = literal.charCodeAt(i); - if (code === 92) { - const escape = literal.slice(i + 1, i + 3); - if (!/^[0-9a-fA-F]{2}$/.test(escape)) throw new Error("invalid LLVM byte escape"); - bytes.push(parseInt(escape, 16)); - i += 2; - } else { - if (code < 32 || code > 126 || code === 34) throw new Error("invalid LLVM literal byte"); - bytes.push(code); - } - } - if (bytes.pop() !== 0) throw new Error("LLVM literal lacks its NUL terminator"); - return Buffer.from(bytes); -} - -/** Different zlib implementations can produce different valid compressed - * streams. Check payload bytes, array bounds and both table lengths before - * canonicalizing only those encoding-dependent parts of the LLVM module. */ -export function normalizedEmbeddingLlvm(text: string, mod: IrModule): string { - let normalized = text; - const check = (name: string, source: string): void => { - const declaration = new RegExp(`@${name} = internal constant \\[(\\d+) x i8\\] c"([^"\\n]*)"`); - const match = declaration.exec(normalized); - if (!match) throw new Error(`missing embedded declaration ${name}`); - const encoded = literalBytes(match[2]!); - if (Number(match[1]) !== encoded.length + 1) - throw new Error(`incorrect array length for ${name}`); - const metadata = new RegExp(`ptr @${name}, (i32|i64) (\\d+), (i32|i64) (\\d+)`); - const lengths = metadata.exec(normalized); - if (!lengths) throw new Error(`missing length metadata for ${name}`); - if (lengths[1] !== lengths[3]) throw new Error(`inconsistent length types for ${name}`); - if (Number(lengths[2]) !== encoded.length) - throw new Error(`incorrect encoded length for ${name}`); - const rawLength = Number(lengths[4]); - const decoded = rawLength === 0 ? encoded : inflateRawSync(encoded); - if (!decoded.equals(Buffer.from(source, "utf8"))) - throw new Error(`embedded source differs for ${name}`); - if (rawLength !== 0 && rawLength !== decoded.length) - throw new Error(`incorrect raw length for ${name}`); - normalized = normalized.replace( - declaration, - `@${name} = internal constant [decoded] c"${decoded.toString("base64")}"`, - ); - normalized = normalized.replace( - metadata, - `ptr @${name}, ${lengths[1]} encoded, ${lengths[3]} ${rawLength}`, - ); - }; - for (const [index, module] of (mod.embedded?.modules ?? []).entries()) { - check(`sc_npm_src_${index}`, module.source); - if (module.esm !== undefined) check(`sc_npm_esm_${index}`, module.esm); - } - return normalized; -} diff --git a/tests/harness/self-hosting-llvm-emitter-cases.ts b/tests/harness/self-hosting-llvm-emitter-cases.ts index 8db8b76b5..e9adb6c6d 100644 --- a/tests/harness/self-hosting-llvm-emitter-cases.ts +++ b/tests/harness/self-hosting-llvm-emitter-cases.ts @@ -48,7 +48,7 @@ export interface LlvmEmitterCase { export function llvmEmitterCases(): LlvmEmitterCase[] { // The LLVM emitter consumes complete IR, including library entry - // points, recursive layouts, closure boxes and embedded package tables. + // points, recursive layouts and closure boxes. const cases: LlvmEmitterCase[] = emitterInputCases().map((item) => ({ name: item.name, module: item.module, @@ -73,7 +73,6 @@ export function llvmEmitterCases(): LlvmEmitterCase[] { ); find("synchronous callback environment").excludes.push("@scr_closure_new", "@scr_box_new"); find("thread-local library globals").contains.push("thread_local"); - find("level-nine module and facade compression").contains.push("@scr_zlib_inflate_exact"); for (const name of [ "empty executable", "scalar, reference and tuple layouts", diff --git a/tests/harness/self-hosting-llvm-emitter.test.ts b/tests/harness/self-hosting-llvm-emitter.test.ts index 5649aafed..c3187cb51 100644 --- a/tests/harness/self-hosting-llvm-emitter.test.ts +++ b/tests/harness/self-hosting-llvm-emitter.test.ts @@ -21,7 +21,6 @@ import { llvmEmitterRequest, type LlvmEmitterRequest, } from "./self-hosting-llvm-emitter-cases.js"; -import { normalizedEmbeddingLlvm } from "./self-hosting-llvm-embedding.js"; const root = fileURLToPath(new URL("../..", import.meta.url)); const entry = join(root, "tests/fixtures/self-hosting/llvm-emitter.ts"); @@ -33,7 +32,9 @@ const sanitize = process.env["SCRIPTC_SAN"] === "1"; // of megabytes of LLVM) then needs more room than the plain lane on shared // runners; the limits still stop a stage that hangs. const emitTimeout = sanitize ? 900_000 : 300_000; -const testTimeout = sanitize ? 2_400_000 : 1_200_000; +// The plain lane allows 30 minutes for the full bootstrap when other corpus +// jobs share the same machine. +const testTimeout = sanitize ? 2_400_000 : 1_800_000; const generatedProgram = "scriptc-generated-v1"; function programStderr(stderr: Buffer): string { @@ -112,10 +113,16 @@ for (const backend of ["llvm"] as const) { const input = join(dir, "input.json"); const output = join(dir, "native.ll"); const config = join(dir, "config.json"); + const started = performance.now(); + const progress = (phase: string) => + console.log( + `LLVM bootstrap: ${phase} (${((performance.now() - started) / 1000).toFixed(1)}s)`, + ); try { // Lower the full production graph in a child so synchronous frontend // work cannot block Vitest's worker RPC while it compiles the seed. const api = pathToFileURL(join(root, "packages/compiler/src/index.ts")).href; + progress("build seed"); const { stdout } = await execFileAsync( process.execPath, [ @@ -126,7 +133,7 @@ for (const backend of ["llvm"] as const) { `import { compile } from ${JSON.stringify(api)}; const result = await compile(process.argv[1], { outDir: process.argv[2], outPath: process.argv[3], backend: process.argv[4], - dynamic: false, optimization: 'dev', sanitize: process.argv[5] === '1', emitIr: true, + optimization: 'dev', sanitize: process.argv[5] === '1', emitIr: true, }); console.log(JSON.stringify(result));`, entry, @@ -147,6 +154,7 @@ for (const backend of ["llvm"] as const) { const ownIr = deserializeModule(readFileSync(built.irPath!, "utf8")); expect(ownIr.functions.length).toBeGreaterThan(800); expect(validateModule(ownIr)).toEqual([]); + progress("seed built; compare emitter cases"); const emit = async ( mod: IrModule, @@ -165,9 +173,7 @@ for (const backend of ["llvm"] as const) { expect(result.stderr, name).toBe(""); const text = readFileSync(output, "utf8"); const expected = emitLlvmModule(mod, llvmEmitterOptions(request)); - expect(normalizedEmbeddingLlvm(text, mod), name).toBe( - normalizedEmbeddingLlvm(expected, mod), - ); + expect(text, name).toBe(expected); return text; }; @@ -210,13 +216,13 @@ for (const backend of ["llvm"] as const) { expect(readFileSync(output, "utf8")).toBe("untouched"); for (const source of programs) { + progress(`compile and run ${source}`); const sourcePath = join(root, "tests/corpus", source); const irPath = join(dir, "program.ir.json"); const lowered = await compile(sourcePath, { outDir: dir, outPath: irPath, outputKind: "ir", - dynamic: false, }); if (!lowered.ok) throw new Error(`${source}: ${lowered.diagnostics.map((d) => d.message).join("\n")}`); @@ -238,7 +244,7 @@ for (const backend of ["llvm"] as const) { cacheIdentity: generatedProgram, sanitize, optimization: "dev", - ...executableLinkFeatures(mod, false), + ...executableLinkFeatures(mod), }); const node = spawnSync(process.execPath, [sourcePath], runOptions); const native = spawnSync(outPath, [], runOptions); @@ -254,19 +260,22 @@ for (const backend of ["llvm"] as const) { // The seed emits its own complete IR, including the production // optimizer and LLVM expression/library graph. Compile those bytes // and require a second native generation to reproduce the module. + progress("emit own IR"); const self = await emit(ownIr, "LLVM emitter emits itself"); const selfPath = join(dir, "self.ll"); const secondStage = executable("emitter-second"); writeFileSync(selfPath, self); + progress("compile second generation"); await compileC({ cPath: selfPath, outPath: secondStage, cacheIdentity: generatedProgram, sanitize, optimization: "dev", - ...executableLinkFeatures(ownIr, false), + ...executableLinkFeatures(ownIr), }); const again = join(dir, "again.ll"); + progress("second generation emits own IR"); const second = await execFileAsync(secondStage, [input, again, config], { ...runOptions, timeout: emitTimeout, @@ -274,6 +283,7 @@ for (const backend of ["llvm"] as const) { expect(second.stdout).toBe(""); expect(second.stderr).toBe(""); expect(readFileSync(again, "utf8")).toBe(self); + progress("fixed point verified"); } finally { rmSync(dir, { recursive: true, force: true }); } diff --git a/tests/harness/self-hosting-lowering-context.test.ts b/tests/harness/self-hosting-lowering-context.test.ts index 4ca2a5cc0..aeea58e21 100644 --- a/tests/harness/self-hosting-lowering-context.test.ts +++ b/tests/harness/self-hosting-lowering-context.test.ts @@ -81,7 +81,7 @@ for (const backend of ["llvm"] as const) { "--input-type=module", "--eval", `import { analyze, compile } from ${JSON.stringify(api)}; - const options = { dynamic: false, ffiProfilePath: process.argv[2] }; + const options = { ffiProfilePath: process.argv[2] }; const { coverage } = analyze(process.argv[1], options); const built = await compile(process.argv[1], { ...options, backend: process.argv[3], optimization: 'dev', sanitize: process.argv[4] === '1', @@ -106,7 +106,6 @@ for (const backend of ["llvm"] as const) { }; expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.stats.statementsFailed, JSON.stringify(coverage.diagnostics)).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); if (!built.ok) throw new Error(built.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); diff --git a/tests/harness/self-hosting-native-cache.test.ts b/tests/harness/self-hosting-native-cache.test.ts index 0e3f7eb46..26e4ab3fa 100644 --- a/tests/harness/self-hosting-native-cache.test.ts +++ b/tests/harness/self-hosting-native-cache.test.ts @@ -17,7 +17,6 @@ test("native executable cache discovery, restoration and invalidation match Node outDir: directory, outPath: join(directory, "cache" + (process.platform === "win32" ? ".exe" : "")), optimization: "dev", - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", }); if (!built.ok) throw new Error(JSON.stringify(built.diagnostics)); diff --git a/tests/harness/self-hosting-native-driver.test.ts b/tests/harness/self-hosting-native-driver.test.ts index b57d0b6cf..d7b4dbc18 100644 --- a/tests/harness/self-hosting-native-driver.test.ts +++ b/tests/harness/self-hosting-native-driver.test.ts @@ -273,7 +273,7 @@ test( dynamic, "const value: any = { answer: 42 }; console.log(`answer:${value.answer}`);\n", ); - await checkProgram(probe, dynamic, ["--dynamic"]); + await checkProgram(probe, dynamic); const comptime = join(directory, "comptime.ts"); writeFileSync( comptime, diff --git a/tests/harness/self-hosting-native-features.ts b/tests/harness/self-hosting-native-features.ts index a72a5f2f5..c44cfb591 100644 --- a/tests/harness/self-hosting-native-features.ts +++ b/tests/harness/self-hosting-native-features.ts @@ -2,5 +2,5 @@ import { executableLinkFeatures } from "../../packages/compiler/src/backend/exec import type { IrModule } from "../../packages/compiler/src/ir/ir.js"; export function nativeFeatures(module: IrModule) { - return executableLinkFeatures(module, false); + return executableLinkFeatures(module); } diff --git a/tests/harness/self-hosting-native-frontend.test.ts b/tests/harness/self-hosting-native-frontend.test.ts index c23494c3d..8cb5dc7c1 100644 --- a/tests/harness/self-hosting-native-frontend.test.ts +++ b/tests/harness/self-hosting-native-frontend.test.ts @@ -105,7 +105,7 @@ for (const backend of ["llvm"] as const) { `import { compile } from ${JSON.stringify(api)}; const result = await compile(process.argv[1], { outDir: process.argv[2], outPath: process.argv[3], backend: process.argv[4], - dynamic: false, optimization: 'dev', sanitize: process.argv[5] === '1', + optimization: 'dev', sanitize: process.argv[5] === '1', ffiProfilePath: process.argv[6], }); console.log(JSON.stringify({ ...result, sourceTexts: undefined }));`, @@ -181,11 +181,6 @@ for (const backend of ["llvm"] as const) { const source = join(root, "tests/corpus", file); const { module, report } = lowerRequest(file, { entry: source }); expect(report[0], file).toEqual({ preflight: [], npmStatic: [] }); - expect(report[1], file).toMatchObject({ - stats: { statementsFailed: 0, statementsIsland: 0, functionsSkipped: 0 }, - diagnostics: [], - validation: [], - }); if (!module) throw new Error(file + ": missing native IR"); const cPath = join(directory, "program.ll"); writeFileSync(cPath, emitLlvmModule(module)); @@ -241,7 +236,7 @@ for (const backend of ["llvm"] as const) { }); expect(fallback.report[0]).toMatchObject({ npmStatic: [ - { package: "gtdrift", status: "fallback", detail: expect.stringContaining("__toESM") }, + { package: "gtdrift", status: "refused", detail: expect.stringContaining("__toESM") }, ], }); diff --git a/tests/harness/self-hosting-native-toolchain.test.ts b/tests/harness/self-hosting-native-toolchain.test.ts index 09caf2f0f..3723a1132 100644 --- a/tests/harness/self-hosting-native-toolchain.test.ts +++ b/tests/harness/self-hosting-native-toolchain.test.ts @@ -13,13 +13,11 @@ import type { NativeToolchainManifest } from "../../packages/compiler/src/native const root = join(import.meta.dirname, "../.."); const entry = join(root, "tests/fixtures/self-hosting/native-toolchain.ts"); const features: NativeLinkFeatures = { - dynamic: false, regex: false, copying: false, textDecoderLegacy: false, fileHandle: false, fetch: false, - netIsland: false, zlib: false, assert: false, inspect: false, @@ -46,10 +44,9 @@ const features: NativeLinkFeatures = { }; test("native toolchain configuration, staging and helper validation are static", async () => { - const coverage = await analyzeInChild(entry, { dynamic: false }); + const coverage = await analyzeInChild(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); }); @@ -65,7 +62,6 @@ for (const backend of ["llvm"] as const) { outPath: join(directory, "toolchain" + target.outputSuffixes.exe), backend, optimization: "dev", - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", }); if (!built.ok) throw new Error(JSON.stringify(built.diagnostics)); @@ -100,7 +96,7 @@ for (const backend of ["llvm"] as const) { object_format: target.objectFormat, minimum_os: target.minimumOs, }, - runtime_abi: { version: 13, marker: "scr_runtime_abi_v13" }, + runtime_abi: { version: 14, marker: "scr_runtime_abi_v14" }, compiler: { command: "fixture", identity: "fixture", target: target.llvmTriple }, macros: { executable: [], excluded: [], sanitizer: "external-toolchain-required" }, flavors: { diff --git a/tests/harness/self-hosting-program-host.test.ts b/tests/harness/self-hosting-program-host.test.ts index 859c57e3b..1ab6b89c6 100644 --- a/tests/harness/self-hosting-program-host.test.ts +++ b/tests/harness/self-hosting-program-host.test.ts @@ -37,14 +37,12 @@ for (const backend of ["llvm"] as const) { libraries: [object], }), ); - const { coverage } = analyze(entry, { dynamic: false, ffiProfilePath: profile }); + const { coverage } = analyze(entry, { ffiProfilePath: profile }); expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.stats.statementsFailed, JSON.stringify(coverage.diagnostics)).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); const built = await compile(entry, { backend, - dynamic: false, optimization: "dev", sanitize, ffiProfilePath: profile, diff --git a/tests/harness/self-hosting-runtime-features.test.ts b/tests/harness/self-hosting-runtime-features.test.ts index c7c0f01dc..d2c2b589b 100644 --- a/tests/harness/self-hosting-runtime-features.test.ts +++ b/tests/harness/self-hosting-runtime-features.test.ts @@ -63,11 +63,10 @@ const featureCalls: readonly [string, IrLibFn][] = [ ]; test("the production runtime dependency scanners lower entirely statically", () => { - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.stats.statementsTotal).toBeGreaterThan(150); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); }); @@ -81,7 +80,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: join(dir, process.platform === "win32" ? "features.exe" : "features"), backend, - dynamic: false, optimization: "dev", sanitize: process.env["SCRIPTC_SAN"] === "1", }); @@ -182,22 +180,6 @@ for (const backend of ["llvm"] as const) { loc, }); check("ordinary string data is not IR", strings, [], none); - const embedded = empty(); - embedded.embedded = { - modules: [{ key: "package", source: "/* fetch() */", format: "esm" }], - edges: [], - }; - check("embedded text is not a capability fact", embedded, [], ["fetch", "zlib"]); - embedded.embedded.modules[0]!.usesFetch = true; - check("embedded fetch fact survives serialization", embedded, ["fetch"]); - embedded.embedded.edges.push({ - from: "package", - specifier: "node:zlib", - to: "node:zlib", - kind: "import", - }); - check("embedded builtin edge survives serialization", embedded, ["fetch", "zlib"]); - // Audit genuine frontend output too, including closure tables, // recursive types, metadata and JSON callback helper functions. for (const [source, feature] of [ @@ -212,7 +194,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: path, outputKind: "ir", - dynamic: false, }); if (!emitted.ok) throw new Error(emitted.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); diff --git a/tests/harness/self-hosting-runtime-pack.test.ts b/tests/harness/self-hosting-runtime-pack.test.ts index 779181b47..27a269285 100644 --- a/tests/harness/self-hosting-runtime-pack.test.ts +++ b/tests/harness/self-hosting-runtime-pack.test.ts @@ -14,13 +14,11 @@ import type { RuntimePackManifest } from "../../packages/compiler/src/backend/ru const root = join(import.meta.dirname, "../.."); const entry = join(root, "tests/fixtures/self-hosting/runtime-pack.ts"); const base: NativeLinkFeatures = { - dynamic: false, regex: false, copying: false, textDecoderLegacy: false, fileHandle: false, fetch: false, - netIsland: false, zlib: false, assert: false, inspect: false, @@ -47,11 +45,10 @@ const base: NativeLinkFeatures = { }; test("runtime manifest validation and selection are entirely static", async () => { - const coverage = await analyzeInChild(entry, { dynamic: false }); + const coverage = await analyzeInChild(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.stats.statementsTotal).toBeGreaterThan(50); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); }); @@ -65,7 +62,6 @@ for (const backend of ["llvm"] as const) { outDir: directory, outPath: join(directory, "selection" + (process.platform === "win32" ? ".exe" : "")), backend, - dynamic: false, optimization: "dev", sanitize: process.env["SCRIPTC_SAN"] === "1", }); diff --git a/tests/harness/self-hosting-serialization.test.ts b/tests/harness/self-hosting-serialization.test.ts index 4139cd648..77cb00c7a 100644 --- a/tests/harness/self-hosting-serialization.test.ts +++ b/tests/harness/self-hosting-serialization.test.ts @@ -78,11 +78,10 @@ function numericModule(): IrModule { } test("the production IR serialization and validation pipeline lowers entirely statically", () => { - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.stats.statementsTotal).toBeGreaterThan(3000); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); }); @@ -99,7 +98,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: executable("serializer"), backend, - dynamic: false, optimization: "dev", sanitize, }); @@ -239,7 +237,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: path, outputKind: "ir", - dynamic: false, }); if (!emitted.ok) throw new Error(emitted.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); diff --git a/tests/harness/self-hosting-source-parser.test.ts b/tests/harness/self-hosting-source-parser.test.ts index 94c988176..44198b92c 100644 --- a/tests/harness/self-hosting-source-parser.test.ts +++ b/tests/harness/self-hosting-source-parser.test.ts @@ -134,15 +134,13 @@ for (const backend of ["llvm"] as const) { libraries: [object], }), ); - const coverage = await analyzeInChild(entry, { dynamic: false, ffiProfilePath: profile }); + const coverage = await analyzeInChild(entry, { ffiProfilePath: profile }); expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.diagnostics).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); const built = await compileInChild(entry, { backend, - dynamic: false, optimization: "dev", sanitize, ffiProfilePath: profile, diff --git a/tests/harness/self-hosting-ts7-client.test.ts b/tests/harness/self-hosting-ts7-client.test.ts index 2ef3e22d8..87f6711a6 100644 --- a/tests/harness/self-hosting-ts7-client.test.ts +++ b/tests/harness/self-hosting-ts7-client.test.ts @@ -11,11 +11,10 @@ const entry = join(root, "tests/fixtures/self-hosting/ts7-client.ts"); const tempRoot = process.platform === "win32" ? tmpdir() : "/tmp"; test("the production TypeScript RPC and filesystem client lowers entirely statically", () => { - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.stats.statementsTotal).toBeGreaterThan(200); expect(coverage.stats.statementsFailed, JSON.stringify(coverage.diagnostics)).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); }); @@ -32,7 +31,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: join(dir, process.platform === "win32" ? "client.exe" : "client"), backend, - dynamic: false, optimization: "dev", sanitize: process.env["SCRIPTC_SAN"] === "1", }); diff --git a/tests/harness/self-hosting-ts7-process.test.ts b/tests/harness/self-hosting-ts7-process.test.ts index 9d9263e06..bdb426448 100644 --- a/tests/harness/self-hosting-ts7-process.test.ts +++ b/tests/harness/self-hosting-ts7-process.test.ts @@ -38,14 +38,12 @@ for (const backend of ["llvm"] as const) { libraries: [object], }), ); - const { coverage } = analyze(entry, { dynamic: false, ffiProfilePath: profile }); + const { coverage } = analyze(entry, { ffiProfilePath: profile }); expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.stats.statementsFailed, JSON.stringify(coverage.diagnostics)).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); const built = await compile(entry, { backend, - dynamic: false, optimization: "dev", sanitize, ffiProfilePath: profile, diff --git a/tests/harness/self-hosting-type-mapper.test.ts b/tests/harness/self-hosting-type-mapper.test.ts index 1c18d1d90..7bb392b66 100644 --- a/tests/harness/self-hosting-type-mapper.test.ts +++ b/tests/harness/self-hosting-type-mapper.test.ts @@ -79,7 +79,6 @@ function checkReport(report: MappingReport): void { "HookIndexed:f64:string", "HookKeys:f64:string", "HookLiteral:f64:string", - "dynamic memo isolation", ]); } @@ -158,7 +157,7 @@ for (const backend of ["llvm"] as const) { "--input-type=module", "--eval", `import { analyze, compile } from ${JSON.stringify(api)}; - const options = { dynamic: false, ffiProfilePath: process.argv[2] }; + const options = { ffiProfilePath: process.argv[2] }; const { coverage } = analyze(process.argv[1], options); const built = await compile(process.argv[1], { ...options, backend: process.argv[3], optimization: 'dev', sanitize: process.argv[4] === '1', @@ -184,7 +183,6 @@ for (const backend of ["llvm"] as const) { expect(coverage.preflightFailed, JSON.stringify(coverage.diagnostics)).toBe(false); expect(coverage.diagnostics).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); if (!built.ok) throw new Error(built.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); diff --git a/tests/harness/self-hosting-union-conversions.test.ts b/tests/harness/self-hosting-union-conversions.test.ts index babdab6c3..15be29db4 100644 --- a/tests/harness/self-hosting-union-conversions.test.ts +++ b/tests/harness/self-hosting-union-conversions.test.ts @@ -31,10 +31,10 @@ for (const fixture of ["ir-refinements", "union-conversions"]) { "--input-type=module", "--eval", `import { analyze, compile } from ${JSON.stringify(api)}; - const { coverage } = analyze(process.argv[1], { dynamic: false }); + const { coverage } = analyze(process.argv[1], {}); const built = await compile(process.argv[1], { outDir: process.argv[2], outPath: process.argv[3], backend: process.argv[4], - dynamic: false, optimization: 'dev', sanitize: process.argv[5] === '1', + optimization: 'dev', sanitize: process.argv[5] === '1', }); console.log(JSON.stringify({ stats: coverage.stats, diagnostics: coverage.diagnostics, built }));`, entry, @@ -54,7 +54,6 @@ for (const fixture of ["ir-refinements", "union-conversions"]) { expect(diagnostics).toEqual([]); expect(stats.statementsTotal).toBeGreaterThan(0); expect(stats.statementsFailed).toBe(0); - expect(stats.statementsIsland).toBe(0); expect(stats.functionsSkipped).toBe(0); if (!built.ok) throw new Error(built.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); diff --git a/tests/harness/self-hosting-validator-cases.ts b/tests/harness/self-hosting-validator-cases.ts index 1aeeb4273..4a02c9d58 100644 --- a/tests/harness/self-hosting-validator-cases.ts +++ b/tests/harness/self-hosting-validator-cases.ts @@ -16,7 +16,7 @@ import { boolLit, numLit, strLit, varRef } from "../../packages/compiler/src/ir/ const loc = { file: "validator-input.ts", start: 12, end: 34 }; const expression = (expr: IrExpr): IrStmt => ({ kind: "exprStmt", expr, loc }); const base = (): IrModule => ({ - irVersion: 15, + irVersion: 16, sourceFile: loc.file, entry: "main", functions: [{ name: "main", params: [], locals: [], returnType: VOID, body: [], loc }], diff --git a/tests/harness/self-hosting-validator.test.ts b/tests/harness/self-hosting-validator.test.ts index da31dbcfb..99265a13c 100644 --- a/tests/harness/self-hosting-validator.test.ts +++ b/tests/harness/self-hosting-validator.test.ts @@ -21,7 +21,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: join(dir, process.platform === "win32" ? "validator.exe" : "validator"), backend, - dynamic: false, optimization: "dev", sanitize: process.env["SCRIPTC_SAN"] === "1", }); @@ -76,7 +75,6 @@ for (const backend of ["llvm"] as const) { outDir: dir, outPath: irPath, outputKind: "ir", - dynamic: false, }); if (!emitted.ok) throw new Error(emitted.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); diff --git a/tests/harness/self-hosting.test.ts b/tests/harness/self-hosting.test.ts index 01cb55842..29162198b 100644 --- a/tests/harness/self-hosting.test.ts +++ b/tests/harness/self-hosting.test.ts @@ -17,11 +17,10 @@ const root = fileURLToPath(new URL("../..", import.meta.url)); test("the complete IR validator lowers statically without skipped functions", () => { const entry = join(root, "tests/fixtures/self-hosting/validate.ts"); - const { coverage } = analyze(entry, { dynamic: false }); + const { coverage } = analyze(entry, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.stats.statementsTotal).toBeGreaterThan(0); expect(coverage.stats.statementsFailed).toBe(0); - expect(coverage.stats.statementsIsland).toBe(0); expect(coverage.stats.functionsSkipped).toBe(0); }); @@ -57,7 +56,6 @@ for (const component of [ outDir, outPath: join(outDir, process.platform === "win32" ? "program.exe" : "program"), backend, - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", }); if (!built.ok) @@ -100,7 +98,6 @@ for (const [fixture, backend] of ["ir-build", "contextual-ir", "coercion-builder outDir, outPath: exe("builder"), backend, - dynamic: false, sanitize, optimization: "dev", }); diff --git a/tests/harness/static-only.test.ts b/tests/harness/static-only.test.ts new file mode 100644 index 000000000..d34cd66b9 --- /dev/null +++ b/tests/harness/static-only.test.ts @@ -0,0 +1,99 @@ +import { spawnSync } from "node:child_process"; +import { cpSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { expect, test } from "vitest"; +import { analyze, compile } from "@scriptc/compiler"; + +const root = join(import.meta.dirname, "../.."); + +test.each(["build", "run", "coverage"])("%s rejects the retired --dynamic option", (command) => { + const result = spawnSync( + process.execPath, + ["--import", "tsx", join(root, "packages/cli/src/main.ts"), command, "main.ts", "--dynamic"], + { cwd: root, encoding: "utf8" }, + ); + expect(result.status).toBe(1); + expect(result.stderr).toContain("--dynamic"); +}); + +test("default package compilation preserves checked values, regex, imports, and comptime without an engine", async () => { + const directory = mkdtempSync(join(tmpdir(), "scriptc-static-only-")); + try { + mkdirSync(join(directory, "node_modules")); + cpSync( + join(root, "tests/fixtures/npm-static/node_modules/slash"), + join(directory, "node_modules/slash"), + { recursive: true }, + ); + writeFileSync(join(directory, "package.json"), '{"type":"module"}'); + const entry = join(directory, "main.ts"); + writeFileSync( + entry, + `import slash from "slash"; +const answer = comptime(() => 6 * 7); +const value: any = answer; +const path = await import("node:path"); +console.log(slash("a\\\\b"), /^a/.test("abc"), value + 1, path.basename("a/b")); +`, + ); + const coverage = analyze(entry).coverage; + expect(coverage.diagnostics).toEqual([]); + expect(coverage.npmStatic).toEqual([{ package: "slash", status: "static" }]); + const result = await compile(entry, { + outDir: directory, + outPath: join(directory, process.platform === "win32" ? "program.exe" : "program"), + sanitize: process.env["SCRIPTC_SAN"] === "1", + }); + if (!result.ok) throw new Error(JSON.stringify(result.diagnostics)); + const actual = spawnSync(result.binaryPath, [], { encoding: "utf8" }); + const expected = spawnSync( + process.execPath, + ["--import", join(root, "tests/harness/comptime-shim.mjs"), entry], + { encoding: "utf8" }, + ); + expect(actual.status, actual.stderr).toBe(expected.status); + expect(actual.stdout).toBe(expected.stdout); + const stderr = + process.env["SCRIPTC_SAN"] === "1" + ? actual.stderr + .split("\n") + .filter( + (line) => + !line.startsWith("scriptc RC audit skipped:") && + !/^==\d+==WARNING: ASan doesn't fully support makecontext\/swapcontext/.test(line), + ) + .join("\n") + : actual.stderr; + expect(stderr).toBe(expected.stderr); + expect(actual.stdout).toBe("a/b true 43 b\n"); + expect(readFileSync(result.llvmPath, "utf8")).not.toMatch(/@scr_(?:island|jsval)_/); + if (process.platform !== "win32") { + const symbols = spawnSync("nm", [result.binaryPath], { encoding: "utf8" }); + expect(symbols.status, symbols.stderr).toBe(0); + expect(symbols.stdout).not.toMatch(/\b_?(?:JS_NewRuntime|JS_Eval|scr_island_init)\b/); + } + } finally { + rmSync(directory, { recursive: true, force: true }); + } +}); + +test("an ineligible package fails with its package-specific native refusal", async () => { + const directory = mkdtempSync(join(tmpdir(), "scriptc-package-refusal-")); + try { + const result = await compile(join(root, "tests/fixtures/npm-static/typegap-mix.ts"), { + outDir: directory, + outPath: join(directory, "program"), + }); + expect(result.ok).toBe(false); + if (!result.ok) + expect(result.diagnostics).toContainEqual( + expect.objectContaining({ + code: "SC2013", + message: expect.stringContaining("cannot compile npm package 'typegapped' statically"), + }), + ); + } finally { + rmSync(directory, { recursive: true, force: true }); + } +}); diff --git a/tests/harness/static-spatial.test.ts b/tests/harness/static-spatial.test.ts index d9e6a272e..b0f40ee4e 100644 --- a/tests/harness/static-spatial.test.ts +++ b/tests/harness/static-spatial.test.ts @@ -72,7 +72,6 @@ test.for(cases)( outDir: dir, outPath: output, backend: "llvm", - dynamic: false, npmStatic: ["spatial-fixture"], sanitize: !wasm && process.env["SCRIPTC_SAN"] === "1", }); diff --git a/tests/harness/island-surface.test.ts b/tests/harness/stdlib-surface.test.ts similarity index 76% rename from tests/harness/island-surface.test.ts rename to tests/harness/stdlib-surface.test.ts index 063ddf990..e91e7be4d 100644 --- a/tests/harness/island-surface.test.ts +++ b/tests/harness/stdlib-surface.test.ts @@ -1,26 +1,3 @@ -/* The ISLAND_SURFACE table (frontend/lowering/surfaces.ts) and the standard library - * types promise each other "every entry is declared surface": the table - * decides what lowers to engine ops, the lib (plus the shipped scriptc.d.ts - * divergence overrides) decides what typechecks. Nothing at runtime ties - * them together — a table entry the type world doesn't declare would be - * unreachable noise, and one whose declared types drifted would validate - * island exits against the wrong shape. This suite makes that drift a test - * failure, against the REAL program the compiler builds (same options, - * same lib files, same ambient): - * - * - a call in exactly the table entry's form (its arity, its argument - * types) must TYPECHECK — the lib may declare more (rest/optional - * parameters, wider unions like `string | RegExp`), and the island call - * is a legal subset of it; - * - the call's result type must be the entry's validated-exit type; - * - the member/global must have STDLIB provenance (a lib.*.d.ts or the - * shipped ambient — the same provenance check the lowerer applies). - * - * The old reverse direction (every declared member is tabled) died with - * the minimal ambient world: the lib deliberately declares far more than - * the table — untabled members are the SC2020 fence's job, pinned by the - * stdlib-fence diagnostics fixture. - */ import { mkdtempSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; @@ -29,10 +6,10 @@ import * as ts from "../../packages/compiler/src/frontend/ts7/adapter.js"; import { ambientDtsPath, ir, - ISLAND_SURFACE, + STDLIB_SURFACE, overridesDtsPath, STATIC_MATH_PROPS, - type IslandFnEntry, + type StdlibFnEntry, } from "@scriptc/compiler"; import { loadProgram } from "../../packages/compiler/src/frontend/program-node.js"; @@ -54,32 +31,32 @@ function resultText(t: ir.IrType): string { interface Probe { what: string; callee: string; - entry: IslandFnEntry; + entry: StdlibFnEntry; } const probes: Probe[] = [ - ...Object.entries(ISLAND_SURFACE.math.fns).map(([name, entry]) => ({ + ...Object.entries(STDLIB_SURFACE.math.fns).map(([name, entry]) => ({ what: `Math.${name}`, callee: `Math.${name}`, entry: entry!, })), - ...Object.entries(ISLAND_SURFACE.number).map(([name, entry]) => ({ + ...Object.entries(STDLIB_SURFACE.number).map(([name, entry]) => ({ what: `number.${name}`, callee: `__num.${name}`, entry: entry!, })), - ...Object.entries(ISLAND_SURFACE.string).map(([name, entry]) => ({ + ...Object.entries(STDLIB_SURFACE.string).map(([name, entry]) => ({ what: `string.${name}`, callee: `__str.${name}`, entry: entry!, })), - ...Object.entries(ISLAND_SURFACE.globals).map(([name, entry]) => ({ + ...Object.entries(STDLIB_SURFACE.globals).map(([name, entry]) => ({ what: name, callee: name, entry: entry!, })), ]; -const propProbes = Object.entries(ISLAND_SURFACE.math.props).map(([name, propType]) => ({ +const propProbes = Object.entries(STDLIB_SURFACE.math.props).map(([name, propType]) => ({ what: `Math.${name}`, expr: `Math.${name}`, type: propType!, @@ -92,8 +69,8 @@ const staticMathPropProbes = Object.entries(STATIC_MATH_PROPS).map(([name, value })); // One probe program through the compiler's own loader, containing every -// table entry called in exactly the form the island lowering emits. -const dir = mkdtempSync(join(tmpdir(), "scr-island-surface-")); + +const dir = mkdtempSync(join(tmpdir(), "scr-stdlib-surface-")); const probePath = join(dir, "probe.ts"); writeFileSync( probePath, @@ -152,7 +129,7 @@ function isStdlibDeclared(symbol: ts.Symbol | undefined): boolean { }); } -describe("every ISLAND_SURFACE entry is declared standard-library surface", () => { +describe("every STDLIB_SURFACE entry is declared standard-library surface", () => { test("the probe program typechecks (every entry's call form is declared)", () => { const rendered = probeErrors.map( (d) => @@ -194,7 +171,7 @@ describe("every ISLAND_SURFACE entry is declared standard-library surface", () = describe("static Math properties", () => { test("the standard constants are declared in the static table", () => { - expect(Object.keys(ISLAND_SURFACE.math.props)).not.toEqual( + expect(Object.keys(STDLIB_SURFACE.math.props)).not.toEqual( expect.arrayContaining(Object.keys(STATIC_MATH_PROPS)), ); expect(STATIC_MATH_PROPS).toEqual({ diff --git a/tests/harness/surface-manifest.test.ts b/tests/harness/surface-manifest.test.ts index 183868542..a88f4c37b 100644 --- a/tests/harness/surface-manifest.test.ts +++ b/tests/harness/surface-manifest.test.ts @@ -1,32 +1,12 @@ -/* The surface manifest is a shipped artifact with two contract properties: - * the version spine is the exact published release version, and every - * non-static entry carries the diagnostic code the compiler actually - * raises for it. This suite holds the manifest to both: - * - * - staleness guard: the committed packages/compiler/surface-manifest.json - * regenerates byte-identically from the current tree (a table edit that - * changes the projection fails here until `pnpm manifest` is rerun and - * the result committed); - * - schema and determinism: unique sorted ids, valid kind/status values, - * a code on every non-static entry, identical output across generations; - * - the sampling harness: N probe programs per status class, checked - * against the compiler itself — listed-static entries COMPILE, and for - * every sampled non-static entry the refusal's diagnostic code equals - * the entry's code (dynamic-only entries additionally analyze clean - * under --dynamic). The probes don't exercise every entry; they exist - * to catch the manifest lying. - */ import { mkdirSync, mkdtempSync, readFileSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { describe, expect, test } from "vitest"; import { analyze, - compile, generateSurfaceManifest, ir, LIB_FN_SIGS, - renderDiagnostics, renderSurfaceManifest, resolveLibraryFences, type SurfaceManifest, @@ -85,7 +65,7 @@ describe("surface manifest generation", () => { }); test("schema: ids unique and sorted, enums valid, codes on every non-static entry", () => { - expect(manifest.schemaVersion).toBe(1); + expect(manifest.schemaVersion).toBe(2); expect(manifest.entries.length).toBeGreaterThan(0); const ids = manifest.entries.map((e) => e.id); expect(new Set(ids).size).toBe(ids.length); @@ -93,7 +73,7 @@ describe("surface manifest generation", () => { for (const e of manifest.entries) { expect(e.id).toMatch(/^[a-z][a-z0-9-]*(\.[A-Za-z0-9$_-]+)+$/); expect(["syntax", "stdlib", "node-builtin", "diagnostic-fence"]).toContain(e.kind); - expect(["static", "dynamic-only", "unsupported"]).toContain(e.status); + expect(["static", "unsupported"]).toContain(e.status); if (e.status !== "static") { expect(e.code, `${e.id}: non-static entries must carry their diagnostic code`).toMatch( /^SC\d{4}$/, @@ -108,7 +88,7 @@ describe("surface manifest generation", () => { `no ${kind} entries`, ).toBe(true); } - for (const status of ["static", "dynamic-only", "unsupported"]) { + for (const status of ["static", "unsupported"]) { expect( manifest.entries.some((e) => e.status === status), `no ${status} entries`, @@ -127,156 +107,6 @@ interface Probe { source: string; } -const PROBES: Probe[] = [ - // status static — these must compile to a binary - { id: "syntax.compound-assignment.plus", source: "let x = 1;\nx += 2;\nconsole.log(x);\n" }, - { - id: "syntax.spread-arguments", - source: - "function add(a: number, b: number): number { return a + b; }\nconst args: [number, number] = [1, 2];\nconsole.log(add(...args));\n", - }, - { id: "stdlib.string.charCodeAt", source: 'console.log("abc".charCodeAt(0));\n' }, - { id: "stdlib.string.replace", source: 'console.log("aa".replace("a", "b"));\n' }, - { id: "stdlib.string.replaceAll", source: 'console.log("aa".replaceAll("a", "b"));\n' }, - { - id: "stdlib.array.push", - source: "const xs: number[] = [1];\nxs.push(2);\nconsole.log(xs.length);\n", - }, - { - id: "stdlib.array.unshift", - source: "const xs: number[] = [2];\nconsole.log(xs.unshift(1), xs[0]);\n", - }, - { - id: "stdlib.array.reverse", - source: "const xs: number[] = [1, 2];\nconsole.log(xs.reverse()[0]);\n", - }, - { id: "stdlib.math.floor", source: "console.log(Math.floor(1.5));\n" }, - { id: "stdlib.math.sqrt", source: "console.log(Math.sqrt(4));\n" }, - { id: "stdlib.math.tan", source: "console.log(Math.tan(2));\n" }, - { id: "stdlib.math.sign", source: "console.log(Math.sign(-2));\n" }, - { id: "stdlib.math.hypot", source: "console.log(Math.hypot(3, 4));\n" }, - { id: "stdlib.math.log1p", source: "console.log(Math.log1p(0.5));\n" }, - { id: "stdlib.math.imul", source: "console.log(Math.imul(-1, 3));\n" }, - { id: "stdlib.math.fround", source: "console.log(Math.fround(1.5));\n" }, - { - id: "stdlib.map.has", - source: 'const m = new Map();\nm.set("a", 1);\nconsole.log(m.has("a"));\n', - }, - { id: "stdlib.date.now", source: "console.log(Date.now() > 0);\n" }, - { id: "stdlib.date.parse", source: 'console.log(Date.parse("2026-07-17T00:00:00Z"));\n' }, - { id: "stdlib.number.toFixed", source: "const n = 1.2345;\nconsole.log(n.toFixed(2));\n" }, - { - id: "stdlib.abort-signal.timeout", - source: "const signal = AbortSignal.timeout(1000);\nconsole.log(signal.aborted);\n", - }, - { - id: "stdlib.abort-controller.constructor", - source: - "const controller = new AbortController();\ncontroller.abort();\nconsole.log(controller.signal.aborted);\n", - }, - { - id: "stdlib.readable-stream.constructor", - source: "const stream = new ReadableStream();\nconsole.log(stream.locked);\n", - }, - { - id: "stdlib.readable-stream.from", - source: "const stream = ReadableStream.from([1, 2]);\nconsole.log(stream.locked);\n", - }, - { - id: "stdlib.response.constructor", - source: '/// \nvoid new Response("ok");\n', - }, - { id: "node-builtin.process.pid", source: "console.log(process.pid > 0);\n" }, - { - id: "node-builtin.perf_hooks.performance.now", - source: "console.log(performance.now() >= 0);\n", - }, - { - id: "node-builtin.path.join", - source: 'import { join } from "node:path";\nconsole.log(join("a", "b"));\n', - }, - { - id: "node-builtin.os.EOL", - source: 'import { EOL } from "node:os";\nconsole.log(EOL.length);\n', - }, - { id: "stdlib.math.PI", source: "console.log(Math.PI);\n" }, - { id: "stdlib.math.E", source: "console.log(Math.E);\n" }, - { id: "stdlib.math.SQRT2", source: "console.log(Math.SQRT2);\n" }, - // status dynamic-only — refused with the entry's code statically, - // analyzed clean under --dynamic - { - id: "stdlib.headers.entries", - source: - '/// \nasync function f(): Promise {\n const r = await fetch("http://127.0.0.1");\n void r.headers.entries();\n}\nvoid f();\n', - }, - { - id: "stdlib.request.constructor", - source: '/// \nvoid new Request("http://127.0.0.1");\n', - }, - { - id: "stdlib.headers.symbol.iterator", - source: - '/// \nfunction f([first]: Headers): void {\n void first;\n}\nvoid f;\n', - }, - { id: "diagnostic.sc2011", source: "const y: any = 1;\nconst { z } = y;\nconsole.log(0);\n" }, - // status unsupported — refused with the entry's code - { - id: "stdlib.abort-signal.constructor", - source: '/// \nvoid new AbortSignal();\n', - }, - { - id: "stdlib.headers.constructor", - source: '/// \nvoid new Headers();\n', - }, - { - id: "stdlib.response.static.json", - source: '/// \nvoid Response.json(1);\n', - }, - { - id: "stdlib.response.clone", - source: - '/// \nasync function f(): Promise {\n const r = await fetch("http://127.0.0.1");\n void r.clone();\n}\nvoid f();\n', - }, - { - id: "stdlib.readable-stream.tee", - source: - '/// \ntype BodyStream = ReadableStream;\nfunction f(s: BodyStream): void {\n void s.tee();\n}\nconsole.log(typeof f);\n', - }, - { - id: "stdlib.fetch.request-init.cache", - source: - '/// \nconst init: RequestInit = { cache: "no-store" };\nvoid fetch("http://127.0.0.1", init);\nvoid fetch("http://127.0.0.1", { ...({ cache: "no-store" } as const) });\n', - }, - { - id: "stdlib.fetch.request-init.dispatcher", - source: - '/// \nvoid fetch("http://127.0.0.1", { dispatcher: JSON.parse("{}") });\n', - }, - { - id: "stdlib.readable-stream.symbol.asyncIterator", - source: - '/// \nfunction f(s: ReadableStream): void {\n void s[Symbol.asyncIterator]();\n}\nvoid f;\n', - }, - { id: "syntax.debugger-statements", source: "debugger;\nconsole.log(0);\n" }, - { - id: "syntax.delete-expressions", - source: - 'type Hybrid = { base: string; [k: string]: string };\nconst h: Hybrid = { base: "b", extra: "e" };\ndelete h["extra"];\nconsole.log(h.base);\n', - }, - // Class-instance field/getter destructures graduated (corpus 2429); the - // METHOD-extraction refusal carries the sample now. - { - id: "diagnostic.sc1031", - source: - "class C {\n f = 1;\n m(): number {\n return this.f;\n }\n}\nconst { m } = new C();\nconsole.log(m());\n", - }, - { - id: "node-builtin.zlib.brotliCompressSync", - source: - 'import { brotliCompressSync } from "node:zlib";\nbrotliCompressSync(Buffer.from("data"));\nconsole.log(0);\n', - }, -]; - // Keep probes below the workspace so explicit `/// ` // rows resolve the repository's pinned @types/node package. Ordinary probes // still use the compiler fallback declarations exactly as before. @@ -296,65 +126,6 @@ function probeFile(probe: Probe): string { return file; } -describe("surface manifest sampling harness", () => { - test("the probe set covers every status class", () => { - const byStatus = new Map(); - for (const p of PROBES) { - const entry = entryById.get(p.id); - expect(entry, `probe id ${p.id} is not in the manifest`).toBeDefined(); - byStatus.set(entry!.status, (byStatus.get(entry!.status) ?? 0) + 1); - } - expect(byStatus.get("static") ?? 0).toBeGreaterThanOrEqual(5); - expect(byStatus.get("dynamic-only") ?? 0).toBeGreaterThanOrEqual(4); - expect(byStatus.get("unsupported") ?? 0).toBeGreaterThanOrEqual(4); - }); - - test.for(PROBES.map((p) => [p.id, p] as const))("%s", async ([, probe]) => { - const entry = entryById.get(probe.id); - expect(entry, `probe id ${probe.id} is not in the manifest`).toBeDefined(); - const file = probeFile(probe); - if (entry!.status === "static") { - const outDir = join(file, "..", "out"); - const result = await compile(file, { outPath: join(outDir, "bin"), outDir }); - if (!result.ok) { - expect.unreachable( - `${probe.id} is listed static but did not compile:\n` + - renderDiagnostics(result.diagnostics, result.sourceTexts, { color: false }), - ); - } - const dyn = analyze(file, { dynamic: true }).coverage; - expect( - dyn.diagnostics.map((d) => `${d.code}: ${d.message}`), - `${probe.id}: enabling --dynamic must not disable a static surface`, - ).toEqual([]); - expect(dyn.stats.statementsFailed).toBe(0); - return; - } - // Non-static: the refusal's code must equal the entry's code — the - // property external tooling depends on most. - const { coverage } = analyze(file); - expect(coverage.preflightFailed, `${probe.id}: probe must reach lowering`).toBe(false); - const codes = [...new Set(coverage.diagnostics.map((d) => d.code))]; - expect(codes, `${probe.id}: expected exactly the listed refusal code`).toEqual([entry!.code]); - if (entry!.status === "dynamic-only") { - const dyn = analyze(file, { dynamic: true }).coverage; - expect( - dyn.diagnostics.map((d) => `${d.code}: ${d.message}`), - `${probe.id}: dynamic-only entries must analyze clean under --dynamic`, - ).toEqual([]); - expect(dyn.stats.statementsFailed).toBe(0); - } else { - const dyn = analyze(file, { dynamic: true }).coverage; - expect(dyn.preflightFailed, `${probe.id}: dynamic probe must reach lowering`).toBe(false); - const dynCodes = [...new Set(dyn.diagnostics.map((d) => d.code))]; - expect( - dynCodes, - `${probe.id}: unsupported entries must retain the listed refusal under --dynamic`, - ).toEqual([entry!.code]); - } - }); -}); - test("unsupported RequestInit keys remain fenced when const-computed", () => { const file = probeFile({ id: "stdlib.fetch.request-init.cache.computed", @@ -363,8 +134,8 @@ test("unsupported RequestInit keys remain fenced when const-computed", () => { }); const entry = entryById.get("stdlib.fetch.request-init.cache"); expect(entry).toBeDefined(); - for (const dynamic of [false, true]) { - const { coverage } = analyze(file, { dynamic }); + { + const { coverage } = analyze(file, {}); expect([...new Set(coverage.diagnostics.map((d) => d.code))]).toEqual([entry!.code]); expect(coverage.diagnostics[0]!.message).toContain("RequestInit option 'cache'"); } @@ -385,8 +156,8 @@ test("unsupported RequestInit keys remain fenced through imported const aliases" ); const entry = entryById.get("stdlib.fetch.request-init.cache"); expect(entry).toBeDefined(); - for (const dynamic of [false, true]) { - const { coverage } = analyze(mainFile, { dynamic }); + { + const { coverage } = analyze(mainFile, {}); expect( coverage.preflightFailed, coverage.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n"), @@ -416,9 +187,6 @@ test("RequestInit fences statically traceable property and conditional values", expect(coverage.preflightFailed).toBe(false); expect([...new Set(coverage.diagnostics.map((d) => d.code))]).toEqual([entry!.code]); expect(coverage.diagnostics.filter((d) => d.code === entry!.code)).toHaveLength(2); - const dynamic = analyze(file, { dynamic: true }).coverage; - expect([...new Set(dynamic.diagnostics.map((d) => d.code))]).toEqual([entry!.code]); - expect(dynamic.diagnostics.filter((d) => d.code === entry!.code)).toHaveLength(2); }); test("RequestInit traces properties through annotated const wrappers", () => { @@ -438,9 +206,6 @@ test("RequestInit traces properties through annotated const wrappers", () => { expect(coverage.diagnostics[0]!.message).toContain( "RequestInit option 'cache' in a static build", ); - const dynamic = analyze(file, { dynamic: true }).coverage; - expect([...new Set(dynamic.diagnostics.map((d) => d.code))]).toEqual([entry!.code]); - expect(dynamic.diagnostics).toHaveLength(1); }); test("RequestInit wrapper tracing respects a later property override", () => { @@ -452,8 +217,8 @@ test("RequestInit wrapper tracing respects a later property override", () => { 'const options: { init: RequestInit } = { ...base, init: { method: "GET" } };\n' + 'void fetch("http://127.0.0.1", options.init);\n', }); - for (const dynamic of [false, true]) { - const { coverage } = analyze(file, { dynamic }); + { + const { coverage } = analyze(file, {}); expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics.map((d) => `${d.code}: ${d.message}`)).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); @@ -468,8 +233,8 @@ test("RequestInit spread tracing respects a later undefined override", () => { 'const unsupported = { cache: "no-store" } as const;\n' + 'void fetch("http://127.0.0.1", { ...unsupported, cache: undefined });\n', }); - for (const dynamic of [false, true]) { - const coverage = analyze(file, { dynamic }).coverage; + { + const coverage = analyze(file, {}).coverage; expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics.map((d) => `${d.code}: ${d.message}`)).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); @@ -485,8 +250,8 @@ test("RequestInit tracing stops at property-mutated const objects", () => { "init.cache = undefined;\n" + 'void fetch("http://127.0.0.1", init);\n', }); - for (const dynamic of [false, true]) { - const coverage = analyze(file, { dynamic }).coverage; + { + const coverage = analyze(file, {}).coverage; expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics.map((d) => `${d.code}: ${d.message}`)).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); @@ -507,15 +272,15 @@ test("RequestInit traces const object and tuple binding aliases", () => { }); const entry = entryById.get("stdlib.fetch.request-init.cache"); expect(entry).toBeDefined(); - for (const dynamic of [false, true]) { - const coverage = analyze(file, { dynamic }).coverage; + { + const coverage = analyze(file, {}).coverage; expect(coverage.preflightFailed).toBe(false); expect([...new Set(coverage.diagnostics.map((d) => d.code))]).toEqual([entry!.code]); expect(coverage.diagnostics.filter((d) => d.code === entry!.code)).toHaveLength(2); } }); -test("island RequestInit literals accept supported const-computed keys", () => { +test("RequestInit literals accept supported const-computed keys", () => { const file = probeFile({ id: "stdlib.fetch.request-init.method.computed", source: @@ -523,15 +288,15 @@ test("island RequestInit literals accept supported const-computed keys", () => { 'const option = "method" as const;\n' + 'void fetch("http://127.0.0.1", { [option]: "GET" });\n', }); - for (const dynamic of [false, true]) { - const coverage = analyze(file, { dynamic }).coverage; + { + const coverage = analyze(file, {}).coverage; expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics.map((d) => `${d.code}: ${d.message}`)).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); } }); -test("finite unions of dynamic-only Headers members retain the static fence", () => { +test("finite unions of unsupported Headers members retain the native fence", () => { const file = probeFile({ id: "stdlib.headers.dynamic-member-union", source: @@ -549,9 +314,7 @@ test("finite unions of dynamic-only Headers members retain the static fence", () expect(coverage.preflightFailed).toBe(false); expect([...new Set(coverage.diagnostics.map((d) => d.code))]).toEqual([entry!.code]); expect(coverage.diagnostics).toHaveLength(1); - expect(coverage.diagnostics[0]!.message).toContain("Headers.keys in a static build"); - const dynamic = analyze(file, { dynamic: true }).coverage; - expect(dynamic.diagnostics.map((d) => `${d.code}: ${d.message}`)).toEqual([]); + expect(coverage.diagnostics[0]!.message).toContain("Headers.keys"); }); test("fetch handle method calls retain their receiver through bracket spellings", () => { @@ -569,8 +332,8 @@ test("fetch handle method calls retain their receiver through bracket spellings" "}\n" + "void f;\n", }); - for (const dynamic of [false, true]) { - const coverage = analyze(file, { dynamic }).coverage; + { + const coverage = analyze(file, {}).coverage; expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics.map((d) => `${d.code}: ${d.message}`)).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); @@ -596,7 +359,7 @@ test("static Response method unions retain their declared promise result", () => expect(coverage.stats.statementsFailed).toBe(0); }); -test("fetch companion surplus arguments remain supported under --dynamic", () => { +test("fetch companion surplus arguments remain supported natively", () => { const dir = join(probeRoot, "fetch-companion-surplus"); mkdirSync(dir, { recursive: true }); const file = join(dir, "main.js"); @@ -608,8 +371,8 @@ test("fetch companion surplus arguments remain supported under --dynamic", () => "void AbortSignal.any([], side());\n" + "void ReadableStream.from([], side());\n", ); - for (const dynamic of [false, true]) { - const coverage = analyze(file, { dynamic }).coverage; + { + const coverage = analyze(file, {}).coverage; expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics.map((d) => `${d.code}: ${d.message}`)).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); @@ -631,9 +394,6 @@ test("fetch interface object bindings retain the inventory fence code", () => { expect(coverage.preflightFailed).toBe(false); expect([...new Set(coverage.diagnostics.map((d) => d.code))]).toEqual(["SC2020"]); expect(coverage.diagnostics.filter((d) => d.code === "SC2020")).toHaveLength(4); - const dynamic = analyze(file, { dynamic: true }).coverage; - expect([...new Set(dynamic.diagnostics.map((d) => d.code))]).toEqual(["SC2020"]); - expect(dynamic.diagnostics.filter((d) => d.code === "SC2020")).toHaveLength(2); }); test("static AbortController method reads fence instead of yielding undefined", () => { @@ -655,10 +415,6 @@ test("static AbortController method reads fence instead of yielding undefined", d.message.includes("AbortController.abort through method extraction in a static build"), ), ).toBe(true); - - const dynamic = analyze(file, { dynamic: true }).coverage; - expect(dynamic.diagnostics.map((d) => `${d.code}: ${d.message}`)).toEqual([]); - expect(dynamic.stats.statementsFailed).toBe(0); }); test("static fetch data properties remain destructurable in JavaScript", () => { @@ -674,15 +430,15 @@ test("static fetch data properties remain destructurable in JavaScript", () => { "}\n" + "void readResponse;\n", ); - for (const dynamic of [false, true]) { - const coverage = analyze(file, { dynamic }).coverage; + { + const coverage = analyze(file, {}).coverage; expect(coverage.preflightFailed).toBe(false); expect(coverage.diagnostics.map((d) => `${d.code}: ${d.message}`)).toEqual([]); expect(coverage.stats.statementsFailed).toBe(0); } }); -test("unimplemented Response and ReadableStream calls stay fenced under --dynamic", () => { +test("unimplemented Response and ReadableStream calls stay fenced", () => { const file = probeFile({ id: "stdlib.fetch.unimplemented-dynamic-methods", source: @@ -695,15 +451,15 @@ test("unimplemented Response and ReadableStream calls stay fenced under --dynami "}\n" + "void response; void stream;\n", }); - for (const dynamic of [false, true]) { - const coverage = analyze(file, { dynamic }).coverage; + { + const coverage = analyze(file, {}).coverage; expect(coverage.preflightFailed).toBe(false); expect([...new Set(coverage.diagnostics.map((d) => d.code))]).toEqual(["SC2020"]); expect(coverage.diagnostics.filter((d) => d.code === "SC2020")).toHaveLength(5); } }); -test("unsupported symbol object bindings remain fenced under --dynamic", () => { +test("unsupported symbol object bindings remain fenced", () => { const file = probeFile({ id: "stdlib.fetch.object-binding-unsupported-symbol", source: @@ -713,8 +469,8 @@ test("unsupported symbol object bindings remain fenced under --dynamic", () => { "}\n" + "void stream;\n", }); - for (const dynamic of [false, true]) { - const coverage = analyze(file, { dynamic }).coverage; + { + const coverage = analyze(file, {}).coverage; expect(coverage.preflightFailed).toBe(false); expect([...new Set(coverage.diagnostics.map((d) => d.code))]).toEqual(["SC2020"]); } diff --git a/tests/harness/three.test.ts b/tests/harness/three.test.ts index a3bccddad..27fb86d1f 100644 --- a/tests/harness/three.test.ts +++ b/tests/harness/three.test.ts @@ -82,7 +82,6 @@ test.for(cases)( outDir: dir, outPath: join(dir, wasm ? `${fixture}.wasm` : fixture), backend: "llvm", - dynamic: false, npmStatic: ["three"], optimization: sanitize ? "dev" : (requestedMode ?? "release"), sanitize, diff --git a/tests/harness/unicode-host-filesystem.test.ts b/tests/harness/unicode-host-filesystem.test.ts index 2ae0ed273..7315910c6 100644 --- a/tests/harness/unicode-host-filesystem.test.ts +++ b/tests/harness/unicode-host-filesystem.test.ts @@ -19,7 +19,6 @@ for (const backend of ["llvm"] as const) { ); const result = await compile(entry, { backend, - dynamic: false, sanitize: process.env["SCRIPTC_SAN"] === "1", optimization: "dev", outDir: scratch, diff --git a/tests/harness/vercel-e2e.test.ts b/tests/harness/vercel-e2e.test.ts deleted file mode 100644 index da839a8db..000000000 --- a/tests/harness/vercel-e2e.test.ts +++ /dev/null @@ -1,567 +0,0 @@ -/* vercel CLI end-to-end: the REAL Vercel CLI (the `vercel` npm package, - * unmodified) runs its read-only AND mutation workflows under Node - * (dist/index.js — the acceptance oracle) AND as a scriptc --dynamic - * binary, against the LOCAL mock api.vercel.com - * (tests/fixtures/vercel-e2e/mock-vercel-api.ts, every shape recorded from - * the real CLI); stdout, stderr, and exit codes must agree. Mutations are - * safe BECAUSE of the jail: every write (env add/rm, dns add/rm, alias - * set/rm, project add) lands in the mock, whose endpoint trace pins the - * request body exactly. the gateway e2e suite's three-legged pattern, pointed at a CLI - * whose network stack rides the island's native fetch. The compiled leg's - * module-graph walls fell in sequence (node:https → smol-toml's dual - * package → node:domain); the "reaches today" pin below records the - * frontier — now "loaded" — and the differential arms run whenever the - * graph loads. - * - * SETUP (the suite SKIPS when the scratch install is absent): - * mkdir -p ~/Developer/vercel-scratch && cd ~/Developer/vercel-scratch - * npm init -y && npm i vercel@56.2.0 - * SCRIPTC_VERCEL_ROOT overrides the location. The version is pinned: - * committed snapshots record 56.2.0's exact output. - * - * THE NETWORK JAIL (verified in beforeAll, before any test's CLI run): - * every child gets NODE_USE_ENV_PROXY=1 with http(s)_proxy at a refused - * loopback port and no_proxy=127.0.0.1, so the mock is reachable and any - * other origin fails fast without leaving the machine. This is the jail - * the CLI RESPECTS: its API client uses global fetch (undici), and the - * verification run captures `CONNECT api.vercel.com:443` arriving at a - * loopback listener standing in as the proxy — proving escapes route into - * the jail, not the network. Two CLI paths bypass env proxies and are - * neutralized separately: the update-check worker (raw https.get to - * registry.npmjs.org) never spawns under NO_UPDATE_NOTIFIER=1, and - * telemetry (POST telemetry.vercel.com) never sends under - * VERCEL_TELEMETRY_DISABLED=1 — and even if either regressed, both use - * telemetry uses global fetch, so a regression there still hits the - * refused proxy. Sentry crash reporting (unexpected-exception paths only) - * and the update worker's raw https.get are the known env-proxy-blind - * egresses; NO_UPDATE_NOTIFIER covers the worker and no test drives an - * unexpected exception. - * - * ISOLATION: children get a MINIMAL environment built from scratch — a - * scratch HOME per run (the CLI reads ~/.claude for its Claude-plugin - * prompt and ~/.local/share for auth defaults; a clean HOME silences the - * machine-state-dependent paths), --global-config into the run's scratch - * cwd (the CLI writes config.json/telemetry ids on first run), and a - * per-child VERCEL_TOKEN (`mockfaketoken`, alphanumeric — the CLI - * rejects tokens containing "-" before any request; the env-token path - * never touches auth storage, so the @napi-rs/keyring native addon in the - * CLI's graph stays an unloaded lazy require in BOTH lanes). The mock - * attributes requests by bearer token, so concurrent lanes stay separable - * and the per-command endpoint sequence is asserted per child. - * - * NORMALIZATIONS (both lanes, other content exact): the lane cwd → - * "", the banner's Node version → "(Node.js )" (a build pin, not - * semantics), spinner elapsed "[123ms]" → "[]", and relative-time - * tokens ("932d", "50s", "842d ago") → "" — they are rendered against - * wall-clock "now" from the mock's fixed timestamps, so a day boundary - * mid-run would flip them. Table alignment spaces also vary with age and - * are collapsed while retaining cell boundaries. Absolute dates (inspect's created line, logs' - * TIME column) are NOT normalized: children run under TZ=UTC, so the - * mock's fixed epochs render machine-independently and any lane skew in - * Date formatting is a real divergence. */ -import { spawn } from "node:child_process"; -import { createHash } from "node:crypto"; -import { - existsSync, - globSync, - mkdirSync, - mkdtempSync, - readFileSync, - realpathSync, - rmSync, - writeFileSync, -} from "node:fs"; -import { createServer, type Server } from "node:net"; -import { homedir, tmpdir } from "node:os"; -import { basename, join, relative } from "node:path"; -import { afterAll, beforeAll, describe, expect, test } from "vitest"; -import { compile } from "@scriptc/compiler"; -import { shardSelect } from "./shard.js"; -import { jailEnv, refusedLoopbackUrl } from "./net-jail.js"; -import { - MOCK_PROJECT_LINK, - startMockVercelApi, - type RecordedRequest, -} from "../fixtures/vercel-e2e/mock-vercel-api.js"; - -const repoRoot = join(import.meta.dirname, "../.."); -const cacheDir = join(repoRoot, "node_modules/.cache/scriptc-tests"); -const sanitize = process.env["SCRIPTC_SAN"] === "1"; -const executionTag = [ - sanitize ? "san" : "plain", - process.env["SCRIPTC_TEST_RUN_ID"] ?? `pid-${process.pid}`, - process.env["SCRIPTC_TEST_SHARD"] ?? "all", -] - .join("-") - .replace(/[^a-zA-Z0-9_.-]+/g, "-"); - -const vercelRoot = - process.env["SCRIPTC_VERCEL_ROOT"] ?? join(homedir(), "Developer/vercel-scratch"); -const vercelEntry = join(vercelRoot, "node_modules/vercel/dist/index.js"); -const haveVercel = existsSync(vercelEntry); - -let mockServer: import("node:http").Server; -let mockUrl = ""; -let mockRequests: RecordedRequest[] = []; -let mockUnexpected: RecordedRequest[] = []; -let refusedUrl = ""; -let jailCapture = ""; -let driverBinary = ""; -let probeBinary = ""; -const driverBuildPaths = new Set(); -/** What the compiled leg reached in beforeAll: "loaded" once the island - * serves the CLI's builtins, else the caught load error — today - * "caught:ReferenceError: the island does not provide the 'node:https' - * builtin". The differential arms key off this. */ -let compiledLegProbe = ""; -const compiledLegLoads = (): boolean => compiledLegProbe === "loaded"; - -/* ── driver generation + build (the real-CLI suite's scratch-entry shape: - * the entry lives OUTSIDE the repo so the compiler resolves the scratch - * install's own type surface, and imports dist/index.js relatively) ──── */ - -const DRIVER_TSCONFIG = JSON.stringify( - { - compilerOptions: { - target: "ESNext", - module: "ESNext", - moduleResolution: "bundler", - strict: true, - esModuleInterop: true, - skipLibCheck: true, - resolveJsonModule: true, - allowJs: true, - }, - }, - null, - 2, -); - -function hashInputs(entryText: string): string { - const hash = createHash("sha256"); - hash.update(entryText).update(DRIVER_TSCONFIG); - const inputs = [ - ...globSync(join(vercelRoot, "node_modules/vercel/dist/**/*.{js,cjs,mjs,json}")), - join(vercelRoot, "node_modules/vercel/package.json"), - ].sort(); - for (const f of inputs) hash.update(f).update(readFileSync(f)); - return hash - .update(sanitize ? "san" : "plain") - .digest("hex") - .slice(0, 16); -} - -async function buildDriver(name: string, entrySource: (rel: string) => string): Promise { - // realpath: macOS's tmpdir is a symlink (/var → /private/var), and the - // relative import back to the scratch install must survive Node - // resolving the entry at its REAL path. - const dir = join(realpathSync(tmpdir()), `scriptc-vercel-e2e-${name}-${executionTag}`); - driverBuildPaths.add(dir); - mkdirSync(dir, { recursive: true }); - const rel = relative(dir, vercelEntry); - const text = entrySource(rel.startsWith(".") ? rel : `./${rel}`); - const key = hashInputs(text); - const outDir = join(cacheDir, `vercel-e2e-${name}-${key}-${executionTag}`); - driverBuildPaths.add(outDir); - const entry = join(dir, "main.ts"); - writeFileSync(entry, text); - writeFileSync(join(dir, "tsconfig.json"), DRIVER_TSCONFIG); - const binary = join(outDir, "program"); - mkdirSync(outDir, { recursive: true }); - // Exercise the default LLVM path used by ordinary dynamic builds. - const result = await compile(entry, { outPath: binary, outDir, sanitize, dynamic: true }); - if (!result.ok) { - throw new Error( - "vercel e2e driver failed to compile:\n" + - result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n"), - ); - } - return binary; -} - -/* ── running lanes ───────────────────────────────────────────────────── */ - -interface LaneResult { - stdout: Buffer; - stderr: Buffer; - code: number | null; - signal: NodeJS.Signals | null; - cwd: string; - token: string; -} - -interface RunOptions { - /** Override the child's VERCEL_TOKEN (still per-child-suffixed). */ - tokenBase?: string; - /** Point --api somewhere other than the mock. */ - apiUrl?: string; - /** Write .vercel/project.json into the lane's cwd before spawning — the - * linked-project commands (env ls/add/rm) resolve this link before their - * first request and error out without it. */ - linked?: boolean; -} - -function runLane( - cmd: string, - cmdArgs: string[], - args: string[], - opts: RunOptions = {}, -): Promise { - const cwd = mkdtempSync(join(tmpdir(), "scr-vc-e2e-")); - const home = join(cwd, "scratch-home"); - mkdirSync(home); - if (opts.linked === true) { - mkdirSync(join(cwd, ".vercel")); - writeFileSync(join(cwd, ".vercel/project.json"), JSON.stringify(MOCK_PROJECT_LINK)); - } - const token = `${opts.tokenBase ?? "mockfaketoken"}${basename(cwd).replace(/[^A-Za-z0-9]/g, "")}`; - // Minimal env, built from scratch: nothing ambient (CLAUDECODE, CI, - // VERCEL_*, FORCE_COLOR...) can steer the CLI. TZ is pinned to UTC: - // inspect's created line, logs' TIME column, and domains inspect's - // Created At render the mock's fixed epochs through the LOCAL zone, and - // the committed snapshots must not depend on the machine's timezone. - const env: NodeJS.ProcessEnv = { - PATH: process.env["PATH"], - HOME: home, - TZ: "UTC", - NO_COLOR: "1", - NO_UPDATE_NOTIFIER: "1", - VERCEL_TELEMETRY_DISABLED: "1", - VERCEL_TOKEN: token, - ...jailEnv(refusedUrl), - }; - const argv = [ - ...cmdArgs, - ...args, - "--api", - opts.apiUrl ?? mockUrl, - "--global-config", - join(cwd, "vercel-global"), - ]; - return new Promise((resolve, reject) => { - const p = spawn(cmd, argv, { cwd, env, stdio: ["pipe", "pipe", "pipe"] }); - const out: Buffer[] = []; - const err: Buffer[] = []; - p.stdout.on("data", (c: Buffer) => out.push(c)); - p.stderr.on("data", (c: Buffer) => err.push(c)); - p.stdin.end(); - p.on("error", reject); - p.on("close", (code, signal) => { - resolve({ stdout: Buffer.concat(out), stderr: Buffer.concat(err), code, signal, cwd, token }); - }); - }); -} - -const runNodeLane = (args: string[], opts?: RunOptions): Promise => - runLane(process.execPath, [vercelEntry], args, opts); -const runNativeLane = (args: string[], opts?: RunOptions): Promise => - runLane(driverBinary, [], args, opts); - -function normalize(buf: Buffer, cwd: string): string { - let text = buf - .toString("utf8") - .replaceAll(cwd, "") - .replace(/\(Node\.js \d+\.\d+\.\d+\)/g, "(Node.js )") - .replace(/\[\d+ms\]/g, "[]") - .replace(/\b\d+(?:ms|[smhdwy])\b( ago)?/g, "$1"); - if (sanitize) { - // ASan's known ucontext-fiber noise on exit (google/sanitizers#189): - // diagnostics, not program output — the real-CLI suite's scrub. - text = text - .replace(/==\d+==WARNING: ASan is ignoring requested __asan_handle_no_return[^\n]*\n/g, "") - .replace(/False positive error reports may follow\n/g, "") - .replace(/For details see https:\/\/github\.com\/google\/sanitizers\/issues\/189\n/g, ""); - } - // Relative ages change table column widths as the fixed mock dates recede. - // Preserve cell boundaries and contents while discarding alignment padding. - text = text - .split("\n") - .map((line) => { - const unpadded = line.trimEnd(); - return /^ +\S.* {2,}\S/.test(unpadded) - ? ` ${unpadded.trimStart().replace(/ {2,}/g, " ")}` - : unpadded; - }) - .join("\n"); - return text; -} - -/** The endpoint trace of one child: "GET /path?query" attributed by its - * bearer token — the recorded shapes made executable. Mutation requests - * append their raw body, so the two lanes must SEND byte-identical JSON - * payloads, not just hit identical URLs. SORTED, not arrival order: most - * commands fetch sequentially, but certs ls races its team lookup against - * the certs fetch (and env ls races custom-environments against the env - * fetch), so arrival order isn't deterministic. */ -function requestsOf(token: string): string[] { - return mockRequests - .filter((r) => r.authorization === `Bearer ${token}`) - .map((r) => `${r.method} ${r.path}${r.search}${r.body === "" ? "" : ` ${r.body}`}`) - .sort(); -} - -/** One command through the harness: the Node oracle always runs and its - * normalized streams + endpoint trace are pinned as snapshots; once the - * compiled leg's module graph loads (the sibling native-fetch lane's - * landing), the scriptc binary runs the SAME argv and every byte must - * agree — stdout, stderr, exit code, and the endpoint trace. */ -async function runCase(args: string[], opts: RunOptions = {}): Promise { - const label = args.join(" "); - const [node, native] = await Promise.all([ - runNodeLane(args, opts), - compiledLegLoads() ? runNativeLane(args, opts) : Promise.resolve(undefined), - ]); - try { - expect(normalize(node.stdout, node.cwd), `node stdout of: ${label}`).toMatchSnapshot( - `${label} stdout`, - ); - expect(normalize(node.stderr, node.cwd), `node stderr of: ${label}`).toMatchSnapshot( - `${label} stderr`, - ); - expect(node.code, `node exit code of: ${label}`).toMatchSnapshot(`${label} exit`); - expect(requestsOf(node.token), `endpoints of: ${label}`).toMatchSnapshot(`${label} endpoints`); - if (native !== undefined) { - expect(normalize(native.stdout, native.cwd), `stdout of: ${label}`).toBe( - normalize(node.stdout, node.cwd), - ); - expect(normalize(native.stderr, native.cwd), `stderr of: ${label}`).toBe( - normalize(node.stderr, node.cwd), - ); - expect(native.code, `exit code of: ${label}`).toBe(node.code); - expect(native.signal, `signal of: ${label}`).toBe(node.signal); - expect(requestsOf(native.token), `endpoints of: ${label}`).toEqual(requestsOf(node.token)); - } - } finally { - rmSync(node.cwd, { recursive: true, force: true }); - if (native !== undefined) rmSync(native.cwd, { recursive: true, force: true }); - } -} - -interface CliCase { - name: string; - args: string[]; - opts?: RunOptions; -} - -// The acceptance commands are platform-neutral and independent once the -// shared driver and mock are ready. Sandbox runs split them locally because -// the external Vercel CLI oracle is deliberately not uploaded; ordinary -// `pnpm test` leaves SCRIPTC_TEST_SHARD unset and runs every command. -const allCliCases: CliCase[] = [ - { name: "whoami", args: ["whoami"] }, - { name: "whoami with an invalid token", args: ["whoami"], opts: { tokenBase: "badfaketoken" } }, - { name: "teams ls", args: ["teams", "ls"] }, - { name: "ls (deployments)", args: ["ls"] }, - { name: "project ls", args: ["project", "ls"] }, - { name: "domains ls", args: ["domains", "ls"] }, - { name: "dns ls", args: ["dns", "ls"] }, - { name: "alias ls", args: ["alias", "ls"] }, - { name: "certs ls", args: ["certs", "ls"] }, - { name: "--version", args: ["--version"] }, - { name: "help", args: ["help"] }, - { name: "help alias", args: ["help", "alias"] }, - { name: "env ls", args: ["env", "ls"], opts: { linked: true } }, - { name: "env ls production", args: ["env", "ls", "production"], opts: { linked: true } }, - { - name: "env ls --format json", - args: ["env", "ls", "--format", "json"], - opts: { linked: true }, - }, - { name: "env ls without a linked project", args: ["env", "ls"] }, - { - name: "inspect a deployment", - args: ["inspect", "mock-app-abc123defg-mock-team.vercel.app"], - }, - { - name: "logs for a deployment over a fixed window", - args: [ - "logs", - "mock-app-abc123defg-mock-team.vercel.app", - "--since", - "2024-01-01T00:00:00.000Z", - "--until", - "2024-01-02T12:00:00.000Z", - ], - }, - { name: "domains inspect", args: ["domains", "inspect", "mock-example.com"] }, - { name: "teams switch", args: ["teams", "switch", "second-team"] }, - { - name: "env add", - args: ["env", "add", "MOCK_API_TOKEN", "production", "--value", "supersecretvalue", "--yes"], - opts: { linked: true }, - }, - { - name: "env rm", - args: ["env", "rm", "NEXT_PUBLIC_BASE_URL", "production", "--yes"], - opts: { linked: true }, - }, - { name: "dns add", args: ["dns", "add", "mock-example.com", "api", "A", "76.76.21.42"] }, - { name: "dns rm", args: ["dns", "rm", "rec_mock0000000000000000000002", "--yes"] }, - { - name: "alias set", - args: ["alias", "set", "mock-app-abc123defg-mock-team.vercel.app", "staging-mock.vercel.app"], - }, - { name: "alias rm", args: ["alias", "rm", "mock-app.vercel.app", "--yes"] }, - { name: "project add", args: ["project", "add", "fresh-mock-project"] }, -]; -const selectedCliCases = new Set( - shardSelect(allCliCases, ({ name }) => name).map(({ name }) => name), -); - -/* ── the suite ───────────────────────────────────────────────────────── */ - -// The describe name is deliberately FLAVOR-FREE (unlike the real-CLI suite): -// snapshot keys embed it, the snapshots pin the Node oracle — which the -// sanitizer never touches — and a flavored name would fork two identical -// snapshot sets that each lane then reports as the other's obsolete -// entries (and `--update` under one flavor would delete the other's). -describe.skipIf(!haveVercel)("vercel e2e (real CLI vs Node against the mock api)", () => { - beforeAll(async () => { - ({ - server: mockServer, - baseUrl: mockUrl, - requests: mockRequests, - unexpected: mockUnexpected, - } = await startMockVercelApi()); - - refusedUrl = await refusedLoopbackUrl(); - - // JAIL VERIFICATION, before any test invokes the CLI: a loopback - // listener stands in as the proxy, the Node CLI runs `whoami` with NO - // --api (so it aims at api.vercel.com), and the escape must arrive - // HERE as a CONNECT — proving the CLI's fetch consults the env proxy. - // Nothing is forwarded; the child is killed on capture. - jailCapture = await new Promise((resolve, reject) => { - const guard = setTimeout( - () => - reject( - new Error("jail verification timed out: no proxy traffic from the CLI within 60s"), - ), - 60_000, - ); - const trap: Server = createServer((socket) => { - clearTimeout(guard); - socket.once("data", (d: Buffer) => { - const line = d.toString("utf8").split("\r\n")[0] ?? ""; - socket.destroy(); - trap.close(() => resolve(line)); - }); - }); - trap.listen(0, "127.0.0.1", () => { - const taddr = trap.address(); - if (taddr === null || typeof taddr !== "object") - return reject(new Error("no trap address")); - const trapUrl = `http://127.0.0.1:${taddr.port}`; - const cwd = mkdtempSync(join(tmpdir(), "scr-vc-jail-")); - const home = join(cwd, "scratch-home"); - mkdirSync(home); - const child = spawn( - process.execPath, - [vercelEntry, "whoami", "--global-config", join(cwd, "vercel-global")], - { - cwd, - env: { - PATH: process.env["PATH"], - HOME: home, - NO_COLOR: "1", - NO_UPDATE_NOTIFIER: "1", - VERCEL_TELEMETRY_DISABLED: "1", - VERCEL_TOKEN: "mockfaketokenjail", - // the jail shape, but with the capturing trap as the proxy - ...jailEnv(trapUrl), - }, - stdio: "ignore", - }, - ); - const cleanup = (): void => { - child.kill("SIGKILL"); - rmSync(cwd, { recursive: true, force: true }); - }; - trap.once("close", cleanup); - child.on("error", (e) => { - trap.close(() => reject(e)); - }); - }); - }); - if (!jailCapture.startsWith("CONNECT api.vercel.com:443")) { - throw new Error( - `jail not verified: expected a CONNECT for api.vercel.com at the proxy, saw ${JSON.stringify(jailCapture)}`, - ); - } - - // The differential driver (the real CLI graph) and the load probe - // (awaits the same import and reports what the island said). - driverBinary = await buildDriver("cli", (rel) => `import "${rel}";\n`); - probeBinary = await buildDriver( - "probe", - (rel) => `async function go(): Promise { - try { - // @ts-ignore -- the bundled CLI ships no declarations - await import("${rel}"); - console.log("loaded"); - } catch (e) { - console.log(\`caught:\${e instanceof Error ? \`\${e.name}: \${e.message}\` : String(e)}\`); - } -} -void go(); -`, - ); - const probeRun = await runNativeLaneBinary(probeBinary); - compiledLegProbe = probeRun.trim(); - }, 600_000); - - /** Runs a driver binary bare (no CLI argv) and returns its stdout. */ - async function runNativeLaneBinary(binary: string): Promise { - const res = await runLane(binary, [], []); - rmSync(res.cwd, { recursive: true, force: true }); - return res.stdout.toString("utf8"); - } - - afterAll(async () => { - try { - if (mockServer !== undefined) - await new Promise((resolve) => mockServer.close(() => resolve())); - // The endpoint-drift tripwire: every request any lane made resolved to - // a recorded route — a CLI/API drift 404s AND lands here, so it can - // never render as a silently-empty table (dns ls does exactly that). - expect(mockUnexpected.map((r) => `${r.method} ${r.path}${r.search}`)).toEqual([]); - } finally { - for (const path of driverBuildPaths) rmSync(path, { recursive: true, force: true }); - } - }); - - test("the network jail was verified before any CLI ran", () => { - expect(jailCapture.startsWith("CONNECT api.vercel.com:443")).toBe(true); - }); - - test("what the compiled leg reaches today", () => { - // The PIN, at its destination: the npm lane's per-edge-kind condition - // resolution landed — a require() edge resolves smol-toml's dual - // package with the CJS ("require") condition while import forms keep - // the ESM entry, esbuild's shared-chunk __require attributes to the - // chunk that DEFINED it (where Node resolves from), the island grew - // node:domain (sentry loads it on every path, drives it only on - // Node < 14), and the driver's relative-into-node_modules static - // import embeds the graph instead of silently lowering to nothing. - // The island loads and evaluates the ENTIRE CLI graph: the probe - // prints "loaded" and every runCase in this suite runs the full - // differential. - expect(compiledLegProbe).toBe("loaded"); - }, 240_000); - - /* The network jail guarantees every mutating command lands in the mock; - * its request body is pinned alongside stdout, stderr, and exit status. */ - for (const { args, name, opts } of allCliCases) { - // Register the other shards as skipped so Vitest knows their snapshots - // are intentional; filtering the definitions entirely makes every - // partial run report the other shard's snapshots as obsolete. - const shardTest = selectedCliCases.has(name) ? test : test.skip; - shardTest( - name, - async () => { - await runCase(args, opts); - }, - 240_000, - ); - } -}); diff --git a/tests/harness/wasi-differential.test.ts b/tests/harness/wasi-differential.test.ts index 4dae2e563..2e4d7c333 100644 --- a/tests/harness/wasi-differential.test.ts +++ b/tests/harness/wasi-differential.test.ts @@ -13,7 +13,6 @@ import { compile, compileLibrary } from "@scriptc/compiler"; const execFileAsync = promisify(execFile); const repoRoot = join(import.meta.dirname, "../.."); const require = createRequire(import.meta.url); -const islandShim = join(import.meta.dirname, "island-shim.mjs"); function zigOnPath(): boolean { try { @@ -270,7 +269,6 @@ describe.skipIf(!zigOnPath())("wasm32-wasi differential", () => { const result = await compile(entry, { outDir, outPath: join(outDir, "program.wasm"), - dynamic: true, }); if (!result.ok) { throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); @@ -284,7 +282,6 @@ describe.skipIf(!zigOnPath())("wasm32-wasi differential", () => { const result = await compile(entry, { outDir, outPath: join(outDir, "program.wasm"), - dynamic: true, }); expect(result.ok).toBe(false); if (!result.ok) { @@ -313,36 +310,16 @@ describe.skipIf(!zigOnPath())("wasm32-wasi differential", () => { } }); - test("the LLVM target supports the dynamic island", async () => { - const entry = join(repoRoot, "tests/corpus/1100-island-eval-basics.ts"); - const outDir = await mkdtemp("/tmp/scriptc-wasi-dynamic-"); - const outPath = join(outDir, "program.wasm"); - const result = await compile(entry, { outDir, outPath, dynamic: true }); - if (!result.ok) - throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); - expect(result.backend).toBe("llvm"); - - const node = await run(process.execPath, ["--import", islandShim, entry]); - const wasm = await run(process.execPath, [ - "--no-warnings", - "--experimental-wasi-unstable-preview1", - "-e", - WASI_RUNNER, - outPath, - ]); - expect(wasm).toEqual(node); - }); - - test("pending static promises cross into the dynamic island", async () => { + test("native promises cross checked-value boundaries", async () => { const entry = join(repoRoot, "tests/corpus/2633-island-promise-crossing.js"); const outDir = await mkdtemp("/tmp/scriptc-wasi-dynamic-promise-"); const outPath = join(outDir, "program.wasm"); - const result = await compile(entry, { outDir, outPath, dynamic: true }); + const result = await compile(entry, { outDir, outPath }); if (!result.ok) throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); expect(result.backend).toBe("llvm"); - const node = await run(process.execPath, ["--import", islandShim, entry]); + const node = await run(process.execPath, [entry]); const wasm = await run(process.execPath, [ "--no-warnings", "--experimental-wasi-unstable-preview1", @@ -353,11 +330,11 @@ describe.skipIf(!zigOnPath())("wasm32-wasi differential", () => { expect(wasm).toEqual(node); }); - test("the LLVM target embeds npm packages for the dynamic island", async () => { + test("the LLVM target compiles npm packages natively", async () => { const entry = join(repoRoot, "tests/fixtures/npm/cases/namespace/main.ts"); const outDir = await mkdtemp("/tmp/scriptc-wasi-npm-"); const outPath = join(outDir, "program.wasm"); - const result = await compile(entry, { outDir, outPath, dynamic: true }); + const result = await compile(entry, { outDir, outPath }); if (!result.ok) throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); expect(result.backend).toBe("llvm"); @@ -379,7 +356,7 @@ describe.skipIf(!zigOnPath())("wasm32-wasi differential", () => { const entry = join(repoRoot, "tests/fixtures/npm/cases", fixture, "main.ts"); const outDir = await mkdtemp("/tmp/scriptc-wasi-npm-pending-"); const outPath = join(outDir, "program.wasm"); - const result = await compile(entry, { outDir, outPath, dynamic: true }); + const result = await compile(entry, { outDir, outPath }); if (!result.ok) throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); expect(result.backend).toBe("llvm"); @@ -400,7 +377,7 @@ describe.skipIf(!zigOnPath())("wasm32-wasi differential", () => { const entry = join(repoRoot, "tests/fixtures/npm/cases/zlib-shims/main.ts"); const outDir = await mkdtemp("/tmp/scriptc-wasi-npm-zlib-"); const outPath = join(outDir, "program.wasm"); - const result = await compile(entry, { outDir, outPath, dynamic: true }); + const result = await compile(entry, { outDir, outPath }); if (!result.ok) throw new Error(result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n")); expect(result.backend).toBe("llvm"); diff --git a/tests/harness/web-globals.test.ts b/tests/harness/web-globals.test.ts deleted file mode 100644 index 1de4434ad..000000000 --- a/tests/harness/web-globals.test.ts +++ /dev/null @@ -1,291 +0,0 @@ -/* The island's web-platform globals — the scriptc-ONLY half of the story. - * Value behavior is differential (the web-streams npm fixture runs against - * Node's real WHATWG streams); what lives here is what Node CANNOT oracle: - * the fences. The island implements the subset the AI-SDK/eventsource-parser - * paths exercise and rejects the rest with clear errors instead of silently - * misbehaving — these tests pin the fence messages so the subset statement - * in SEMANTICS.md stays honest. - * - * SCRIPTC_SAN=1 builds with ASan + the RC audit; the island's counting - * allocator asserts zero live engine allocations at teardown. - */ -import { execFile } from "node:child_process"; -import { createHash } from "node:crypto"; -import { mkdirSync, writeFileSync } from "node:fs"; -import { join } from "node:path"; -import { promisify } from "node:util"; -import { describe, expect, test } from "vitest"; -import { compile } from "@scriptc/compiler"; - -const execFileAsync = promisify(execFile); -const repoRoot = join(import.meta.dirname, "../.."); -const fixturesRoot = join(repoRoot, "tests/fixtures"); -const cacheDir = join(repoRoot, "node_modules/.cache/scriptc-tests"); -const sanitize = process.env["SCRIPTC_SAN"] === "1"; - -interface RunResult { - stdout: string; - stderr: string; - exitCode: number; -} - -/** Compiles an inline --dynamic program and runs it (nonzero exit ok). */ -async function compileAndRun(name: string, source: string): Promise { - const key = createHash("sha256") - .update(source) - .update(sanitize ? "san" : "plain") - .digest("hex") - .slice(0, 16); - const outDir = join(cacheDir, `web-${key}`); - mkdirSync(outDir, { recursive: true }); - const file = join(outDir, `${name}.ts`); - writeFileSync(file, source); - // Deliberately NO backend pin: these are flagless-user-shaped --dynamic - // builds through the production LLVM backend. The fence messages - // asserted below come from the island runtime. - const result = await compile(file, { - outPath: join(outDir, name), - outDir, - sanitize, - dynamic: true, - }); - if (!result.ok) { - throw new Error( - "web-globals program failed to compile:\n" + - result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n"), - ); - } - try { - const { stdout, stderr } = await execFileAsync(result.binaryPath, [], { encoding: "utf8" }); - return { stdout, stderr, exitCode: 0 }; - } catch (err) { - const e = err as { code?: unknown; stdout?: string; stderr?: string }; - if (typeof e.code !== "number") throw err; - return { stdout: e.stdout ?? "", stderr: e.stderr ?? "", exitCode: e.code }; - } -} - -/** Compiles and runs a fixture whose imports must be embedded from npm. */ -async function compileFixtureAndRun(name: string, entry: string): Promise { - const outDir = join(cacheDir, `web-${name}`); - mkdirSync(outDir, { recursive: true }); - const result = await compile(entry, { - outPath: join(outDir, name), - outDir, - sanitize, - dynamic: true, - }); - if (!result.ok) { - throw new Error( - "web-globals fixture failed to compile:\n" + - result.diagnostics.map((d) => `${d.code}: ${d.message}`).join("\n"), - ); - } - try { - const { stdout, stderr } = await execFileAsync(result.binaryPath, [], { encoding: "utf8" }); - return { stdout, stderr, exitCode: 0 }; - } catch (err) { - const e = err as { code?: unknown; stdout?: string; stderr?: string }; - if (typeof e.code !== "number") throw err; - return { stdout: e.stdout ?? "", stderr: e.stderr ?? "", exitCode: e.code }; - } -} - -/** Evaluates island code that must produce a one-line string. */ -async function islandEval(name: string, js: string): Promise { - const r = await compileAndRun(name, `console.log(__island_eval(${JSON.stringify(js)}));\n`); - expect(r.exitCode).toBe(0); - expect(r.stderr).toBe(""); - return r.stdout.trimEnd(); -} - -describe(`island web globals (scriptc-only${sanitize ? ", sanitized" : ""})`, () => { - test("the subset is present; the fenced-by-absence globals are not", async () => { - const out = await islandEval( - "web-presence", - `[ - typeof ReadableStream, typeof TransformStream, typeof TextEncoder, - typeof TextDecoder, typeof TextDecoderStream, typeof URLSearchParams, - typeof btoa, typeof atob, typeof Headers, typeof crypto, typeof console, - typeof Blob, typeof File, typeof Event, typeof EventTarget, typeof CustomEvent, - typeof MessageEvent, - typeof WritableStream, typeof structuredClone, typeof FormData, - typeof WebSocket, typeof URL, typeof Buffer, typeof setImmediate, - typeof clearImmediate, - ].join(' ')`, - ); - // Blob/File and the Event triple joined the subset when the vercel - // CLI's graph started loading undici (its fileapi classes extend - // Event and buffer.Blob at LOAD); structuredClone joined with the - // globals lane (the HTML StructuredSerialize subset, cycles - // included); FormData/WebSocket stay fenced by - // absence. URL and Buffer are installed only when the embedded npm - // module bootstrap runs; immediate timers use the native check queue. - expect(out).toBe( - "function function function function function function function function function " + - "object object function function function function function function " + - "function function undefined undefined undefined undefined function function", - ); - }); - - test("node:stream/web exposes only the implemented module constructors", async () => { - const result = await compileFixtureAndRun( - "web-stream-module-presence", - join(fixturesRoot, "npm/divergent/web-stream-module-presence.ts"), - ); - expect(result.exitCode).toBe(0); - expect(result.stderr).toBe(""); - expect(result.stdout.trimEnd()).toBe( - "function function function function function function function true true true true true true true", - ); - }); - - test("stream constructors and strategies are installed without an npm graph", async () => { - const out = await islandEval( - "web-writable-presence", - `[typeof WritableStream, typeof WritableStreamDefaultWriter, typeof WritableStreamDefaultController, typeof CountQueuingStrategy, typeof ByteLengthQueuingStrategy, typeof TransformStreamDefaultController, typeof TextEncoderStream, typeof ReadableStreamDefaultReader, typeof ReadableStreamDefaultController].join(' ')`, - ); - expect(out).toBe( - "function function function function function function function function function", - ); - }); - - test("structuredClone clones deep (cycles included) and validates options like Node", async () => { - const out = await islandEval( - "web-structured-clone", - `(() => { - const grab = (f) => { try { return String(f()); } catch (e) { return e.name + '/' + (e.code || '') + ': ' + e.message; } }; - const cyc = { n: 1 }; cyc.self = cyc; - const cloned = structuredClone(cyc); - const m = structuredClone(new Map([['k', [1, 2]]])); - const dx = structuredClone(new DOMException('t', 'DataCloneError')); - return [ - cloned !== cyc && cloned.self === cloned && cloned.n === 1, - m.get('k').join(','), - dx.name + ':' + dx.message + ':' + (dx instanceof DOMException), - grab(() => structuredClone()), - grab(() => structuredClone(undefined, '')), - grab(() => structuredClone(undefined, { transfer: '' })), - grab(() => structuredClone({}, { transfer: { *[Symbol.iterator]() {} } })) === '[object Object]', - grab(() => structuredClone(() => {})), - ].join(' | '); - })()`, - ); - expect(out).toBe( - [ - "true", - "1,2", - "DataCloneError:t:true", - 'TypeError/ERR_MISSING_ARGS: The "The value argument must be specified" argument must be specified', - "TypeError/ERR_INVALID_ARG_TYPE: Failed to execute 'structuredClone': Options cannot be converted to a dictionary", - "TypeError/ERR_INVALID_ARG_TYPE: Failed to execute 'structuredClone': transfer in Options can not be converted to sequence.", - "true", - "DataCloneError/25: () => {} could not be cloned.", - ].join(" | "), - ); - }); - - test("MessageChannel/MessagePort are globals; postMessage delivers clones", async () => { - const out = await islandEval( - "web-messagechannel", - `(() => { - const ch = new MessageChannel(); - const msg = { a: [1, 2] }; - ch.port1.postMessage(msg); - const got = ch.port2._queue[0]; - return [ - typeof MessageChannel, typeof MessagePort, - ch.port2 instanceof MessagePort, - got.message !== msg && got.message.a.join(',') === '1,2', - ].join(' '); - })()`, - ); - expect(out).toBe("function function true true"); - }); - - test("BYOB readers and byte streams are fenced with clear errors", async () => { - const out = await islandEval( - "web-fences", - `(() => { - const grab = (f) => { try { f(); return 'no-throw'; } catch (e) { return e.message; } }; - return [ - grab(() => new ReadableStream().getReader({ mode: 'byob' })), - grab(() => new ReadableStream({ type: 'bytes' })), - ].join(' | '); - })()`, - ); - expect(out).toBe( - [ - "BYOB readers are not supported in the scriptc island", - "byte streams (type: 'bytes') are not supported in the scriptc island", - ].join(" | "), - ); - }); - - test("TextDecoder is utf-8 only; base64 rejects like the platform", async () => { - const out = await islandEval( - "web-encoder-fences", - `(() => { - const grab = (f) => { try { f(); return 'no-throw'; } catch (e) { return e.name + ': ' + e.message; } }; - return [ - grab(() => new TextDecoder('latin1')), - grab(() => atob('a')), - grab(() => atob('a$==')), - grab(() => btoa('é😀')), - ].join(' | '); - })()`, - ); - expect(out).toBe( - [ - "RangeError: the scriptc island's TextDecoder supports utf-8 only (got 'latin1')", - "InvalidCharacterError: Invalid character", - "InvalidCharacterError: Invalid character", - "InvalidCharacterError: Invalid character", - ].join(" | "), - ); - }); - - test("crypto bridges the runtime's CSPRNG: v4 UUIDs, real fills, spec limits", async () => { - const out = await islandEval( - "web-crypto", - `(() => { - const u = crypto.randomUUID(); - const shape = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/.test(u); - const a = new Uint8Array(32); - const r = crypto.getRandomValues(a); - let filled = false; - for (let i = 0; i < a.length; i++) if (a[i] !== 0) filled = true; - const distinct = crypto.randomUUID() !== u; - let quota = 'no-throw'; - try { crypto.getRandomValues(new Uint8Array(65537)); } catch (e) { quota = e.name; } - let mismatch = 'no-throw'; - try { crypto.getRandomValues(new Float64Array(2)); } catch (e) { mismatch = e.name; } - return [shape, r === a, filled, distinct, quota, mismatch].join(' '); - })()`, - ); - expect(out).toBe("true true true true QuotaExceededError TypeMismatchError"); - }); - - // The prelude's Date patch (divergence 289): quickjs-ng stops at the GMT - // offset; Node appends the parenthesized timezone name. Shape-asserted — - // the machine's zone decides the name (UTC's is byte-exact vs Node, other - // zones render C-library names; the vercel e2e suite pins UTC end to end). - test("Date#toString/#toTimeString carry the timezone-name suffix Node prints", async () => { - const out = await islandEval( - "web-date-tzname", - `(() => { - const full = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) [A-Z][a-z]{2} \\d{2} \\d{4} \\d{2}:\\d{2}:\\d{2} GMT[+-]\\d{4} \\(.+\\)$/; - const time = /^\\d{2}:\\d{2}:\\d{2} GMT[+-]\\d{4} \\(.+\\)$/; - const d = new Date(0); - return [ - full.test(d.toString()) ? 'suffixed' : 'BAD:' + d.toString(), - full.test(String(d)) ? 'suffixed' : 'BAD:' + String(d), - time.test(d.toTimeString()) ? 'suffixed' : 'BAD:' + d.toTimeString(), - String(new Date(NaN)), - new Date(NaN).toTimeString(), - ].join(' | '); - })()`, - ); - expect(out).toBe("suffixed | suffixed | suffixed | Invalid Date | Invalid Date"); - }); -}); diff --git a/tests/harness/windows-differential.test.ts b/tests/harness/windows-differential.test.ts index d264f39f8..bd25024c1 100644 --- a/tests/harness/windows-differential.test.ts +++ b/tests/harness/windows-differential.test.ts @@ -10,9 +10,8 @@ * agree with the `// @exit:` directive. NOTHING is normalized — a CRLF or * path-separator difference is a finding, not noise. * - * Scope: the whole corpus — `// @dynamic` programs included (the engine - * archive cross-builds per target, buildEngineArchiveCross) and zlib too - * (per-target vendored objects) — PLUS the listening-fixture legs + * Scope: the whole native corpus, including per-target vendored zlib + * objects, plus the listening-fixture legs * (tests/fixtures/{server,dgram,fetch}, the linux lane's shape): fixture * programs cross-compile, ship, and run ON THE BOX against the box's * Node, with the per-case driver script (the box's node again) following @@ -194,20 +193,12 @@ const WINDOWS_SKIPS: Record = { "1540-os-userinfo.ts": "userInfo().shell null on Windows Node (typed string here)", }; -// The lane attempts the WHOLE corpus — `// @dynamic` programs included -// (the engine archive cross-builds for the windows triple). Still-gated -// features and WINDOWS_SKIPS skip visibly below. +// The lane compiles the whole corpus natively for Windows. Target +// capability refusals and WINDOWS_SKIPS remain visible below. function directiveHead(file: string): string[] { return readFileSync(file, "utf8").split("\n", 2); } -/** `// @dynamic` (differential.test.ts's directive): compile with the - * island engine embedded. The Node side needs no flag — the island shim - * covers the surface. */ -function wantsDynamic(file: string): boolean { - return directiveHead(file).some((l) => /^\/\/ @dynamic\s*$/.test(l)); -} - /** `// @transform-types` (differential.test.ts's directive): the Node * oracle needs --experimental-transform-types for non-erasable syntax * (namespaces). Enum-declaring programs ride the same flag without a @@ -359,7 +350,7 @@ async function runWindowsNode(file: string): Promise { : ""; const shims = directiveHead(file).includes("// @no-node-shims") ? "" - : "--import ./comptime-shim.mjs --import ./island-shim.mjs "; + : "--import ./comptime-shim.mjs "; return runOnBox(`node ${transform}${nodep}${shims}${entry}`); } @@ -382,7 +373,6 @@ async function crossCompile(file: string): Promise { const result = await compile(file, { outPath, outDir, - dynamic: wantsDynamic(file), backend: "llvm", }); if (!result.ok) { @@ -596,7 +586,6 @@ describe.skipIf(!enabled)(`windows differential (${target})`, () => { await execFileAsync("ssh", [...sshOpts, host, `cmd /c mkdir ${laneDirWin}`]); await scpToLane([ join(repoRoot, "tests/harness/comptime-shim.mjs"), - join(repoRoot, "tests/harness/island-shim.mjs"), // The corpus package.json ({"type":"module"}): without it the // oracle's module detection can run export-less programs as sloppy // CJS, where the macOS oracle (and the compiler) see strict ESM. @@ -755,17 +744,6 @@ describe.skipIf(!enabled)(`windows differential (${target})`, () => { }); } - /* ── the fetch fixture leg (tests/fixtures/fetch) — fetch.test.ts's - * contract with every process ON THE BOX (the linux lane's shape): the - * fixture servers run under the box's Node for the whole describe - * (started over one long-lived ssh session; killed by PID at the end — - * a remote process can outlive its ssh client, the hung-listener - * lesson, and node.exe is not ours to blanket-kill on a shared box), - * and each case runs under the box's Node AND cross-compiled - * (--dynamic, the ambient fetch is island-backed), byte-compared, with - * the POISONED proxy env both fetches must ignore. The opt-in arm - * routes both lanes through the counting proxy and reads the count - * over the wire (the /__count query). */ describe.skipIf(fetchCases.length === 0)(`fetch fixtures (${fetchCases.length} cases)`, () => { let serversChild: ReturnType | undefined; let serversPid = ""; @@ -821,9 +799,6 @@ describe.skipIf(!enabled)(`windows differential (${target})`, () => { serversChild?.kill("SIGKILL"); }); - /** Cross-compiles one fetch fixture (fetch.test.ts's build: always - * --dynamic, the cache key covering the shared fixture node_modules) - * and ships the .exe. */ async function shipFetchFixture(c: { name: string; entry: string }): Promise { const hash = createHash("sha256"); const inputs = [ @@ -839,7 +814,6 @@ describe.skipIf(!enabled)(`windows differential (${target})`, () => { const result = await compile(c.entry, { outPath: join(outDir, `${c.name}.exe`), outDir, - dynamic: true, backend: "llvm", }); if (!result.ok) { diff --git a/tests/test262/README.md b/tests/test262/README.md index 7a2bcce79..46465645f 100644 --- a/tests/test262/README.md +++ b/tests/test262/README.md @@ -1,6 +1,6 @@ # Static scriptc and Test262 -This runner compiles Test262 programs with `dynamic: false` and scriptc's default backend selection, then executes native binaries in separate processes. `upstream.json` pins the Test262 revision, archive checksum, complete snapshot digest, and unmodified vendored regression inputs. Test262's BSD license is retained in `vendor/LICENSE`. +This runner compiles Test262 programs with scriptc's native compiler, then executes native binaries in separate processes. `upstream.json` pins the Test262 revision, archive checksum, complete snapshot digest, and unmodified vendored regression inputs. Test262's BSD license is retained in `vendor/LICENSE`. Run the offline regression profile from the repository root: diff --git a/tests/test262/compile-worker.ts b/tests/test262/compile-worker.ts index a66fc8334..79652d867 100644 --- a/tests/test262/compile-worker.ts +++ b/tests/test262/compile-worker.ts @@ -8,7 +8,6 @@ async function main(): Promise { const result = await compile(request.entry, { outDir: request.workDir, outPath: request.binary, - dynamic: false, sanitize: request.sanitize, ...(request.backend === "default" ? {} : { backend: request.backend }), }); diff --git a/tests/test262/run.ts b/tests/test262/run.ts index 8b915c792..b798b3f21 100644 --- a/tests/test262/run.ts +++ b/tests/test262/run.ts @@ -106,7 +106,7 @@ Other variants remain visible as exclusions.`); revision: pin.commit, snapshotSha256: pin.snapshotSha256, profile: "static-adapted-v5", harnessSha256: sha256(harnessSource + assertThrowsSource + propertyHelperSource), - dynamic: false, requestedBackend: backend, sanitize: process.env.SCRIPTC_SAN === "1", + requestedBackend: backend, sanitize: process.env.SCRIPTC_SAN === "1", host: `${process.platform}-${process.arch}`, node: process.version, compilerVersion: JSON.parse(readFileSync(join(directory, "../../packages/compiler/package.json"), "utf8")).version, scope: values.root ? "survey" : "regression-profile", From 5a1638ce55c1f77dd4d8fd56c99f0af2ac5abd6f Mon Sep 17 00:00:00 2001 From: Chris Tate Date: Mon, 12 Oct 2026 13:10:43 -0500 Subject: [PATCH 2/2] Update the node-types fence snapshot for native-only hints --- tests/harness/__snapshots__/node-types-fenced.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/harness/__snapshots__/node-types-fenced.txt b/tests/harness/__snapshots__/node-types-fenced.txt index 9635eb2d2..1725513d3 100644 --- a/tests/harness/__snapshots__/node-types-fenced.txt +++ b/tests/harness/__snapshots__/node-types-fenced.txt @@ -41,7 +41,7 @@ fenced.ts:29:3 - error SC2020: 'Response.clone' is typed by @types/node but has | ^~~~~~~~~~~~~~ 30 | } - hint: the dynamic fetch bridge does not implement this Response operation + hint: the native fetch runtime does not implement this Response operation fenced.ts:32:21 - error SC2020: 'ReadableStream.from() over Set iterables' is part of the standard library types but has no scriptc lowering yet @@ -176,7 +176,7 @@ fenced.ts:82:3 - error SC2020: 'RequestInit option 'integrity' in a static build | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | }); - hint: neither compiler tier preserves this RequestInit member's conversion or transport behavior + hint: the compiler does not preserve this RequestInit member's conversion or transport behavior fenced.ts:86:3 - error SC2020: 'ReadableStream.tee' is typed by @types/node but has no scriptc lowering yet @@ -185,7 +185,7 @@ fenced.ts:86:3 - error SC2020: 'ReadableStream.tee' is typed by @types/node but | ^~~~~~~~ 87 | const tee = body.tee; - hint: the dynamic Web Streams bridge exposes only an explicit unsupported stub for this operation + hint: this operation is outside the native readable-stream implementation fenced.ts:87:15 - error SC2020: 'ReadableStream.tee' is typed by @types/node but has no scriptc lowering yet @@ -194,7 +194,7 @@ fenced.ts:87:15 - error SC2020: 'ReadableStream.tee' is typed by @types/node but | ^~~~~~~~ 88 | body["tee"](); - hint: the dynamic Web Streams bridge exposes only an explicit unsupported stub for this operation + hint: this operation is outside the native readable-stream implementation fenced.ts:88:3 - error SC2020: 'ReadableStream.tee' is typed by @types/node but has no scriptc lowering yet @@ -203,7 +203,7 @@ fenced.ts:88:3 - error SC2020: 'ReadableStream.tee' is typed by @types/node but | ^~~~~~~~~~~ 89 | const bracketTee = body["tee"]; - hint: the dynamic Web Streams bridge exposes only an explicit unsupported stub for this operation + hint: this operation is outside the native readable-stream implementation fenced.ts:89:22 - error SC2020: 'ReadableStream.tee' is typed by @types/node but has no scriptc lowering yet @@ -212,4 +212,4 @@ fenced.ts:89:22 - error SC2020: 'ReadableStream.tee' is typed by @types/node but | ^~~~~~~~~~~ 90 | } - hint: the dynamic Web Streams bridge exposes only an explicit unsupported stub for this operation \ No newline at end of file + hint: this operation is outside the native readable-stream implementation \ No newline at end of file
Node.js API hierarchyNode stabilityStatic nativeDynamic island
Node.js API hierarchyNode stabilityNative support